justfont / open-huninn-font

"jf open-huninn" ("jf open 粉圓") is an open-source Traditional Chinese typeface based on Kosugi Maru and Varela Round, adjusted by the designers at justfont for everyday use in Taiwan.
https://justfont.com/huninn/
Other
1.13k stars 45 forks source link

Unicode定义直排标点缺少(U+FE13-U+FE16) #26

Closed NightFurySL2001 closed 1 year ago

NightFurySL2001 commented 4 years ago

在编辑软件中查看标点符号时,Unicode定义的4个直排标点符号:冒号︓(U+FE13)、顿号︔(U+FE14)、感叹号︕(U+FE15)及问号︖(U+FE16)并不存在,但是在字体下方却可以看见相对应的 .vert 版本。不知是否为制作错误?

image image

RuixiZhang42 commented 4 years ago

Unicode 这个区块(Vertical Forms,U+FE10 到 U+FE19)是为了兼容 GB 18030 同时编码两个逗号、两个顿号、两个句号等等而存在的。

[Wikipedia] Vertical Forms is a Unicode block containing vertical punctuation for compatibility characters with the Chinese Standard GB 18030.

按照 Unicode 的意思,「最正确」的方案是「字体本身提供 XXX.vert glyph,然后直排的时候通过 GSUB 特性调用」。思源系列字体就是严格按照 Unicode 标准来做的,你可以查看繁中版本 SourceHanSerifTC-Regular.otf,语言设定为「繁中」后,对于「居中句号」,直排时的 vert feature 并不会做任何替换。在思源繁中版本里,如果直接输入 U+FE12,得到的句号不是居中的,而是偏右上角的。这都说明 U+FE10 到 U+FE19 其实「只能对应 GB 18030 的形态」。

但是很多港台、日本厂商也会填满这个区块的 glyph,尤其是港台厂商(包括 justfont)还会把 U+FE10 到 U+FE16 做成居中的形态。也不能说这种做法是「错误的」,应该只是「误会了 Unicode 的本意」而已。

总的来说就是:这些 Unicode 码位按理来说只是兼容中国大陆那边用的、偏右上角的标点符号,港台、日本厂商不填这些码位其实没错。但是如果用户硬要输入这区块的东西,厂商为了不出现「豆腐」填了(还填的是当地的习惯),也不能算错。酌情取舍为佳。

RuixiZhang42 commented 4 years ago

下载了原版 Google Fonts 的 KosugiMaru-Regular.ttf,打开检视后发现小杉圆体有做 uni3001.vertuni3002.vertuniFF0C.vert,但是并没有把这三个 glyph 映射(mapping)到 U+FE10–U+FE12。这正说明了日本厂商是按 Unicode 标准来做的,并没有填 GB 18030 引进的直排码位。

rutopio commented 1 year ago

小杉圓體的設計本身並沒有遵從 GB 18030 的直排碼位,故粉圓體的更新也不會補進這四個直排標點符號。

不過,本專案以 OFL 開源授權釋出,若您對該部分有特殊需求,您可以自由下載、改作、發布,無需特別知會。