Skip to content

针对不支持字体特性的软件,关于中西标点冲突的非标准解决 #25

Description

@MY1L

关于中西标点冲突,及统一码欠收录标点

(此处略去因历史原因,有些(半个)中文标点就是等同西文标点的问题。标点名及描述依新华字典)

  1. 破折号:横线、两倍全角、对齐汉字、不中断两端不顶格,当前编码方案与—(U+2014)冲突,统一码或应收录 (见下文破折号章节)
  2. 省略号:六点、两倍全角、对齐汉字,当前编码方案与…(U+2026)冲突,统一码应收录;
  3. 间隔号:圆点、全角、对齐汉字,与·(U+00B7)冲突;
  4. 引号:全角,蝌蚪形(弯引号),与“‘’”(U+201x)冲突,尤其隔音号就是「’」;
  5. 着重号:形如汉字下一圆点,统一码欠收录
  6. 专名号:限古籍和文史著作,形如专名下一横线,专名之间断开(如“成都司马相如”,断在“都司”之间),欠编码方案,统一码难以收录
  7. 浪线:限与专名号配合,替换书名号,欠编码方案,统一码难以收录

——新华字典没提的如示亡号没写。上述标“统一码收录”是指这这些标点应当视为一个2倍字宽、换行不中断的标点,而不是需要连打2次的标点。

目前大多东亚字体对此有各异的策略,但皆不能解决中西混排出现难堪的情况,特别是——
把「’」做成全角,导致夹的西文「I’m」成了「I’ m」。思源也尤其依赖特性解决破折号,而且有问题。

破折号

我选择—(U+2014)默认为西文em线,维持Alegreya原状。
西文标点⸺(U+2E3A TWO-EM DASH : omission dash)我考虑已知中西混排文献里不像「’」常用,不如说难得一见,则默认为两倍全角、对齐汉字、两端不顶格,充当破折号代餐。
不支持字体特性的软件需要复制粘贴使用。
思源的问题在连⸻(U+2E3B THREE-EM DASH)也做了还加入特性,不仅导致横排时撑行距(ichitenfont/I.Ming#18 (comment) ),而且遇到4连击————就很难看了,我认为特性应当考虑此类不按章法来的情况。

更新:留意到统一码码表认可此标点用于中文,划去上文“西文”的描述。
image

省略号

我选择…(U+2026)默认为西文3点略号,维持Alegreya原状。
将⋯(U+22EF)做成全角、对齐汉字来冒充,因为这个符号是数学省略号,统一码没规定宽度,而东亚字体的“⋯”一般是设为全角的,如Adobe 宋体 Std、MS Gothic…
不支持字体特性的软件需要复制粘贴使用。
最佳解法当然是让统一码收个六点省略号,现在连代餐都没有😓

间隔号

我选择·(U+00B7)默认为西文中点,维持Alegreya原状。
将日文中点・(U+30FB KATAKANA MIDDLE DOT)做成全角、对齐汉字充当间隔号,这个在语义上应该问题不大?
不支持字体特性的软件需要复制粘贴使用。

引号

我选择默认西文弯引号,维持Alegreya原状。
注意到有提案:https://www.unicode.org/L2/L2023/23212r-quotes-svs-proposal.pdf 那么朱雀可以提前支持全角引号VS(变体序列),但问题是不支持字体特性的软件是否支持VS,似乎支持VS的软件更广泛?#19 (comment)
关于代餐符号,我只见过一个人用❝❛❜❞(U+275x HEAVY ~ COMMA QUOTATION MARK ORNAMENT,属于2700 Dingbats区段的Ornament,甚至不是标点)当蝌蚪引号的。是否有必要选择这个?

统一码欠收录、难以收录的标点

目前无解,请大家设计编码方案。网页CSS都很难做到专名之间断开而专名不断。

字体实例

我制作了一个示例:https://github.com/MY1L/Plur/releases/tag/ZhuQue
请检查有无问题。

关于半角问题

西文标点是比例宽度并非等于半角,同时默认与小写西文对齐,显得各种括号在汉字靠下位置。一个高级西文字体往往还内置一套与大写西文对齐的标点,但不直接暴露给用户,在遇到上下文为大写时自动通过case特性调用。朱雀目前借用的Alegreya就藏了52个case标点字形以及几十个lf数字(大写平齐)

不支持字体特性的软件是无解的,中文西文总有一方难看。难道要用私用区吗。
目前策略是除了上述冲突情况,仅位于3000中日韩符号及标点 FF00半角及全角区段的默认做成中文标点(因为西文必然不用),其它皆小写西文标点,依赖特性改变。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions