欧文フォントの異体字にはどんなものがあるのか

  • 日本語フォントのグリフ置換(GSUB)機能についてはこれまでに何度も取り上げてきたが、欧文フォントのそれについてはあまりよく知らなかったので、ちょっと調べてまとめてみることにした。
  • 下図は、InDesignの文字パネルメニュー。ブラケット付きで表示されている項目は、指定されたフォントではサポートされていないことを意味する。以下、番号を振ったものについて見ていく。


  • 任意の合字(dlig)は、日本語フォントでは主に「㍑」のような組文字用だが、欧文フォントではその名のとおりオプショナルなリガチャを表現するために用いられる。


  • スラッシュを用いた分数(frac)は、今回調べた欧文フォントではいずれも「1/234」のような例に対応できる連鎖文脈置換(chaining contextual substitution)。日本語フォントでもPr6Nなどはこのタイプを採用している(詳しくは「「スラッシュを用いた分数」の仕様変更」を参照)。


  • 上付き序数表記(ordn)は、(今回調べた範囲では)置換後のグリフとしては上付き文字(sups)のサブセットとなっている。ordnフィーチャの実装は、フォントによって連鎖文脈置換(GSUB loolup type 6)だったり単独置換(GSUB loolup type 1)だったりする。下図のAdobe Jenson Proは連鎖文脈置換なので、たとえば「3rd」のようなあらかじめ想定されている文字列のみが置換の対象となる。


  • 下図は、上付き序数表記(ordn)と上付き文字(sups)の実装の比較。前項で述べたように、Adobe Jenson Pro(上)のordnは連鎖文脈置換なので、「1st」の「s」は上付きになるが、「1s」だと上付きにならない。上付き文字(sups)の場合、上付きグリフがあれば上付きになる。「c」が上付きになっていないのは、単純にAdobe Jenson Proが(序数表記で出番のない)「c」の上付きグリフを持っていないため。Minion Pro(下)のordnは単独置換なので、「1st」でも「1s」でも「s」は上付きになる。Minion Proのordnで「1」が上付きにならないのは、数字は(supsのテーブルには入っているけれど)ordnのテーブルに入っていないため。


  • スワッシュ字形(swsh)は、スクリプト系の書体でサポートされている。


  • タイトル用字形(titl)は、大きいサイズでの利用に最適化されたグリフ。このフィーチャをサポートしているフォントは珍しい。下図(Adobe Garamond Proの例)を見ると、titlグリフは若干細く、セリフがシャープなかんじ。


  • 前後関係に依存する字形(calt)は、その名のとおり連鎖文脈置換。日本語フォントでは、モリサワのくいこみ数字がこのフィーチャを利用する。


  • 「すべてスモールキャップス」メニューにチェックを付けると、大文字も小文字もスモールキャップになる。GSUBフィーチャとしては、大文字をスモールキャップにするのがc2sc、小文字をスモールキャップにするのがsmcp。その両方が適用されていることとなる。


  • 文字パネルメニューの(OpenType機能ではない)「スモールキャップス」にチェックを付けると、スモールキャップのグリフをグリフを持っているフォントならsmcpフィーチャで置換される。スモールキャップのグリフを持っていないフォント(通常の日本語フォント)の場合、大文字のグリフを「環境設定>高度なテキスト>文字設定>スモールキャップス」で設定に従って縮小したものが用いられる。


  • スラッシュ付きゼロ(zero)。このフィーチャは日本語フォントでもサポートされている。


  • デザインのセット(ss01〜ss20)は、バリアントのグループにまとめて置換できるフィーチャ。下図の例では、セット1(ss01)は、ギリシア文字のプロスゲグラメニを右に置くスタイル(Garamond Premier Proのデフォルト)を下に付けるスタイルに変更する。セット3(ss03)は、キリル文字の「Д」などをクラシカルなスタイル(Garamond Premier Proのデフォルト)から現代における一般的なスタイルに変更する*1


  • 位置依存形には、語頭形(init)、語中形(medi)、語尾形(fina)、独立形(isol)がある。


  • 数字の位置にかかわるGSUBフィーチャには、上付き文字(sups)、下付き文字(subs)、学術用下付き文字(sinf)、分子(numr)、分母(dnum)がある。InDesignの字形パネルでは、sups(Superscript)は「上付き用数字」、sinf(Scientific Inferiors)は「下付き用数字」と表示されるが、両者とも数字のみを対象としているわけではない。subsとsinfは別のフィーチャだが、わたしの把握している範囲では、効果は同じ。「OpenType機能」メニューの「下付き文字」では、subsとsinfの両方が適用される。上付き文字と分子、下付き文字と分母は、欧文フォントでは位置が異なっている。日本語フォントにはこの区別はない。


  • 「上付き文字」というメニュー項目には、「文字パネルメニュー>OpenType機能>上付き文字」と「文字パネルメニュー>上付き文字」の2種類がある。前者はOpenTypeフォントのGSUBフィーチャにより専用のグリフに置換されるが、後者は「環境設定>高度なテキスト>文字設定」における設定値に基づいて縮小・位置を調整した文字を用いる。「下付き文字」も同じ。



  • 大文字用字形(case)は、大文字用に位置を調整してデザインされた記号など。文字パネルメニューで「オールキャップス」にチェックを付けると、(小文字の大文字への置換に加えて)このフィーチャが適用される。また、InDesignの「オールキャップス」では、大文字専用のスペーシングを実現するGPOSフィーチャ「cpsp」も同時に適用される*2


  • 欧文合字(liga)。このフィーチャは日本語フォントでもサポートされている。


  • ここから先は、InDesignではメニューからは適用できない(字形パネルから入力するしかない)フィーチャ*3。古典字体(hist)は、今回調べた欧文フォントのなかには、下図のようなlong sの例しかなかった。


  • 装飾(ornm)の実装は、フォントによってさまざま。下図のGaramond Premier Proでは、U+2022 BULLET(黒丸)に豊富なバリエーションが用意されている。


  • デザインのバリエーション(salt)。下図のGaramond Premier Proには、テールの長い「Q」ゃ小文字の語尾形などが入っている。

*1:この件については、twitterで皆さんにいろいろご教示いただきました。ありがとうございます!

*2:この項は、twitterで@Tosche_Jさんに教えていただいた情報に基づいて修正しました。ありがとうございます!

*3:IllustratorのOpenTypeパネルは、デザインのバリエーション(salt)をサポートしており、デザインのセット(ss01〜ss20)をサポートしていないなど、InDesignとは若干の違いがある。twitterで@Tosche_Jさんにご指摘いただきました。ありがとうございます!