Glyphs3 ハンドブック非公式翻訳 #17 補足資料(前編)

広告
免責事項について

この文章は、Glyphs 3ハンドブックを個人的に日本語翻訳したものです。翻訳の正確性には注意を払っておりますが、誤訳や不完全な解釈が含まれる可能性があります。文章内に誤りを見つけられた場合はご連絡いただけますと幸いです。

主な参考資料

Glyphs3 Handbook(公式PDF)
Glyphs2.3ハンドブック日本語版(旧バージョンの公式日本語版PDF)
Glyphs Handbook(公式WEB)サイト
Microsoft Typography documentation(OpenType仕様関連)
CSSでのOpenType 機能の構文(MDN Web Docsなど)

1. Glyphs 2. 作成 3. 環境設定 4. 編集ビュー 5. パレット 6. フィルタ 7. フォントビュー 8. フォント情報 9. 図形の再利用 10. スペーシングとカーニング 11. PostScriptヒンティング 12. TrueTypeヒンティング 13. マルチプルマスター 14. カラーフォント 15. 読み込みと出力 16. 拡張機能 17. 補足資料(前編後編

この前編ページでは第17章の「1.正規表現」「2.フィーチャースニペットコードのカスタマイズ」「3.フィーチャーの自動生成」について記載しています。
「4.カスタムパラメータ」については後編ページを参照してください。

17 補足資料

広告

17.1 正規表現

正規表現(regex)は、特定のパターンを持つテキストを検索するために使用される記述方法です。例えば、[LlDd]caronと正規表現で記述した場合は、「Lcaron」「lcaron」「Dcaron」「dcaron」のいずれにも一致させることができます。

正規表現の中で特別な意味を持っている文字(「.」や「?」など)を通常の文字として検索に使用したい場合は、それらの文字の前に「」(バックスラッシュ)を付けて、「.」や?」のようにすることで検索することができます。

.

任意の1文字に一致します。(例:a, ., -, space 等)

[abc]

角括弧 [] 内のいずれかの文字に一致します。例えば、[ae]acuteなら「aacute」と「eacute」の両方に一致します。

[^abc]

角括弧 [] 内に含まれない、任意の1文字に一致します。例えば、[^au]-cyであれば、「e-cy」や「o-cy」には一致しますが、「a-cy」や「u-cy」には一致しません。

d

任意の数字に一致します。具体的には、0、1、2、3、4、5、6、7、8、9のいずれかの数字に一致します。Dは逆に、数字以外の文字に一致します。例えば、A.00dは、「A.000」や「A.003」には一致しますが、「A.00F」や「A.123」には一致しません。

w

単語を構成する文字(英字、数字、アンダースコア _ )に一致します。これは[a-zA-Z0-9_]と書くのと同じ意味になります。例えばw+と記述した場合、「a」と「alpha」には一致しますが、「a-cy」には一致しません。Wは単語の文字以外の任意の文字に一致します。

?

直前のパターンが0回、または1回出現する場合に一致します。例えば、oe?は「o」と「oe」の両方に、[ae]?breveは「abreve」「ebreve」「breve」に、grave(comb)?は「grave」と「gravecomb」の両方に一致します。

*

直前のパターンが0回以上出現する場合に一致します。例えば、A.*は「A」「AE」「Atilde」「Alpha」に一致します。

+

直前のパターンが1回以上出現する場合に一致します。例えばA.+は、「AE」「Atilde」「Alpha」には一致しますが、「A」には一致しません。

{n}

直前のパターンが正確にn回出現する場合に一致します。例えば、a{5}は「aaaaa」のみに一致します。d{3}は「000」や「123」に一致しますが、「12」や「1234」には一致しません。

{n,m}

上記の{n} と似ていますが、直前のパターンがn回からm回の間で出現する場合に一致します。nには0を指定でき、mを省略すると上限がなくなります。a{0,1}a?a{0,}a*a{1,}a+と同じ意味です。例えば、d{3,5}であれば「123」「1234」「12345」に一致しますが、「12」「123456」には一致しません。

よく利用される主なパターン

a.* :「a」で始まるグリフに一致します。

.*a :「a」で終わるグリフに一致します。

.*-.* :ハイフンを含むすべてのグリフに一致します。

.*..* :ドットを含むすべてのグリフに一致します。

.*.d+ :ドットの後に数字が続くグリフに一致します。

D*.d{3} :ドットと3桁の数字で終わり、その前に数字を含まないグリフに一致します。

正規表現を使って検索や置換を行う際、検索されたパターンの一部を置換時に使用したい場合は、12、…を使用します。検索パターン内において置換に使用したい部分を丸括弧()で囲み、置換パターンで丸括弧で囲んだ部分を使用するために、バックスラッシュと参照したい丸括弧の位置を番号で指定します。

例えば、(d)(d) と検索し、置換を21 とすることで、2つの数字を入れ替える置換を行うことができます(「15」は「51」、「03」は「30」になります)。詳しくは 7.5.1「検索ボックス」も参照してください。

17.2 フィーチャースニペットコードのカスタマイズ

OpenTypeレイアウトフィーチャーコードの編集時に(8.4.3「フィーチャーコードの手動編集」参照)、よく使うコードの断片を「スニペット」として登録し、簡単に呼び出すことができます。

スニペットを追加するには、まずフィーチャー編集ウィンドウの右下にあるスニペットボタンをクリックします。表示されたメニューから「スニペットフォルダを開く」を選択すると、スニペットファイルを保存するためのフォルダがFinderで開きます。このフォルダに、独自に作成したスニペットファイルを追加します。

スニペットは、プロパティリストファイル(拡張子が .plist のファイル)で定義します。ファイル名は FeatureSnippetsNAME.plist という形式で作成してください。この NAME の部分が、スニペットメニューに表示されるグループ名になります。

【使用例】

例えば、FeatureSnippetsDecomposition.plist という名前でファイルを作成し、内容を以下のように記述すると、スニペットメニューに「Decomposition」というグループが追加され、「Soft Dotted」と「Decompose Precomposed」が選択できるようになります。

(
  {
    title = "Soft Dotted";
    code = "lookupflag UseMarkFilteringSet @TopMark;
sub @SoftDotted' @TopMark by @Dotless;";
  },
  {
    title = "Decompose Precomposed";
    code = "sub @Precomp' lookup decomp @Mark;";
  }
)

【ファイルの構造】

  • 全体は () で囲まれた配列(リスト)形式です。
  • 個々のスニペットは {} で囲まれたブロックで定義します。
  • title:スニペットメニューに表示される、スニペットの名前を指定します。
  • code:メニューで選択した際に、実際にフィーチャーコードとして挿入される内容を記述します。

17.3 フィーチャーの自動生成

Glyphsは、フォント内に特定の名前を持つグリフが存在する場合に、多くのOpenTypeフィーチャーを自動生成することができます。

aalt

All Alternatives(すべての代替字形)

すべてのオルタネート(代替字形)にアクセスするためのフィーチャーです。GlyphsはGSUB(グリフ置換系)の各種フィーチャー(liga, smcp, ss01など)を認識して自動的に aalt を自動生成します。ユーザーが意図的にグリフ名を指定して自動生成させることはできません。

liga

Standard Ligatures(標準合字)

通常のリガチャー(合字)です。フォントを使用するアプリケーションでは、通常デフォルトで有効になっており、ユーザーが無効にすることも可能です。リガチャー用のグリフ名は、その元となるグリフ名をアンダースコア(_)で繋げて記述してください。欧文以外で「-cy」や「-hira」などの末尾に文字識別子が付いているグリフをリガチャーにする場合、識別子は末尾に一度だけ明記すれば十分です。

一般的なリガチャー(f_f_i、f_f_l、f_f、fi、fl、lu_lakkhangyao-thai、ru_lakkhangyao-thai など)は自動的に liga フィーチャーに登録され、それ以外はすべて dlig に登録されます。また、任意のリガチャーグリフを、dlig ではなく強制的かつ自動的に liga に登録したい場合は、グリフ名の末尾に「.liga」を追加します(例:f_b.liga、yi_yi-cy.liga)。

dlig

Discretionary Ligatures(任意の合字)

任意のリガチャーです。フォントを使用するアプリケーションでは liga はデフォルトで有効になっており、グリフに一律に合字が適用されますが、dlig はデフォルトで無効となっており、ユーザーが必要に応じて任意の箇所で個別に有効にして適用します。一般的に dlig には liga よりも装飾性が高いものや、重要度が低いものを含めます。グリフ名は、その元となるグリフ名をアンダースコア(_)で繋げて記述してください(例:s_t、f_odieresis)。

hlig

Historical Ligatures(古典的合字)

古典的な文字のリガチャーで、longs(長い「s」)のリガチャーが典型的な用途です。自動でフィーチャーを生成させたい場合は、グリフ名の末尾に「.hlig」または「.hist」を追加してください。

rlig

Required Ligatures(必須合字)

フォントを使用するアプリケーションで常に有効で、ユーザーが無効化する選択ができない強制発動リガチャーです。基本的にはアラビア文字の「lam」と「alif」など、ルール上絶対に合字にしなければならないものに使用されます。グリフ名の末尾に「.rlig」を付けてください。また、以下のグリフ名には自動的に rlig フィーチャーが生成されます。

  • lam_alef-ar
  • lam_alefHamzaabovear
  • lam_alefHamzabelow-ar
  • lam_alefMadda-ar
  • lam_alef-ar.fina
  • lam_alefHamzaabove-ar.fina
  • lam_alefHamzabelow-ar.fina
  • lam_alefMadda-ar.fina
  • lam_alefWasla-ar
  • lam_alefWasla-ar.fina

c2sc

Small Capitals from Capital(大文字からスモールキャップ)

大文字をスモールキャップに変換するフィーチャーです。グリフ名の末尾に「.sc」「.c2sc」または「.smcp」を付けてください。
Adobe アプリケーションでは「すべてスモールキャップス」を選択することで、smcp フィーチャーと一緒にアクセスできます。

smcp

Small Capitals(スモールキャップ)

小文字をスモールキャップに変換するフィーチャーです。グリフ名の末尾に「.sc」「.smcp」または「.c2sc」を付けてください。
c2sc と smcp のために別々のセットを作成する場合、大文字のグリフ名には .c2sc を、小文字のグリフ名には .smcp を使用します。
c2sc と smcp の両方のスモールキャップを作成する場合、「c2sc」系列は「A.c2sc」のように大文字と対応させ、「smcp」系列は「a.smcp」のように小文字と対応させてください。

c2pc

Capitals to Petite Capitals(大文字からプチキャップ)

大文字をプチキャップにするフィーチャーです。グリフ名の末尾に「.pc」「.c2pc」または「.pcap」を付けてください。

pcap

Petite Caps(プチキャップ)

通常、スモールキャップでは小文字よりも高さを高く設計しますが、プチキャップという名前の小文字と高さが完全に揃った大文字も存在します。これには専用の pcap フィーチャーを使用します。グリフ名の末尾に「.pc」「.c2pc」または「.pcap」を付けてください。

sups

Superscript(上付き文字)

上付き文字です。グリフ名の末尾に「.sups」を付けてください。数字に限ってはピリオドなしで「superior」も可能です(例:onesuperior)。

subs

Subscript(下付き文字)

下付き文字です。グリフ名の末尾に「.subs」か「.sinf」を付けてください。数字に限ってはピリオドなしで「inferior」も可能です。フォントが下付き文字と科学的な下付き文字を区別しない場合は、.subs のグリフセットを1つ用意すれば、subs と sinf の両方のフィーチャーが生成されます。

sinf

Scientific Inferiors(化学用下付き文字)

汎用の下付き文字とは別に用意された化学用途の下付き文字です。グリフ名の末尾に「.sinf」または「.subs」を付けてください。
もし製作中のフォントファイルで下付き文字と化学用下付き文字の区別を特につけない場合は、単に「.subs」のグリフだけを作成しておけば、subs と sinf の両方のフィーチャーが自動的に生成されます。

afrc

Alternate Fractions(代替の分数)

フォント内に数字とスラッシュ、そして oneovertwo のような既成の分数グリフが存在する場合に生成されます。afrc フィーチャーは frac フィーチャー(後述)とは異なり、数学で使用される水平な直線で分割された分数を表示するためのものです。afrc は始めから定義された組み合わせのみをサポートし、frac とは違ってどのような数字の組み合わせにも対応できるわけではありません。このフィーチャーをサポートするには、以下の分数グリフをフォント内に用意してください。

  • oneovertwo
  • zerooverthree
  • oneoverthree
  • twooverthree
  • oneoverfour
  • threeoverfour
  • oneoverfive
  • twooverfive
  • threeoverfive
  • fouroverfive
  • oneoversix
  • fiveoversix
  • oneoverseven
  • twooverseven
  • threeoverseven
  • fouroverseven
  • fiveoverseven
  • sixoverseven
  • oneovereight
  • threeovereight
  • fiveovereight
  • sevenovereight
  • oneovernine
  • twoovernine
  • fourovernine
  • fiveovernine
  • sevenovernine
  • eightovernine
  • oneoverten
  • threeoverten
  • sevenoverten
  • nineoverten
  • oneovereleven
  • twoovereleven
  • threeovereleven
  • fourovereleven
  • fiveovereleven
  • sixovereleven
  • sevenovereleven
  • eightovereleven
  • nineovereleven
  • tenovereleven
  • oneovertwelve
  • fiveovertwelve
  • sevenovertwelve
  • elevenovertwelve
  • oneoveronehundred

frac

Fractions(分数)

斜めのスラッシュで区切られた分数を表示するフィーチャーです。接尾辞に「.numr」(分子)、「.dnom」(分母)が付いたグリフおよび「fraction(分数用スラッシュのグリフ)」を組み合わせて自動的に生成されます。これらのグリフが存在しない場合は、onehalf、onequarter、threequarters などの前述の afrc フィーチャーで言及されているような、始めから結合されている分数を使用してフィーチャーが構成されます。

dnom

Denominators(分母)

分数の分母用数字です。グリフ名の末尾に「.dnom」を付けてください。

numr

Numerators(分子)

分数の分子用数字です。グリフ名の末尾に「.numr」を付けてください。

onum

Oldstyle Figures(オールドスタイル数字)

オールドスタイル数字です。オールドスタイル数字は、小文字の高さに合わせてデザインされている数字のスタイルで(スモールキャップと同様に、実際には小文字より少し高めに設計されています)、数字によってはアセンダーやディセンダーがあるデザインが特徴です。オールドスタイル数字には、プロポーショナルと等幅の2種類があります。プロポーショナルオールドスタイルのグリフ名の末尾には「.osf」を、等幅オールドスタイルのものには「.tosf」を付けてください。これらのスタイルは、通貨記号など、数字以外のグリフにも適用することができます。

tnum

Tabular Figures(等幅数字)

等幅(タブラー)数字とは、すべての数字が同じ幅でデザインされた数字のことです。等幅ライニング数字にはグリフ名の末尾に「.tf」を、等幅オールドスタイル数字には「.tosf」を付けてください。これらの接尾辞は、通貨記号などの数字以外のグリフにも適用可能です。

デフォルトの数字となるグリフには「.lf」、「.tf」、「.osf」、「.tosf」などの接尾辞を使用しないでください。Glyphsは他にあるグリフの名前や幅の情報から、デフォルトの数字がどのタイプなのかを判別し、自動でフィーチャーを生成します。たとえば、デフォルトの数字がプロポーショナルオールドスタイル数字である場合は、末尾に「.osf」が付いた数字は使用しないようにしてください。

pnum

Proportional Figures(プロポーショナル数字)

プロポーショナル数字は、数字ごとに字幅が異なる特徴を持つもので、tnum(等幅数字)の対となるフィーチャーです。プロポーショナルオールドスタイル数字にはグリフ名の末尾に「.osf」を、プロポーショナルライニング数字には「.lf」を付けてください。これらの接尾辞は、通貨記号など、数字以外のグリフにも適用できます。

lnum

Lining Figures(ライニング数字)

高さが揃った数字はライニング数字と呼ばれ、オールドスタイル数字と対になります。プロポーショナルライニング数字にはグリフ名の末尾に「.lf」を、等幅ライニング数字には「.tf」を付けてください。これらの接尾辞は、通貨記号などの数字以外のグリフにも適用できます。

ordn

Ordinals(序数)

序数です。フォントにnumero(№)、ordfeminine(ª)、および ordmasculine(º)が含まれている場合に自動的に生成されます。

ornm

Ornaments(オーナメント)

オーナメント(花形装飾)を使用するためのフィーチャーです。大文字A-Zまたは小文字a-zのグリフ名の末尾に「.ornm」の接尾辞が追加され、かつbulletグリフが存在する場合に生成されます。

hist

Historical Forms(歴史的字形)

歴史的な形のオルタネートです。典型的な例としては、小文字の「s」を長いs「ſ」に切り替えるといった用法です。グリフ名の末尾に「.hist」を追加されている場合に生成されます。

case

Uppercase Forms(大文字用字形)

オールキャップでの文字組専用に位置や大きさが調整された大文字専用のオルタネートグリフです。よくある例としては、大文字の中心の高さに揃ったハイフン(-)や括弧(( ))、発音記号などがあります。グリフ名の末尾に「.case」を付けてください。
Adobeアプリケーションでは、フォントパネルから「オールキャップス」を選ぶことでアクセスできます。また、「.lf」が付いたライニング数字もここで使用されます。

cpsp

Capital Spacing(大文字用スペーシング)

大文字が連続する場合のスペーシングを調整するためのフィーチャーです。文章をすべて大文字(オールキャップス)で組む際は、文字間を少し広めに取ると全体のバランスが整います。このスペーシング調整を、フィーチャーとしてフォントに組み込んでおくことができます。フォント情報の「フィーチャー」タブで「+」ボタンをクリックし、Capital Spacingを選択するとフィーチャーが追加されます。

locl

Localized Forms(ローカライズ字形)

このフィーチャーは特定の言語や地域で、より自然で正しい字形を表示するために設けられています。Adobeアプリケーションでは、テキストブロックの言語を指定することで、loclフィーチャーの該当する言語コードが適用されます。

Glyphsでは、グリフ名の末尾に「.loclXXX」という接尾辞を追加することで、このフィーチャーを自動生成できます。「XXX」の部分にはOpenType仕様で定められた3文字の言語タグが入ります(例:英語は「.loclENG」、スウェーデン語は「.loclSVE」など)。

言語タグ一覧:Microsoft Typography – Language tags
Glyphsでの多言語対応(英語): Glyphs Learn – Languages

また、以下のように特定のグリフをフォントに含めるだけで、loclフィーチャーが自動生成されるケースもあります。

  • トルコ語、アゼルバイジャン語、クリミア・タタール語、カザフ語、タタール語(言語タグ:TRK、AZE、CRT、KAZ、TAT):
    これらのテュルク諸語では、ラテン文字の「i」(ドット付き)と「ı」(ドットなし)が明確に区別されます。それに伴い、大文字と小文字の対応関係も英語などとは異なります。(上記言語では i→İ と ı→I 、英語では i→I )。正しい表示には、「i」と見た目が同じオルタネートとloclフィーチャーが必要です。フォント内に「idotaccent」や「i.TRK」または「i.loclTRK」があれば(グリフのデザインは小文字iと同一)、上記言語の小文字iのフィーチャーが自動的に生成されます。
  • ルーマニア語、モルドヴァ語(言語タグ:ROM、MOL):
    これらの言語では、セディーユ付きの「Ş (Scedilla)」やȚ (Tcedilla)」ではなく、下付きコンマアクセントを持つ「Ș (Scommaaccent)」や「Ț (Tcommaaccent)」を使用するのが現在の正しい表記法です。しかし、歴史的な経緯から、ユーザーは誤ってセディーユ付きの文字を入力してしまうことがあります。この問題を解決するため、locl フィーチャーを使って、セディーユ付きの文字が入力された際に、自動的に正しいコンマアクセント付きの文字に修正・置換する必要があります。
    Glyphsは、フォント内に「Scommaccent」(大文字)、「Tcommaaccent」(大文字)、「scommaaccent」(小文字)、「tcommaaccent」(小文字)があれば、「Scedilla」、「Tcedilla」、「scedilla」、「tcedilla」を前者4つに置き換えらるコードを自動で作成します。
    Unicodeでは、以前ルーマニア語、モルドヴァ語用としてセディーユ付きの「Ş」や「Ț」に対してUnicode符号が付与されました。しかし、正しい表記は下付きコンマアクセント(別名:コンマビロー)であることが判明したため、後になってコンマ付きの「Ș」と「Ț」が別途符号化された経緯があります。このため、古い情報に基づいた入力ミスが起こりやすく、フォント側での対応が重要となります。セディーユ付き「Ş」「Ț」はUnicodeへの追加によってある程度普及してしまっていますが、現在はルーマニア語とモルドヴァ語では可能な限りコンマアクセント付き「Ș」「Ț」を使うことが推奨されています。上記のグリフがフォント内に存在すると、必要なコードが自動で生成されます。
  • カタルーニャ語(言語タグ:CAT):
    カタルーニャ語では、「l·l」(ella geminada)のように、2つ続く「l」(L)を区別するために「periodcentered」(中黒)を使用します。(例: 「cella」は「セーヤ」、「cel·la」は「セッラ」というように、発音が異なります。)ただし、「periodcentered」グリフをそのまま使用すると、位置が低すぎて「l」の中央に合いません。そのため、高さを調整して「l」の中央に揃え、さらにスペーシングも調整し、スペースの空きすぎで1単語に見えないということがないように調整する必要があります。大文字の場合は、中黒が最初の「L」のカウンター内(内側の空間)に浮くような配置になります。この調整を行うloclフィーチャーを自動生成するには、以下の3つの方法があります。
    • カタルーニャ語専用の「periodcentered」グリフを用意する方法
      「periodcentered.loclCAT」と「periodcentered.loclCAT.case」を用意します。これらのグリフと「L」、「l」がフォントに含まれていると、必要なコードが自動で生成されます。
    • 合字グリフを用意する方法
      「L_periodcentered_L.loclCAT」と「l_periodcentered_l.loclCAT」という合字グリフを用意すると、これにより自動でコードが生成されます。
    • Unicode登録グリフを用意する方法
      Unicodeに登録されている「Ldot」と「ldot」がフォントに含まれていると、自動で必要なコードが生成されます。ただし現在「Ldot」と「ldot」の使用は推奨されていません。できるだけ先に述べた2つの方法を使用することが望ましいですが、条件を満たしていない場合にはこの方法が最終手段として考えられます。
  • オランダ語(言語タグ:NLD):
    オランダ語では、「IJ」と「ij」は2重母音ですが、しばしば1つの文字のように扱われます。また、発音を強調する際には母音にアキュート記号を付けます。「ij」を強調する場合、本来は「í」と「j́」のように両方の文字にアクセントが付くのが望ましいですが、Unicodeにはアキュート付きの「j」が存在しないため、通常は「íj」のように「i」にのみアクセントが付いた形で表記されます。
    この状況に対応し、より正しい表記である「í」と「j́」の組み合わせを表示するため、Glyphsではloclフィーチャーを自動生成できます。以下のいずれかのグリフセットをフォントに含めてください。
    これらのグリフが存在し、かつベースとなる「Iacute」、「iacute」、「J」、「j」 もフォントに含まれている場合、オランダ語の「ij」のアクセント付き代替字形に置き換えるフィーチャーが自動生成されます。
    • 方法A(合字グリフ): 「Iacute_J.loclNLD」、「iacute_j.loclNLD」
    • 方法B(代替グリフ): 「Jacute」、「jacute」
  • ウルドゥー語(言語タグ:URD):
    ウルドゥー語の数字は、ペルシャ語の数字(ペルシャ語の数字はアラビア語の数字とは字形が異なります)をベースにしています。しかし、4、6、7などの一部の数字については、ウルドゥー語特有のデザインを持つ代替字形(オルタネート)に切り替えるのが理想的です。ペルシャ語数字のグリフ名の末尾に「.loclURD」という接尾辞を付けたグリフ(例: four-persian.loclURD)がフォントにあれば、自動でウルドゥー語用のフィーチャーコードが生成されます。また、ウルドゥー語ではアラビア文字の「6」の字形も一般的に受け入れられています。そのため、フォント内に six-ar グリフが存在する場合、ウルドゥー語の「6」としてもこのグリフが再利用されるようにコードが自動生成されます。(いずれかのケースで対応すれば十分です)

cv01〜cv99

Character Variants(文字のバリエーション)

ユーザーが任意に切り替えられる代替字形を提供するフィーチャーです。主に、グループ化する場合に使用されます。最大99個までの文字のバリエーションを作成できます。グリフ名の末尾に「.cv01」から「.cv99」までを追加します。

OpenTypeの仕様では、意味的な役割や機能に基づき、関連する代替文字は同一の「cv##」フィーチャーにまとめることが推奨されています。例えば、「a」という文字に対して3つのバリエーションがある場合、それぞれを別のフィーチャー(cv01, cv02, cv03)に分けるのではなく、一つのフィーチャー内でユーザーが選択できるようにすべきです。このように、1つの文字に対して複数の代替字形を提供したい場合は、手動でフィーチャーコードを記述する必要があります。「a」の代替字形として a.alt1, a.alt2, a.alt3 がある場合、以下のようなコードを1つの cv## フィーチャー(例: cv01)に記述します。複数のバリエーションがある場合には、手動でフィーチャーコードを記述します。例えば、以下のコードをひとつの「cv##」フィーチャーに配置することで、複数のバリエーショングリフを指定できます。

sub a from [a.alt1 a.alt2 a.alt3]。

ss01〜ss20

Stylistic Set(スタイリスティックセット)

最大20セットまで作成できる、デザイン上の代替字形を提供するフィーチャーです。標準の字形とは異なる、デザイン上のバリエーションをユーザーが任意に切り替えられるようにします(例:「a」を1階建てにする、数字を円で囲む、など)。macOS標準のアプリケーション(TextEdit, Pagesなど)や、Adobeアプリケーション(InDesign、Photoshop、Illustratorなど)で利用可能です。グリフ名の末尾には「.ss01」から「.ss20」までを付けてください。

また、スタイリスティックセットにはその内容が分かりやすくなるように名前を付けることができます(8.4.6「スタイリスティックセットの命名」参照)。フィーチャー設定画面の下部にあるメモ欄に「Name:」で始まる分かりやすい名前を付けておくことで、Glyphsがこの記述を認識し、自動的にセットの名前として設定します。また、より詳細な設定を行いたい場合は、メモ欄に featureNames を使用したAFDKO(Adobe Font Development Kit for OpenType)のコードを直接記述することも可能です。

salt

Stylistic Alternates(スタイリスティック代替)

Glyphsの初期設定では、ss01フィーチャーで定義した内容は、自動的にsaltフィーチャーにコピーされます。これは、IllustratorやPhotoshopのUIにある「スタイルの代替字形」ボタンが、このsaltフィーチャーを制御しているためです。そのため、フォントの顔となるような代表的な代替字形をss01に設定しておけば、これらのアプリケーションで簡単にそのデザインを利用できるようになり、フォントの利便性が向上します。

swsh

Swashes(スワッシュ)

スワッシュ用のオルタネートです。グリフ名の末尾に「.swsh」を付けてください。

titl

Titling(タイトル)

タイトル用のオルタネートです。グリフ名の末尾に「.titl」を付けてください。

init

Initial Forms(語頭形)

語頭形のオルタネートです。特にアラビア文字などのように、単語内での位置によって字形が変化する文字に使用されます。グリフ名の末尾に「.init」を付けてください。

medi

Medial Forms(語中形)

語中形のオルタネートです。グリフ名の末尾に「.medi」を付けてください。

med2

Medial Forms 2(語中形2)

語中形のオルタネート2です。シリア文字でのみ使用されます。グリフ名の末尾に「.med2」を付けてください。

fina

Terminal Forms(語尾形)

語尾形のオルタネートです。グリフ名の末尾に「.fina」を付けてください。

fin2

Terminal Forms 2(語尾形2)

語尾形のオルタネート2です。シリア文字でのみ使用されます。グリフ名の末尾に「.fin2」を付けてください。

fin3

Terminal Forms 3(語尾形3)

語尾形のオルタネート3です。シリア文字でのみ使用されます。グリフ名の末尾に「.fin3」を付けてください。

fwid

Full Widths(全幅)

グリフ名の末尾に「.full」または「.fullwidth」を追加してください。「space」は「emspace」に置き換えられます。

hkna

Horizontal Kana Alternates(横組み用かな)

標準のかなを横書き専用にデザインされた字形に置き換えます。カタカナやひらがなのグリフ名に .hori を追加します。

hojo

Hojo Kanji Forms(補助漢字文字)

hojoフィーチャーは、JIS X 0213:2004(JIS2004)を基本としつつ、旧規格であるJIS X 0212-1990(補助漢字)の字形も同一フォント内に収録し、必要に応じて切り替えられるようにするための機能です。

実装するには、基準となるJIS X 0213:2004のグリフは特別な接尾辞なしで作成し、JIS X 0212-1990に対応するグリフの末尾に「.hojo」という接尾辞を追加してください。

hwid

Half Widths(半幅)

半角グリフ幅のオルタネートです。グリフ名の末尾に「.half」を付けてください。「space」は「enspace」に自動的にに置き換えられます。

ital

Italics(イタリック)

イタリック体のオルタネートです。グリフ名の末尾に「.italic」を追加します。

pkna

Proportional Kana(プロポーショナルかな)

均等な幅(全角または半角の長さ)の「かな」および「かな」関連の字形セットを、プロポーショナル字形に置き換えます。プロポーショナル字形のフィーチャーに似ていますが、このフィーチャーは「かな」のみに影響を与えます。カタカナやひらがなグリフ名の末尾に「.proportional」を追加します。

pwid

Proportional Widths(プロポーショナル幅)

特定の文字やグリフを均等幅(通常は全角や半角)からプロポーショナル幅に置き換えます。特にCJKV(中国語、日本語、韓国語、ベトナム語)フォントで、ラテン文字や仮名にこのフィーチャーが適用されることが多いです。グリフ名の末尾に「.proportional」を追加します。

qwid

Quarter Widths(クォーター幅)

グリフの幅を通常のem幅の4分の1に設定されたグリフに置き換えます。emの4分の1は、通常enの半分の幅に相当します。グリフ名の末尾に「.qartwidth を追加します。

ruby

Ruby Notation Forms(ルビ表記文字)

標準の仮名文字をルビ用のデザインに置き換えることができます。グリフ名の末尾に「.ruby」を追加します。

twid

Third Widths(3分の1幅)

グリフの幅を通常のem幅の3分の1に設定されたグリフに置き換えます。グリフ名の末尾に「.thirdwidth を追加します。

vkna

Vertical Kana Alternates(縦組み用かな)

標準のかなを、縦書き専用にデザインされた字形に置き換えます。カタカナやひらがなのグリフ名の末尾に「.vert」を追加します。

vrt2

Vertical Alternates and Rotation(縦組み用回転字形)

縦書き時に表示される回転字形のオルタネートです。グリフ名の末尾に「.vertical」、「 .vert」または「Vertical」を付けてください。

abvs

Above-base Substitutions(上部ベース置換)

カンナダ語などで基本文字(ベースグリフ)とその上に配置される母音記号などを結合するリガチャーに使用します。

akhn

Akhands(アカンド)

アカンドと呼ばれる子音同士の合字で、デヴァナーガリー文字では最優先されるフィーチャーです。デヴァナーガリー文字の「k-deva」、「j-deva」、「ssa-deva」、「nya-deva」、そして「k_ssa-deva」、「j_nya-deva」があると生成されます。

blwf

Below Base Forms(下部ベース文字)

本体の子音の下に連なる子音のオルタネートです。デヴァナーガリー文字では「ra-deva」、「halant-deva」、そして「rashtrasign-deva」があると生成されます。ハラント(halants)や.below字形が他の字形と組み合わさることで生成されます。

blws

Below-base Substitutions(下部ベース置換)

基本文字(ベースグリフ)とその下に配置される形(下ベースフォーム)を組み合わせたリガチャーに使用します。名前の末尾に「.straight」が付いたグジャラート文字や、オリヤー語の特定のハラントの組み合わせなどにより生成されます。

cjct

Conjunct Forms(結合文字)

デヴァナーガリー文字や他のインド系文字の結合文字があると生成されます。

half

Half Forms(半形文字)

デーヴァナーガリー文字で、ハラントと組み合わさった判形文字を生成します。

nukt

Nukta Forms(ヌクター文字)

デヴァナーガリー文字や他のインド系文字でグリフ名の末尾が「Nukta」になっているヌクター付きリガチャーが、それに対応するヌクターなしの同じ字形と組み合わさることで生成されます。

pref

Pre-base Forms(プレベース字形)

南アジアおよび東南アジアの文字で、特定の文字配置におけるハラントによって生成されます。

pres

Pre-base Substitutions(プレベース代替)

デヴァナーガリー文字で、特定のマトラ(母音記号)や結合配置により生成されます。たとえば「iMatra-deva.01」から「iMatra-deva.20」までの番号付きの幅のバリエーションを定義し、フィーチャージェネレーターが各結合に適切な幅のバリアントを選びます。

psts

Post-base Substitutions(ポストベース代替)

デヴァナーガリー文字で、カンナダ語(Kannada)の.baseや.base.e字形と組み合わせたハラント字形など、固有のベースおよびマトラの配置により生成されます。

rkrf

Rakar Forms(ラカー文字)

デヴァナーガリー文字、グジャラート語、マラヤーラム語などの他のインド系文字で、ラカールのリガチャーがそれに対応する独立したグリフやハラントと組み合わさることで生成されます。

rphf

Reph Forms(レフ文字)

デヴァナーガリー文字の「ra-deva」、「halant-deva」、「rephdeva」または他のインド系文字で同様の働きをする文字があると生成されます。

vatu

Vattu Variants(バットゥのバリエーション)

rkrfフィーチャー内に特定のルックアップが存在することで生成されます。

ccmp

Glyph Composition and Decomposition(字形の構成および分解)

ccmpフィーチャーは、さまざまな文字の合体や分解を自動生成します。例えば、フォントに「i」、「j」、「idotless」、「jdotless」、そして合成用の発音記号が含まれていると、iやjの後に発音記号が続く場合に欧文用のルックアップが呼び出され、発音記号が適切に配置できるようにドットのないグリフに置き換えられます。

mark

Mark to Base Positioning(ベース位置へのマーク配置)

ベースグリフ(基底文字)の指定した位置に、結合マーク(結合用記号)を配置するためのフィーチャーです。

まず、「a」などのベースグリフに「top」や「bottom」などのアンカーを追加します。次に「acutecomb」などの結合マークグリフにも、その名前の先頭にアンダースコアを付けたアンカー(例:「_top」)を追加します。これにより、アプリケーションで文字が組まれる際、ベースグリフの上下に任意の結合マークが正しく配置されるようになります。結合マークのグリフ幅はフォント出力時に自動的に0に変更されます。

なお、markフィーチャーはフォント出力時にGlyphsがアンカー情報をもとに自動的に生成する「暗黙的なフィーチャー」であるため、フォント情報の「フィーチャー」には表示されません。(8.4.7「暗黙的なフィーチャー」参照)。

mkmk

Mark to Mark Positioning(マーク位置へのマーク配置)

結合マーク(Unicode U+0300以降の文字)の上に、さらに別の結合マークを積み重ねて配置するためのフィーチャーです。これにより、1つのベース文字に複数のアクセント記号などを正しく積み重ねることができます。これを設定するには、結合マークグリフに、markフィーチャー用のアンダースコア付きアンカー(例: _top)だけでなく、ベースグリフと同じようにアンダースコアなしのアンカー(例: top)も追加してください(「グリフ」→「アンカーを自動設置」(command+U)を実行すれば自動で配置されます)。

例えば「acutecomb」の上に、他のベースグリフと同様に「top」アンカーを追加します。こうすることで、フォント使用時にベースグリフに複数の結合マークを配置できます。結合マークのグリフはフォント出力時に自動的にグリフ幅が0に変更されます。

mkmkフィーチャーもmarkフィーチャーと同様に、フォント出力時にGlyphsがアンカー情報をもとに自動的に生成する「暗黙的なフィーチャー」であるため、フォント情報の「フィーチャー」には表示されません。(8.4.7「暗黙的なフィーチャー」参照)。

コメント

タイトルとURLをコピーしました