原文:Ten Mincho: To Boldly Go Where No Font Has Gone Before(英文), 「貂明朝」は日本語フォントの新たな領域へ(日文)

作者:Dr. Ken Lunde

时间:2017 年 11 月 27 日

注意⚠️ 本译文获得原作者许可,转载请注明来源

译按:这两周以来,貂明朝在各平台上的字体设计师们关注最多的字体之一。在字体产业已十分成熟的日本,一款日文字体能引起这么大的关注,除了字形设计,更多的是对其背后技术的关注。本文为 Adobe 字体工程师小林剑撰写的关于这一字体的技术文章。同处东亚文化圈,同样大量使用汉字,相信对于中国的字体公司与设计师们也应该有所启发。我对文中部分内容加以译注,便于理解;你还可以利用本站的搜索功能查找以往已注释的内容。如果你对技术细节不感兴趣,也可以欣赏文中可爱的貂的照片。你还可以阅读 Type is Beautiful 关于这款字体的文章

(文中所有引用的貂的写真皆来自 Adobe Stock

本文旨在提供由 Typekit 独家提供的「 明朝」(Ten Mincho) 这款日文字体的技术细节和开发过程,以及其他日文字体所未企及之处。有关貂明朝这款字体设计本身的更多细节,或许比这篇技术性长文更有趣,你可以阅读 Typekit Blog 中的 官方公告(另有 日语版)。正如官方公告所述,这一新的 Adobe Originals 系列 的日文字体有独一无二的功能,这应该能对日本和其他国家或地区的字体公司和字体设计师有所启发。

Adobe-Identity-0 ROS

貂明朝包含 9117 个字形 ,并提供两种字体风格:正体和斜体(请注意,本文中「斜体」专指 Italic1,其基于特殊用途的 Adobe-Identity-0 ROS (Registry, Ordering & Supplement) 的 CID-keyed OpenType/CFF 字体。目前有很多这种基于特殊用途的 ROS 的开源字体,大部分字体可从 GitHub 获得,貂明朝是 Adobe 利用这一技术开发的二款商业字体,日文字体 Kazuraki(かづらき)则是第一款。 2

正如在开源的泛中日韩字体家族 Source Han Sans(思源黑体)和 Source Han Serif(思源宋体)中的做法,为顺利推进开发进程,我使用了 Unicode 标准作业用字形名称 ,这解决了开发过程中受 CID 变化之苦等问题。例如,斜体的旧式数字字形 U+0030 0(零)的作业用字形名称是 uni0030.oldstyle.ital,U+8C82 貂 是 uni8C82。

汉字

通常汉字支持遵循 JIS X 0208 第一水准和第二水准的汉字的字符集,其中包括最新的汉字和人名用汉字。貂明朝不同之处在于:①未包含未编码的字形指示字符,这意味着所有汉字的字形都被编码;②仅支持 JIS2004 标准,这意味着影响到大约 160 个汉字,不包括对应的 JIS 90 标准的字形;③貂明朝是一种显示字体,其字形设计受手写文字的跃动特性的影响很大,因此貂明朝的字形更接近 JIS2004 标准,但不完全适用。其中包括了非常少量的附加汉字,对此我并不加以详谈,不过你可以观察一下这个案例,日本连锁餐厅 吉野家

由于不包含未编码的字形指示的汉字字形,因此删去了通常包含于 JIS2004 标准的 OpenType 字体中的与汉字有关的 OpenType GSUB (Glyph Substitution, 字形替换) 特性的 ‘expt‘ 、 ‘hojo‘ 、 ‘jp78‘ 、 ‘jp83‘ 、 ‘jp90‘ 、 ‘nlck‘ 和 ‘trad‘ ,也是它们因为对字体的使用者没有用处。

Unicode 覆盖范围

UTF-32 ‘cmap’ 表对应 7762 个映射,其中 244 个是将多代码映射同一字形。貂明朝的正体和斜体正好相差 595 个映射。如果你有兴趣,可以查阅我制作的了一份 214 页的 Unicode 标准字形列表 的 PDF 文件,书签部分附有正体和斜体。字符框内左上角有一个指示默认字形宽度的注释,全角(F)、半角(H)、比例(P)、等宽(W)以及零宽(Z)。除此之外,斜体部分还在右上角包含一个「I」的注释,以明确指示哪些默认字形是斜体的。

丰富的拉丁文支持

貂明朝与传统的 OpenType 日文字体另一不同之处在于,其包含非常丰富且功能齐全的拉丁语子集,及相应的 OpenType 特性。貂明朝的拉丁文字体为包含了斜体的 Ten Oldstyle 3。唯一不同的是,Ten Oldstyle 提供了多个字重,字体是 name-keyed 的 4;而貂明朝仅有一个字重,其正体和斜体是 CID-keyed 的 5。貂明朝中的 Ten Oldstyle 字形调整为与日文字形匹配的粗细,并缩放 110%。

虽然我们曾在 OpenType 日文字体中包含过斜体字形,特别是字符集为 Adobe-Japan1-4 或更高版本的字体,但是我们从来没有包含过小型大写字母、表格用数字,旧式数字等字形。 由于这套丰富的拉丁字形,貂明朝包含了惊人的 32 个 OpenType GSUB 特性及 7 个 GPOS(Glyph Positioning, 字形定位) 特性。

下图为貂明朝的正体(Upright)、小型大写字母以及斜体:

下图为貂明朝的的数字字形:标准(比例)数字、表格用数字,小型大写字母数字,旧式数字,半角数字和全角数字:

下图为斜体的标准数字、表格用数字和旧式数字:

OpenType 特性

貂明朝指定了 32 个 OpenType GSUB 特性,下方以字母顺序排列(其中四个标注星号的为特意从斜体中排除):

  1. aalt(Access All Alternates)
  2. case(Case-Sensitive Forms)
  3. ccmp(Glyph Composition / Decomposition)
  4. c2sc(Small Capitals From Capitals)*
  5. dlig(Discretionary Ligatures)
  6. dnom(Denominators)
  7. frac(Fractions)
  8. fwid(Full Widths)
  9. hist(Historical Forms)
  10. hwid(Half Widths)
  11. ital(Italics)*
  12. liga(Standard Ligatures)
  13. lnum(Lining Figures)
  14. locl(Localized Forms)
  15. numr(Numerators)
  16. onum(Oldstyle Figures)
  17. ordn(Ordinals)
  18. pnum(Proportional Figures)
  19. pwid(Proportional Widths)
  20. ruby(Ruby Notation Forms)
  21. salt(Stylistic Alternates)
  22. sinf(Scientific Inferiors)
  23. smcp(Small Capitals)*
  24. ss01(Stylistic Set 1, 英语为「Small Cap Figures」)*
  25. ss02(Stylistic Set 2, 英语为「Marten」, 日语为「貂」)
  26. ss03(Stylistic Set 3, 英语为「Black and White」, 日语为「白黒」)
  27. subs(Subscript)
  28. sups(Superscript)
  29. tnum(Tabular Figures)
  30. vert(Vertical Writing)
  31. vrt2(Vertical Alternates and Rotation)
  32. zero(Slashed Zero)

以下为 7 个 GPOS 特性:

  1. halt(Alternate Half Widths)
  2. kern(Kerning)
  3. palt(Proportional Alternate Widths)
  4. vert(Vertical Writing)
  5. vhal(Alternate Vertical Half Metrics)
  6. vkrn(Vertical Kerning)
  7. vpal(Proportional Alternate Vertical Metrics)

包含了 ‘vert’ GPOS 特性的 U+3099 (COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK) 和 U+309A (COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK) 可用于竖排文本。 不幸的是,目前支持这一特定的 GPOS 特性的环境是有限的。尽管如此,我们还是迈出了开创性的一步,相信长远来看是有用的。

斜体

貂明朝的正体和斜体共享同一字符集,包含 9117 个字形。其中 595 个字符映射至斜体字符的 ‘cmap‘ 表中的斜体字形。斜体字体也缺少小型大写字母的 OpenType GSUB 特性中,特别是 ‘c2sc’ 、 ‘ital’ 、 ‘smcp’ 和 ‘ss01’ (“Small Cap Figures”, 小型大写字母数字)。这是因为相应的斜体字形是默认字形,或者可能不存在于字符集中。正体和斜体在样式上是相关连的,并可以支持相应功能的应用程序中切换。由于正体字体也包含 ‘ital‘ (Italics) 的 GSUB 特性,因此,这可以作为调用斜体字形的替代方案。

OpenType 集合

尽管 Typekit 提供的貂明朝字体是正体和斜体独立的 OpenType/CFF 字体,但实际它们共享完全相同的字形集,也就是说它们的 ‘CFF‘ (Compact Font Format) 表中的字形 100 %相同。这意味着可以构建包含两种字体的 OpenType 集合(又名 OTC)。而实际上,我们已经做到了,明年就可以在 Fontspring 购买使用许可了。单个 OTF 文件大小为 4MB,但是包含了两种字体的 OTC 文件只比 OTF 大 125K。由此可见,共享 ‘CFF ‘ (Compact Font Format) 表可以显著节省文件大小。

使用 OTC 字体的最低系统要求为,Windows 1607(Windows 10 周年更新版),OS X 10.8(Mountain Lion),Adobe 应用程序为 CS6 及更高版本。

语言替换特性

与传统的 OpenType 日文字体不同,貂明朝包含 ‘locl’ (Localized Forms) 的 GSUB 特性,可根据文档文本的标记语言替换字形。我们从泛中日韩的思源字体中学到的一个教训是,西文文本和中日韩文本有不同的格式,例如直引号(U+0022 和 U+0027)和英式引号(U+2018、U+2019、U+201A、U+201C、U+201D 和 U+201E)。貂明朝默认为西文格式,日文文本的语言标记调用单独的日文格式,但仍然是比例引号,与用于假名和汉字的与 em-box 对齐。

除此之外,还有少量字符,由于字宽为默认的全角或比例字形,两种字形都包含于字形集中。以下字形由 ‘locl’ GSUB 特性调用替换:

  • 以下默认全角字形在语言设置为英语或其他拉丁语系的语言时被替换为比例字形:U+00A7 § 、U+00B0 ° 、U+00B1 ± 、U+00B6 ¶ 、U+00D7 × 、U+00F7 ÷ 、U+03C0 π 、U+2010 ‐ 、U+2015 ― 、U+2020 † 、U+2021 ‡ 、U+2026 … 、U+2030 ‰ 、U+2032 ′ 、U+2033 ″ 、U+2113 ℓ 、U+2190 ← 、U+2191 ↑ 、U+2192 → 、U+2193 ↓ 、U+2202 ∂ 、U+2211 ∑ 、U+221A √ 、U+221E ∞ 、U+2260 ≠ 、U+25A0 ■ 、U+25B2 ▲ 、U+25B3 △ 、U+25B6 ▶︎ 、U+25B7 ▷ 、U+25BC ▼ 、U+25BD ▽ 、U+25C0 ◀︎ 、U+25C1 ◁ 、U+25C6 ◆ 、U+25C9 ◉ 、U+2713 ✓ 、U+2E3A ⸺ 、U+2E3B ⸻
  • 以下默认比例字形在语言设置为日语时被替换全角字形: U+00A4 ¤ 、U+00A8 ¨ 、U+00A9 © 、U+00AE ® 、U+00B4 ´ 、U+00B5 µ 、U+00BC ¼ 、U+00BD ½ 、U+00BE ¾ 、U+2013 – 、U+2022 • 、U+20AC € 、U+2122 ™ 、U+2153 ⅓ 、U+2154 ⅔ 、U+215B ⅛ 、U+215C ⅜ 、U+215D ⅝ 、U+215E ⅞, 、U+2248 ≈

当然, ‘pwid‘ (Proportional Widths) 和 ‘fwid‘ (Full Widths) GSUB 特性也可以用来执行相同替换,或强制回到默认格式。

SVG 字形

彩色 SVG(Scalable Vector Graphic,可缩放矢量图形)字形设计并映射至 U+2600 ☀︎ 、 U+2601 ☁︎ 、U+2602 ☂︎ 、U+2603 ☃︎ 、U+261C ☜ 、U+261D ☝︎ 、U+261E ☞ 、U+261F ☟ 、U+3020 〠 、 U+303D 〽 ,以及额外四个 U+8C82 貂 的彩色 SVG 字形可通过 ‘aalt‘ (Access All Alternates) 的 GSUB 特性实现。尽管貂明朝的初始版本并不包含 ‘ SVG‘ 表,但会在明年添加。 下图展示了在 支持 OpenType SVG 字体的环境 中显示彩色字形:

这些 SVG 字形的黑白版本可通过 ‘ss03‘ (英文为「Black and White」, 日文为「白黒」) GSUB 特性实现,或在不支持 OpenType SVG 字体的环境中使用,如下图所示:

在上图中,用非常可爱的 U+8C82 貂 的字形变体拼写出了 形状的英文单词「LOVE」,这些字形实际上是字体资源中顺序排列的,这是一个暗示。在这些彩色或黑白的特殊字形中,我最喜欢的就是 U+2603 ☃ 了,我亲切地称它为雪降り貂ちゃん,这也是一个暗示。

Unicode 字形指示序列

为了保留《人名用汉字表》中存在的 57 个中日韩兼容表意文字,并在貂明朝中予以支持,需要在 Format 14 ‘cmap‘ 子表中以 Adobe-Japan1 IVSIdeographic Variation Sequences,表意文字字形指示序列)和 SVSStandardized Variation Sequences,标准化字形指示序列)格式指定适当的 UVSes (Unicode Variation Sequences,Unicode 字形指示序列)。 下图展示了保留了人名用汉字字形,其后一张为对应的基本字符(Base Characters):

如果你想使用上图中的「纯文本」数据,可以复制以下字符并粘贴到支持 UVS 的应用程序,或 Typekit 的貂明朝 页面上的动态预览文本框中:

  • 欄󠄀廊󠄁朗󠄀虜󠄀類󠄀猪󠄀神󠄀祥󠄀福󠄁諸󠄀都󠄀侮󠄁僧󠄁勉󠄀勤󠄁卑󠄀嘆󠄀器󠄁墨󠄀層󠄁悔󠄀憎󠄀懲󠄃敏󠄀暑󠄁梅󠄀海󠄀渚󠄀漢󠄁煮󠄀琢󠄀碑󠄀社󠄁祉󠄁祈󠄀祐󠄀祖󠄁祝󠄀禍󠄀禎󠄁穀󠄀突󠄁節󠄁練󠄀繁󠄁署󠄀者󠄁臭󠄁著󠄁視󠄁謁󠄀謹󠄀賓󠄀贈󠄁逸󠄁難󠄀響󠄁Adobe-Japan1 IVS
  • 欄︀廊︀朗︀虜︀類︀猪︀神︀祥︀福︀諸︀都︀侮︀僧︀勉︀勤︀卑︀嘆︀器︀墨︀層︀悔︀憎︀懲︀敏︀暑︀梅︀海︀渚︀漢︀煮︀琢︀碑︀社︀祉︀祈︀祐︀祖︀祝︀禍︀禎︀穀︀突︀節︀練︁繁︀署︀者︀臭︀著︀視︀謁︀謹︀賓︀贈︀逸︁難︀響︀SVS
  • 欄廊朗虜類猪神祥福諸都侮僧勉勤卑嘆器墨層悔憎懲敏暑梅海渚漢煮琢碑社祉祈祐祖祝禍禎穀突節練繁署者臭著視謁謹賓贈逸難響中日韩兼容表意文字
  • 欄廊朗虜類猪神祥福諸都侮僧勉勤卑嘆器墨層悔憎懲敏暑梅海渚漢煮琢碑社祉祈祐祖祝禍禎穀突節練繁署者臭著視謁謹賓贈逸難響基本字符(Base Characters)

为避免各种问题,其余的 Adobe-Japan1 IVS 汉字也默认采用 UVS 格式。

貂明朝的字形集包括 U+0030 0(零)和 U+FF10 0(全角零)。 这些字形可通过 ‘zero‘ GSUB 特性访问,在即使在仅支持「纯文本」的环境中,也可以通过 SVS 访问: <U+0030,U+FE00> 0 和 <U+FF10,U+FE00> 0。 上述字形也包含在斜体中,可以用上述任何一种方法访问。上文列出的 57 个字符的中日韩兼容表意文字一样,这两个序列也可以复制并粘贴到 Typekit 的貂明朝 的动态预览文本框中。

另外,貂明朝还包含 EVS(Emoji Variation Sequences,Emoji 字形指示序列),允许用户明确指定以下六个 emoji:U+2600 ☀︎、 U+2601 ☁︎、 U+2602 ☂︎、 U+2603 ☃︎、 U+261D ☝︎、 U+303D 〽︎ 。出于前文所述的原因,貂明朝还不支持彩色字形,不过下列「纯文本」指定此这六个字符的黑白和彩色两个序列:

☀︎☀️ ☁︎☁️ ☂︎☂️ ☃︎☃️ ☝︎☝️ 〽︎〽️

最后,我很高兴能与我司日文字体设计师西塚凉子及她的团队合作,进行貂明朝的全面开发。正如这篇长文开头所提到,我也十分希望这款字体能为字体厂商和字体设计师们提供灵感。

Enjoy!

🐡


(译)注:

  1. Regular 和 Italic。这是一对字体样式。之所以不说是一对倾斜角度的概念,是因为这种「倾」并非是几何的。字体排印中的斜体起源于西文,起源于文艺复兴后兴盛于意大利的手写体。西文衬线字体的 Regular 与 Italic 对比明显,而对于无衬线字体,若仔细观察,也不难发现其斜体并非简单的倾斜(Oblique)。除非特别标注,本文中的正体指 Regular,斜体指 Italic。
  2. 小林剑曾在 2012 年香港 AtypI 上发表的题为 “Kazuraki:Under The Hood” 的演讲中介绍了 Kazuraki 的 OpenType 技术细节。
  3. Ten Oldstyle 是 Adobe 首席设计师 Robert Slimbach 设计的包含四种字重且有对应斜体的字体家庭,作为西塚凉子的日文字体貂明朝的拉丁文部分。Ten Oldstyle 用于低对比度的非正式文本,适合屏幕文本阅读。
  4. name-keyed 字体大多为 Type 1 和一些 TrueType 字体,一个字形对应一个 name,name 是一个限制字符是否可用字符串。
  5. CID-keyed 字体是一种 PostScript 或 OpenType 字体,用于处理中日韩字符。这种字体为数个子字体之集合,例如这些子字体可能为一个全拉丁文,一个全汉字,一个全假名,如此可以为相同的字形子集进行字宽提示。CID 是字形索引,用于查找字形描述而非其他字体类型的字形名称。技术细节可见 Adobe 开发文档 和小林剑《CJKV Information Processing》。

    1. 确实,原网页中小林剑使用了 Adobe 非公开字体 Adobe Clean Han 的日文字体显示这四段文本。不过复制这四段文本粘贴到 Typekit 的预览或者支持 UVS 的软件中应该可以显示出貂明朝的不同字形。

发表评论

电子邮件地址不会被公开。 必填项已用*标注