CoQuBeLi icon indicating copy to clipboard operation
CoQuBeLi copied to clipboard

隶体计划・曺全碑

曺全碑隸 (暂名)

起初是想找点免费美观的隶书字体,没找到合适的,于是创建了个开源「黑体(?)汉隶」计划,相当于复刻曹全碑。

下图里“CoQuBeLi”示范了汉隶风格西文的构思,除了“〇”都有曹全碑字笔画对应。预感该字体汉字部分不适合横排,将注重于竖排特性,且用OpenType特性及扩充区〔SIP、TIP〕汉字来支持隶书异体、篆书古形⋯⋯

曹全碑隶

关于制作

「字形」和「字符」并不一一对应,本字体中将大量出现复用字形(多字符对一字形)的情况,如输入曹曺均显示为「曺」字,参见 字形列表.txt

西文、标点主要用隶书笔画拼成,所以会在字量足够之后再雕琢。

…宽泛统计.txt 等文件列出字符对应碑阳具体的哪个字形。

  • 20220707 v0.0  :发布概念版字体,看看效果如何。
  • 20220712 v0.002:更新字体,并发布字形列表.txt
  • 20220726 v0.003:更新及修正,添加kern
  • 20220806 v0.005:更新及修正、调整x字高,添加ccmp hwid ital vert;修正…宽泛统计.txt
  • 20220810 v0.006:更新及改善笔画细节,添加cpct vkrn;字体在文件管理器中缩略图或显示为文字美
  • 20220818 v0.007:更新及改善,添加aalt calt halt palt salt vrt2 zero;支持VS
  • 20220828 v0.008:更新及改善,添加case liga lnum onum pnum tnum
  • 20220915 v0.009:英文已齐全,添加同形希腊\西里尔文,改善case四则运算,添加dlig CQBL

新建了个字体协作Q群613746416,方便想来协作但难以访问github的人。

已有特性

  1. aalt替换全览,本字体用于列某汉字的所有异体
  2. calt语境替换,根据上下文替换字形,类同我的MonuQu相遇处理
  3. salt样式替换,算是一种不看语境有替就换的无脑特性
  4. case注重大写,标点垂直位置区分大小写、数字改大写形式等,西文特性
  5. ccmp字形重组,例如用于连续且不顶格的破折号、居中省略号 ~和变体选择符~
  6. cpct标点居中,替换居中的标点,东亚特性
  7. fwid全角字宽,替换字形,差不多算是东亚的西文特性
  8. hwid半角字宽,同上
  9. pwid比例字宽,同上,基本上是西文特性
  10. halt字宽半角,东亚特性,仅调整单个东亚标点左右边距,本字体用于标点挤压
  11. palt字宽比例,同上,仅调整单个字面左右边距,本字体用于挤近全角英文
  12. ital意大利体,东亚的西文特性,本字体用于将「」替换为顺笔方向的半角⸤⸣(测试)
  13. kern调字偶距,基本上是西文特性,本字体也用于标点挤压(适用排版功能欠缺的软件)
  14. liga标准连字,默认开启,例如~ABAJ→啊~ f​i
  15. dlig酌情连字,默认关闭,例如!?
  16. lnum平齐数字,替换数字字形
  17. onum古典数字,同上,数字高低不平,宛如小写字母
  18. pnum比例数字,替换为不等宽数字
  19. tnum列表数字,替换为等宽数字
  20. vert竖排替换,东亚特性
  21. vrt2竖排旋替,同上,希望不旋转地解决西文竖排
  22. vkrn竖排字距,同上,希望借以解决西文竖排,本字体用于竖排标点挤压(测试)
  23. zero换斜杠〇,只要让0相对o区别更明显即可,不一定划斜杠
  24. SVS,本字体目前支持的标准变体序列(变体选择符,非OT特性)
  25. CQBL此为自定义特性,仅此字体支持,尽可能还原字形为曹全碑原状
    • 即一对一替换到私用区U+E100~E45F,网页CSS写法:font-feature-settings:'CQBL';

如果你的软件无法调用以上这些特性,可以尝试手动解决,比如某些特性只是自动替换字形,那么可以直接到字形列表.txt复制替换后的字形。

预期特性

  • mark标记定位,西文变音或假名浊点用的特性,本字体当然要支持汉语拼音
  • qwid四分字宽,本字体可能仅用于¼EM宽数字
  • twid三分字宽,本字体可能仅用于⅓EM宽数字
  • ss01样式集#,本字体计划支持到ss16
  • vhal字高半角,东亚特性,仅调整单个东亚标点上下边距,本字体用于竖排标点挤压
  • vpal字高比例,同上,仅调整单个字面上下边距

docs

曹全碑文宽泛统计.txt

为便于指明字体源文件里某字形出典而作。

  • 该文本为逐字统计某字出现次数和序数,且不区分异体(如 𣍘都算作),只区分个别写法完全不同的多对一简体: 。至于全部区分的文件,自然是“…严格统计.txt”……
    • 曹×6表示碑阳共出现6次「曹」(复字)且在碑文中第一次出现,该个字形在源文件里记作曹1
    • 全_1表示仅出现一次(孤字),字形记作不用数字区分。
    • 曹02则是计序,这个字形记作曹2
      • 注1:为了对齐,仅计次用的17进制,之×H之×17,字形记作之1。顺带:B=11,C=12。
      • 注2:怀_2是特例,字形记作,按碑上下文看,可当作褱×2(字形记作)的异体。
  • 碑外字(曹全碑未出现的汉字)用+号强调,如「碑」字记作碑+,我将优先制作 隶\隸 綿
    • 2022-7-7注:碑+ 隸+已经制作了。
  • 每行|后方为注释。表示差不多同义,表示错别字,表示可能是别字。顺带,百度百科错误太多。
  • 当前字形制作优先级:孤字清晰 > 复字择优 > 孤字破损 > 碑外造字。
  • 个人原创汉字字体十分艰巨,若有感兴趣的同好来帮忙,除了字形列表列举的,该文本未列出的也就是我目前不会做的字,可以避免撞车。

字形列表.txt

字体里存在的字形一览,每行一个字形。

  • 字形命名详见宽泛统计.txt,以;隔开备注。
  • tab符之后的是对应字符,某些是一对多。无tab符则表示该字形无对应字符,或需OT特性来调用。
  • 私用区U+E100~EFFF主要用于放汉字变体。
    • 碑文出现最多的字有17次,索性将每字变体上限设为16个,放在私用区的U+E460~EFFF便于排版功能欠缺的软件复制用。为每个字保留一整段码位,规律为某字1~15对应到U+Exx1~ExxF某字16放在U+Exx0(虽然不至于做这么多变体…)……而xx的值,先做先得。当然这样地挥霍码位,若未来私用区不够使,增补私用区也行……该区的字形与原碑不重复。
    • 私用区的U+E100~E45F为原碑字形逐字备份(除了缺损未作和未调整的),为那些追求碑文保持大小不一原状的人保留。
  • 私用区U+E020~E07F留空给ASCII字符变体(对应U+20~7F,我的Monu系列就是这样)。U+E000~E0FF的剩余空间或摆放fwid hwid twid qwid等其它西文排版特性用的字符,其中U+E018~E01F留给中文弯引号(对应U+2018~201F,我的Ctrl Zpix类似这样)
    • U+E0A0~E0A2、U+E0B0~E0B3或留空以避让Powerline符号。
    • 本字体是扁体,正常弯引号比半角一半还窄,若做成全角,那左右空隙实在太大了,因此无论调fwid hwid都是中文的半角弯引号。
  • 私用区剩下部分,其中U+F000~F0FF留空给东亚排版变体(如竖排标点和假名,对应U+3000~30FF,虽然Monu系列用的是U+E341~E3FC)。至于竖排ASCII字符,就让全角字符兼用罢。
  • 数字(Figures)样式缩写对应特性连招和含义——
    • onum pnum osf:OldStyle,比例古典,即本字体默认样式。例外:本字体6 8的osf等同lf样式
    • lnum tnum tf:Tabular,等宽平齐,例外:本字体tf等同半角(hwid),6的tf等同osf样式
    • onum tnum tosf:等宽古典,例外:本字体tosf也等同半角,6 8的tosf等同tf样式
    • lnum pnum lf:Lining,比例平齐
    • zero *num zer0︀:斜杠〇(0̸)