(この記事中の貂の写真はすべて Adobe Stock で見つけることができます)
この記事の目的は、Typekit から提供される「貂明朝」(Ten Mincho) の書体とフォント開発について技術的詳細を説明することにあります。貂明朝は、これまでどんな日本語フォントも到達しなかった領域に足を踏み入れました。貂明朝の書体デザインについての詳細については、Typekit Blog 上の公式アナウンスメント (英語) の方をご覧ください。この長文の技術的な記事よりも、そちらの方に興味を持たれるかもしれません。公式アナウンスメントに述べられているように、この新しい Adobe Originals の和文書体にはユニークな特長が数多くあります。そのため、日本や各国の書体メーカー、タイプデザイナーの方々はこの書体からインスピレーションを受けられることでしょう。
Adobe-Identity-0 ROS
貂明朝は 9,117 グリフを含み、RegularとItalicの二つの書体を提供していますが、特殊用途用の Adobe-Identity-0 ROS (Registry、Ordering 及び Supplement) に基づく CID-keyed OpenType/CFF フォントの一つでもあります。現在では特殊用途用の ROS に基づくオープンソースのフォントは多数存在し、そのほとんどが GitHub から入手可能ですが、その ROS を用いるアドビの二番目の書体が貂明朝です。かづらきが最初のフォントでした。
オープンソースの源ノ角ゴシック (Source Han Sans) と源ノ明朝 (Source Han Serif) という二つの Pan-CJK に対して行ったのと同じように、開発工程をスムーズで効率よく進めるために、Unicode ベースの作業用のグリフ名を用いました。これにより各開発段階で起こっていた、CID の変更などに悩まされることがなくなりました。例えば、イタリック体 U+0030 0 (ゼロ) のオールド・スタイルの作業用グリフ名は「uni0030.oldstyle.ital」、漢字「貂」(U+8C82) の場合は「uni8C82」です。
漢字
基本的に貂明朝は和文書体であり、数千の漢字 (正確には 6,469 文字) を含みます。通常必要となる JIS X 0208 の第一水準と第二水準の漢字、最新の常用漢字と人名用漢字の文字集合を含みます。この書体の独自の特徴としては次の点があります。① 符号化されていない異体字形を含まないこと、これは、すべての漢字のグリフが符号化されていることを意味します。② それが JIS2004 基準であることです。このことはおよそ 160 の漢字に影響し、対応する JIS90 基準のグリフを含まないことを意味します。そして、③ 貂明朝はディスプレイ書体であり、そのグリフのデザインは手書き文字の躍動的な性質に大きく影響されています。そのため、貂明朝のグリフは JIS90 基準の形よりも JIS2004 基準の形により近いものとはなっていますが、必ずしも JIS2004 の標準に完全にはあてはまりません。詳細には触れませんが、この他にもいくつかの漢字が追加されていることに気づくかもしれません。例えば、有名な美味しい牛丼チェーンレストランの名前からヒントを得るかもしれません。
符号化されていない漢字の異体字を含んでいないので、JIS2004 基準の OpenType フォントであれば通常含まれているはずの、漢字関連の OpenType GSUB (Glyph Substitution—グリフ置換) フィーチャー、すなわち、expt、hojo、jp78、jp83、jp90、nlck 及び trad は意味がなく、利用者のためにならないため、意図的に削除されています。
Unicode の対応範囲
UTF-32 の cmap テーブルが 7,762 の対応関係を指定しています。結果として、その内の 244 については、同一のグリフに複数の文字コードが対応付けられています。貂明朝の Regular と Italic には、595 の対応関係に差異があります。これに関心のある方のために、214 ページに及ぶ Unicode 基準のグリフ一覧表の PDF ファイルを用意しました。その中で、Regular と Italic のセクションにブックマークが付けられています。左上にはデフォルトのグリフの字幅が全角 (F)、半角 (H)、プロポーショナル (P)、幅広 (W)、または字幅がゼロ (Z) であるかを示す注記があります。Italic のセクションの場合には、上記の他に、「I」の注記が右上にあり、どのデフォルトのグリフがイタリック体になるかを示しています。
充実した欧文への対応
貂明朝が他の典型的な日本語 OpenType フォントと違うこととして、もう一つ、多種の便利な欧文グリフの部分集合を含んでいることがあります。事実、イタリック体を含む Ten Oldstyle のすべてのグリフが貂明朝には含まれています。Ten Oldstyle が複数のウェイト (太さ) のバリエーションをもっていて、name-keyed フォントである点が貂明朝と異なる点で、貂明朝には一つのウェイトしかなく、その Regular と Italic はどちらも CID-Keyed フォントです。貂明朝に含まれている Ten Oldstyle のグリフは和文の文字の太さに合わせて調整されていて、同様に和文の文字の大きさに合わせるように、拡大されています。拡大率を知りたい方もおられるでしょう。拡大率は 110% です。
これまでも、特に Adobe-Japan1-4 よりも大きなグリフ集合をもつ日本語 OpenType フォントにはイタリック体グリフを含めてきました。スモール・キャピタル、罫表組用の数字、オールド・スタイル数字等は含まれていませんでした。貂明朝では欧文グリフを充実させたために、OpenType GSUB フィーチャーの数が 32 個、GPOS (Glyph Positioning) フィーチャーの数が7個になったことは驚くべきことです。
下図に、貂明朝の正立体、スモール・キャピタル、イタリック体を例示します。
下図に、標準 (プロポーショナル)、罫表組用、スモール・キャピタル、オールド・スタイル、半角及び全角の、貂明朝に含まれる数字グリフを例示します。
下図のとおり、イタリック体のフォントにも、標準、罫表組用、オールド・スタイル数字が含まれます。
OpenType フィーチャー
貂明朝のフォントの中で指定されている OpenType GSUB フィーチャーは 32 個あります。アルファベット順でそれらを下記のとおり列挙します (アスタリスク付きの4個はイタリック体から意図的に除外されています)。
- aalt (Access All Alternates)
- case (Case-Sensitive Forms)
- ccmp (Glyph Composition / Decomposition)
- c2sc (Small Capitals From Capitals)*
- dlig (Discretionary Ligatures)
- dnom (Denominators)
- frac (Fractions)
- fwid (Full Widths)
- hist (Historical Forms)
- hwid (Half Widths)
- ital (Italics)*
- liga (Standard Ligatures)
- lnum (Lining Figures)
- locl (Localized Forms)
- numr (Numerators)
- onum (Oldstyle Figures)
- ordn (Ordinals)
- pnum (Proportional Figures)
- pwid (Proportional Widths)
- ruby (Ruby Notation Forms)
- salt (Stylistic Alternates)
- sinf (Scientific Inferiors)
- smcp (Small Capitals)*
- ss01 (Stylistic Set 1、英語で「Small Cap Figures」)*
- ss02 (Stylistic Set 2、英語で「Marten」、日本語で「貂」)
- ss03 (Stylistic Set 3、英語で「Black and White」、日本語で「白黒」)
- subs (Subscript)
- sups (Superscript)
- tnum (Tabular Figures)
- vert (Vertical Writing)
- vrt2 (Vertical Alternates and Rotation)
- zero (Slashed Zero)
さらに、貂明朝の中で指定されている7個の GPOS フィーチャーは下記のとおりです。
- halt (Alternate Half Widths)
- kern (Kerning)
- palt (Proportional Alternate Widths)
- vert (Vertical Writing)
- vhal (Alternate Vertical Half Metrics)
- vkrn (Vertical Kerning)
- vpal (Proportional Alternate Vertical Metrics)
GPOS フィーチャーの vert が含まれているのは、U+3099 (COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK) と U+309A (COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK) が縦組みで役に立つからです。残念ながら、この特定の GPOS フィーチャーに対応している環境は現時点では限られていて、少数ではありますが、これを含めておくことは、先駆的な一歩を踏み出すことであり、長期的には有用なことに違いありません。
Italic 体
貂明朝の Regular と Italic のフォントは同じグリフ集合をもち、9,117 のグリフを収録しています。その内、595 文字が Italic のフォントの cmap テーブルの中でイタリック体のグリフに対応付けられています。イタリック体のフォントには含まれていない GSUB フィーチャーが少数あり、それは次のものです:c2sc、ital、smcp 及び ss01 (Small Cap Figures)。これは、対応するイタリック体のグリフがデフォルトのグリフの場合か、グリフセット中に存在しない場合があるからです。Regular と Italic のフォントとはスタイルで関連付けられており、その機能に対応するアプリケーション上では切り替え可能となっています。Regular のフォントは ital (Italics) の GSUB フィーチャーを含んでいるため、イタリック体グリフにアクセスするための代替手段を提供しています。
OpenType コレクション
Typekit では、貂明朝フォントは Regular と Italic の二つの別々の OpenType/CFF フォントとして提供されていますが、両者はどちらもまったく同じグリフ集合を持っています。このことは、それらの CFF (Compact Font Format) テーブルは 100% 完全に同じものであるということを意味しています。したがって、両方のフォントを包含する OpenType Collection (別名 OTC) を実装することも可能です。事実、既に OTC 版の実装は完了しており来年のいつかの時点で、Fontspring で Regular と Italic の両方のフォントのライセンスを購入される場合に入手可能になると予測します。単独の OTF のファイルサイズは 4MB ですが、両方のフォントを含む OTC も、個別のフォントより 125KB しか大きくなっていません。このことから、CFF テーブルを共有することによるファイルサイズの節減効果がいかに顕著であるかが分かります。
OTC が必要とする最小のシステムの要件としては、Windows 及び macOS についていえば、Windows Version 1607 (Version 10 Anniversary Update としても知られる) 及び OS X Version 10.8 (Mountain Lion) となります。アドビのアプリケーションでは CS6 以後のバージョンが OTC に対応しています。
言語に依存するフィーチャー
従来の日本語 OpenType フォントと異なり、貂明朝は locl (Localized Forms) GSUB フィーチャーを含んでいます。これによって、文書中でテキストに言語タグがどのように付けられているかに基づいてグリフ置換が適用されることになります。プロポーショナルの引用符、すなわち正立のもの(U+0022 と U+0027)とスマート (カーリー) クォート (U+2018、U+2019、U+201A、U+201C、U+201D 及び U+201E) は欧文と日中韓のテキストで別々の形を用意した方が便利だということが、源ノ角ゴシック (Source Han Sans) と源ノ明朝 (Source Han Serif) という Pan-CJK 書体の経験から学んだ教訓の一つでした。そこで、貂明朝では、それらの文字のデフォルトの形は欧文用のものとし、日本語のテキストに言語タグを付けることで、字幅はプロポーショナルのままでありながら、日本語の仮名や漢字と用いる場合の全角ボディに合わせたデザインの日本語用のグリフが呼び出される、という方法を採用しました。
加えて、少数の記号類の文字については、字幅がデフォルトでは全角あるいはプロポーショナルのどちらかのグリフとなり、両方のグリフがフォントに含まれているため、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 Graphics) グリフがデザインされて、次の文字に対応付けられています: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 文字の CJK 互換漢字の表現形態を利用可能な状態に保つため、そしてそれを貂明朝で対応できるようにするために、必要な字形指示列 (Unicode Variation Sequence か UVS) が Format 14 の cmap サブテーブル中に、Adobe-Japan1 の IVS (Ideographic Variation Sequence) と SVS (Standardized Variation Sequence) の両方の形式で指定されています。そのようにして人名用漢字の形が実現されているところを、対応する基底文字 (base character) とともに下図に示します。
上の図の文字の「プレーンテキスト」のデータを再利用したい方は、以下の文字列をコピーして UVS に対応するアプリケーションか、Typekit の貂明朝のページのダイナミックテキストボックスにペーストすることができます。
- 欄󠄀廊󠄁朗󠄀虜󠄀類󠄀猪󠄀神󠄀祥󠄀福󠄁諸󠄀都󠄀侮󠄁僧󠄁勉󠄀勤󠄁卑󠄀嘆󠄀器󠄁墨󠄀層󠄁悔󠄀憎󠄀懲󠄃敏󠄀暑󠄁梅󠄀海󠄀渚󠄀漢󠄁煮󠄀琢󠄀碑󠄀社󠄁祉󠄁祈󠄀祐󠄀祖󠄁祝󠄀禍󠄀禎󠄁穀󠄀突󠄁節󠄁練󠄀繁󠄁署󠄀者󠄁臭󠄁著󠄁視󠄁謁󠄀謹󠄀賓󠄀贈󠄁逸󠄁難󠄀響󠄁—Adobe-Japan1 の IVS
- 欄︀廊︀朗︀虜︀類︀猪︀神︀祥︀福︀諸︀都︀侮︀僧︀勉︀勤︀卑︀嘆︀器︀墨︀層︀悔︀憎︀懲︀敏︀暑︀梅︀海︀渚︀漢︀煮︀琢︀碑︀社︀祉︀祈︀祐︀祖︀祝︀禍︀禎︀穀︀突︀節︀練︁繁︀署︀者︀臭︀著︀視︀謁︀謹︀賓︀贈︀逸︁難︀響︀—SVS
- 欄廊朗虜類猪神祥福諸都侮僧勉勤卑嘆器墨層悔憎懲敏暑梅海渚漢煮琢碑社祉祈祐祖祝禍禎穀突節練繁署者臭著視謁謹賓贈逸難響—CJK 互換漢字
- 欄廊朗虜類猪神祥福諸都侮僧勉勤卑嘆器墨層悔憎懲敏暑梅海渚漢煮琢碑社祉祈祐祖祝禍禎穀突節練繁署者臭著視謁謹賓贈逸難響—基底文字
Adobe-Japan1 の残りの漢字用の IVS も、念のためすべてデフォルトの UVS の表現形式で含まれています。
貂明朝のグリフ集合にはスラッシュ付の U+0030 0 (ゼロ) と U+FF10 0 (全角のゼロ) が含まれています。これらのグリフには zero という GSUB フィーチャーでアクセス可能ですが、「プレーンテキスト」しか使えない環境でも次の SVS を用いることでアクセス可能となります:<U+0030,U+FE00> 0︀ と <U+FF10,U+FE00> 0︀。前者のグリフはイタリック体のフォントにも含まれ、上のどちらの方法でも利用できます。この二つの字形指示列もまた、先に列挙した 57 文字の CJK 互換漢字の場合と同じく、コピー・ペーストして Typekit の貂明朝のページにあるダイナミックテキストボックスに入力することができます。
貂明朝には、次の六文字のテキストまたは絵文字の表現形態を明示的に指定することができる、EVS (Emoji Variation Sequence) も含まれています:U+2600 ☀︎、U+2601 ☁︎、U+2602 ☂︎、U+2603 ☃︎、U+261D ☝︎ 及び U+303D 〽︎。前のセクションで述べた理由で、色付きのグリフは貂明朝ではまだ利用できませんが、次の「プレーンテキスト」が、これら六文字用の白黒と色付き両方を指定する字形指示列となります。
☀︎☀️ ☁︎☁️ ☂︎☂️ ☃︎☃️ ☝︎☝️ 〽︎〽️
むすび
弊社のタイプフェイスデザイナーの西塚涼子、日本語タイポグラフィの才能に恵まれたチームと共に仕事をし、貂明朝の開発全体を遂行できたことは、私にとって有意義で喜びに満ちたものでした。このフォントが書体メーカーやタイプデザイナーの皆様のインスピレーションとなることを願っています。
どうぞお試しください!