免責事項について
この文章は、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章の「4.カスタムパラメータ」の項について記載しています。
「1.正規表現」「2.フィーチャースニペットコードのカスタマイズ」「3.フィーチャーの自動生成」については前編ページを参照してください。
17 補足資料
- 17.4 カスタムパラメータ
- Add Class(クラスを追加)
- Add Feature(フィーチャーを追加)
- Add Prefix(プレフィックスを追加)
- ascender(アセンダー)
- Autohint(オートヒント)
- Axis Location(軸の位置)
- Axis Mappings(軸のマッピング)
- blueFuzz(blueFuzz)
- blueScale(blueScale)
- blueShift(blueShift)
- capHeight(キャップハイト)
- CJK Grid(漢字圏グリッド線数)
- CJK Grid Horizontal(漢字圏グリッド水平線数)
- CJK Grid Vertical(漢字圏グリッド垂直線数)
- CJK Guide(漢字圏ガイド)
- codePageRanges(コードページ範囲)
- Color Layers to COLR(Color Layers to COLR)
- Color Layers to SVG(カラーレイヤーをSVGとして出力)
- Color Palette for CPAL(CPAL用カラーパレット)
- Color Palette for SVG(SVG用カラーパレット)
- Color Palettes(カラーパレット)
- Compatible name Table(Mac互換nameテーブル)
- compatibleFullName(Mac互換フルネーム)
- copyrights(著作権)
- cvt Table(cvtテーブル)
- Decompose Brace Layers(Decompose Brace Layers)
- Decompose Components(コンポーネントを分解)
- Decompose Components in Variable Font(バリアブルフォントでコンポーネントを分解)
- Decompose Glyphs(グリフを分解)
- Default Layer Width(レイヤー幅初期値)
- descender(ディセンダー)
- descriptions(書体ファミリーの説明)
- Design Grid(デザイングリッド線数)
- designers(デザイナー名)
- designerURL(デザイナーURL)
- Disable autohinting for glyphs(オートヒンティングを適用しないグリフ)
- Disable Masters(マスター無効化)
- Disable Subroutines(サブルーチンをスキップ)
- DisableAllAutomaticBehaviour(すべての自動処理を無効化)
- Don’t use Production Names(製品用グリフ名を使わない)
- EditView Line Height(編集ビューの行の高さ)
- Elidable STAT Axis Value Name(無視可能なSTAT補間スタイル名)
- Enforce Compatibility Check(互換性チェックを強制)
- Export AAT(AATを出力)
- Export COLR Table(COLRテーブルを出力)
- Export DSIG Table
- Export Folder(出力フォルダ)
- Export Glyphs(強制出力グリフ)
- Export kern Table(kernテーブルを出力)
- Export Mac Name Table Entries(Mac用nameテーブルを出力)
- Export morx Table(morxテーブルを出力)
- Export OpenType(OpenTypeテーブルを出力)
- Export PostScript Hints(Export PostScript Hints)
- Export sbix Table(sbixテーブルを出力)
- Export STAT Table(STATテーブルを出力)
- Export SVG Table(SVGテーブルを出力)
- Export TrueType Hints(Export TrueType Hints)
- Export vmtx Table(Export vmtx Table)
- Family Alignment Zones(ファミリーアラインメントゾーン)
- familyNames(翻訳ファミリー名)
- Feature for Feature Variations(バリアブルフォント字形置き換え用OpenTypeフィーチャー)
- fileName(ファイル名)
- Filter(フィルタ)
- Fit Curve Panel Settings(Fit Curve Panel Settings)
- fpgm Table Assembly(fpgmテーブルのアセンブリコード)
- fsType(fsType)
- gasp Table(gaspテーブル)
- Get Hints From Master(ヒンティング情報を他のマスターから取得)
- glyphOrder(グリフ順)
- Grid Spacing(グリッドのユニット間隔)
- Hangul Composition Groups(ハングル合成グループ)
- Has WWS Names(WWS命名規則に準拠)
- hheaAscender(hheaアセンダー)
- hheaDescender(hheaディセンダー)
- hheaLineGap(hhea行間アキ)
- Ignore custom GlyphData file(Ignore custom GlyphData file)
- Ignore out of bounds instances(デザインスペース外のインスタンスを無視)
- Ignore Vertical Hints(縦方向ヒントを無視)
- Import Font(外部フォントファイルを参照)
- Import Master(外部フォントマスターを参照)
- Instance Preview(インスタンスプレビュー)
- InterpolationWeightY(ウエイト軸のY座標を独立補間)
- isFixedPitch(等幅)
- Italic Style Linking(Italic Style Linking)
- italicAngle(イタリック角度)
- Keep GlyphOrder
- Keep Glyphs(出力グリフ)
- Keep Kerning in one Lookup(Keep Kerning in one Lookup)
- Keep Overlapping Components(重なったコンポーネントを保持)
- Keep Transformed Components(変形したコンポーネントを保持)
- Keep UI-Font Bounding Box(KeepUI-FontBoundingBox)
- licenses(ライセンス)
- licenseURL(ライセンスURL)
- Link Metrics With First Master(メトリクスを最初のマスターとリンク)
- Link Metrics With Master(メトリクスをマスターとリンク)
- Local Interpolation(局地的補間)
- MakeOTF Compatibility Mode(MakeOTF互換モード)
- manufacturers(製造者)
- manufacturerURL(製造者URL)
- Master Background Color(マスター背景色)
- Master Background Color Dark(ダークモードのマスター背景色)
- Master Color(マスター描画色)
- Master Color Dark(ダークモードのマスター描画色)
- Master Icon Glyph Name(マスターアイコンのグリフ名)
- Master Stroke Color(マスター線色)
- Master Stroke Color Dark(ダークモードのマスター線色)
- meta Table(metaテーブル)
- Name Table Entry(nameテーブルカスタムコード)
- note(メモ)
- Optical Size(オプティカルサイズ)
- Optimize Variable Deltas(バリアブルデルタを有効化)
- panose(panose)
- Point To Unit Ratio(ポイント:ユニット比)
- Post Table Type(postテーブル形式)
- postscriptFontName(PostScriptフォント名)
- postscriptFullNames(PostScriptフルネーム)
- preferredFamilyNames(タイプグラフィック ファミリー名)
- preferredSubfamilyNames(タイポグラフィック サブファミリー名)
- PreFilter(事前フィルタ)
- prep Table Assembly(prepテーブルのアセンブリコード)
- Prevent Name ID(Prevent Name ID)
- Preview Ascender(プレビュー用アセンダーハイト)
- Preview Descender(プレビュー用ディセンダーハイト)
- Propagate Anchors(アンカーを自動複製)
- Reencode Glyphs(グリフを再エンコード)
- Remove Classes(クラスを除去)
- Remove Features(フィーチャーを除去)
- Remove Glyphs(グリフを除去)
- Remove post names for webfonts(ウェブフォント向けにpost名を除去)
- Remove Prefixes(プレフィックスを除去)
- Rename Glyphs(グリフ名を変更)
- Replace Class(クラスを置き換え)
- Replace Feature(フィーチャーを置き換え)
- Replace Prefix(プレフィックスを置き換え)
- ROS(ROS)
- sampleTexts(サンプルテキスト)
- Save as TrueType(TrueTypeとして保存)
- SBIX to SVG(SBIXをSVGへ)
- Scale to UPM(UPM変更(デザイン拡大縮小))
- shoulderHeight(ショルダーハイト)
- smallCapHeight(スモールキャップハイト)
- strikeoutPosition(打ち消し線の高さ)
- strikeoutSize(打ち消し線の太さ)
- Style Name as STAT entry(STATテーブル用スタイル名)
- styleMapFamilyNames(スタイルマップのファミリー名)
- styleMapStyleNames(スタイルマップのスタイル名)
- styleNames(翻訳スタイル名)
- subscriptXOffset(下付き文字の横方向オフセット)
- subscriptXSize(下付き文字の横方向拡大率)
- subscriptYOffset(下付き文字の縦方向オフセット)
- subscriptYSize(下付き文字の縦方向拡大率)
- superscriptXOffset(上付き文字の横方向オフセット)
- superscriptXSize(上付き文字の横方向拡大率)
- superscriptYOffset(上付き文字の縦方向オフセット)
- superscriptYSize(上付き文字の縦方向拡大率)
- trademarks(商標)
- TrueType Curve Error(TrueTypeカーブエラー)
- TrueType Keep GlyphOrder(TrueTypeグリフ順を維持)
- TTFAutohint binary path(TrueTypeバイナリーパス)
- TTFAutohint control instructions(TrueType制御コード)
- TTFAutohint options(TTFAutohintオプション)
- TTFBlueFuzz(TTFBlueFuzz)
- TTFDontPreserveDiagonals(TTF斜めステムを維持しない)
- TTFFamilyZonesThreshold(TTFFamilyZonesThreshold)
- TTFMinimumDistance(TTF最小距離)
- TTFOvershootSuppressionBelowPPM(TTFオーバーシュート押し込み上限PPM)
- TTFStems(TTFステム)
- TTFZoneRoundingThreshold(TTFゾーンの四捨五入しきい値)
- TTFZones(TTFゾーン)
- typoAscender(typoアセンダー)
- typoDescender(typoディセンダー)
- typoLineGap(typo行間アキ)
- underlinePosition(アンダーラインの高さ)
- underlineThickness(アンダーラインの太さ)
- unicodeRanges(Unicode範囲)
- uniqueID(ユニークID)
- unitsPerEm(UPM変更(拡大縮小なし))
- Update Features(フィーチャーを更新)
- Use Arabic Presentation Form Unicodes(Use Arabic Presentation Form Unicodes)
- Use Extension Kerning(カーニング容量拡張)
- Use Line Breaks(改行を使用)
- Use Typo Metrics(typo系メトリクスを使用)
- Variable Font Family Name(バリアブルフォントのファミリー名)
- Variable Font File Name(バリアブルフォントのファイル名)
- Variable Font Optimize Deltas(Variable Font Optimize Deltas)
- Variable Font Origin(バリアブルフォントの基準マスター)
- Variable Font Style Name(バリアブルフォントのスタイル名)
- Variable SubfamilyName(バリアブルフォントのサブファミリー名)
- variablePostscriptFontName(variablePostscriptFontName)
- variableStyleName
- variableStyleNames(バリアブルスタイル名)
- Variation Font Origin(バリアブルフォントの基準マスター)
- variationsPostScriptNamePrefix(バリアブル用PostScript名プレフィックス)
- vendorID(ベンダーID)
- versionMajor(versionMajor)
- versionMinor(versionMinor)
- versionString(バージョン)
- vheaVertAscender(vhea縦アセンダー)
- vheaVertDescender(vhea縦ディセンダー)
- vheaVertLineGap(vhea縦行間アキ)
- Virtual Master(仮想マスター)
- Webfont Formats(強制ウェブフォント形式)
- Webfont Only(ウェブフォントのみ)
- winAscent(winアセント)
- winDescent(winディセント)
- Write DisplayStrings(タブの内容を保存)
- Write lastChange(グリフ最終更新日を保存)
- WWSFamilyName(WWSファミリー名)
- WWSSubfamilyName(WWSサブファミリー名)
17.4 カスタムパラメータ
カスタムパラメータは、フォントに対して標準設定以外のより高度な設定を追加するための機能です。各パラメータは「プロパティ(設定項目名)」とそれに対応する「値」のペアで構成されます。
この項では、プロパティ名を見出しで示し、続いて引用形式でアプリケーション内での説明文と、値のタイプや機能等について解説します。
【設定場所と操作方法】
カスタムパラメータは、「ファイル」メニュー →「フォント情報」(Cmd–I)を開き、「フォント」「マスター」「インスタンス(書き出し設定)」の各タブにある「カスタムパラメータ」または「一般」欄で追加・編集を行います。
- 有効なパラメータはプロパティ名が黒色で表示されます。
- 無効なパラメータはプロパティ名がグレーで表示されます。
- パラメータを一時的に無効にするには、プロパティ名の左にあるチェックボックスのチェックを外すだけで簡単に行えます。
【パラメータ名称の命名規則】
カスタムパラメータは、その由来と機能によって命名規則が異なります。
- キャメルケースのパラメータ (例: exampleName)
- openTypeNameDescription のように、複数の単語をスペースなしで連結し、2つ目以降の単語の先頭を大文字で表記します。
- これらはUFO (Unified Font Object) 仕様で定義されており、主にフォントのバージョンやデザイナー名といったフォント情報(メタデータ)そのものを変更します。
- UFO仕様に基づくパラメータはUFO3仕様(2012年3月発行)の命名規則に基づいていますが、Glyphsでは、openTypeNameDescriptionをdescriptionのように、接頭辞を省略した短い名前で記述することも可能です。省略形と完全な名前のどちらも使用できます。
- 先頭が大文字のパラメータ (例: Example Name)
- Remove Overlap のように、単語をスペースで区切り、各単語の先頭を大文字で表記します。
- これらは Glyphs固有のパラメータです。主に書き出し時にアウトラインにフィルターを適用するなど、フォントデータの見た目や構造自体に直接的な処理を行います。
【値のタイプ】
プロパティに対して設定する「値」には、以下のようなデータタイプがあります。
- ブーリアン: チェックボックスのオン/オフで設定します。(True (真) / False (偽))
- 整数: 10 や -50 などの整数値。
- 小数: 2.5 や 0.1 などの小数点を含む数値。
- 文字列: Regular や Copyright 2025 といったテキストです。
- リスト: 複数の項目を1行に1つずつ記述します。
【参考情報】
- この項で引用されている内容は、特に明記されていない限りはすべてMicrosoft OpenType仕様書からの引用です。
- UFO3フォント情報のプロパティは、以下のページに詳細が記載されています。
Add Class(クラスを追加)
値の型: 文字列
機能:
フォントを書き出す際に、新しいOpenTypeクラスを動的に追加します。このパラメータは、主に特定の書き出し設定(インスタンス)に対して一時的にOpenTypeクラスを使用したい場合に便利です。
例えば「特定のウェイト(太さ)のインスタンスでのみ有効にしたいOpenTypeフィーチャーがあり、そのフィーチャー内だけで使われるクラスを定義する」といった場面で役立ちます。フォント全体で恒久的に使用するクラスは、「ファイル」→「フォント情報」→「フィーチャー」タブのクラス定義欄で直接管理する方法が一般的です。このパラメータは、あくまでインスタンスごとの特別な設定と位置づけられます。
Add Class パラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開き、より直感的に設定できます。
- クラス名の設定:
ダイアログの上段の入力欄に、新しいクラス名をリストから選択するか、手動で入力します。クラス名の前に@記号は不要です。 - グリフの登録:
ダイアログの下段の入力欄に、クラスに含めたいグリフ名をスペースで区切って入力します。 - OKをクリックしてダイアログを閉じると、設定内容が クラス名; グリフ名 … というテキスト形式で自動的に入力されます。
使用例:
vowels; a e i o u
上記のように設定すると、書き出し時に@vowelsというクラスが作成され、その中にはa, e, i, o, uのグリフが登録されます。
Add Feature(フィーチャーを追加)
値の型: 文字列
機能:
フォントに新しいOpenTypeフィーチャーを動的に追加します。
このパラメータで追加されたフィーチャーは、既存のフィーチャーリストの末尾に追加されます。そのため、フィーチャーの処理順序が重要となる場合には意図した通りに機能しない可能性があります。特定のインスタンスでのみフィーチャーを追加したい場合や、簡単なテスト目的で使用するのが主な用途です。フィーチャーの順序を厳密に制御する必要がある場合は、「フォント情報」→「フィーチャー」タブで直接管理するか、他のパラメータ(Replace Featureなど)の使用を検討してください。
Add Feature パラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開き、より直感的に設定できます。
- フィーチャータグの設定:
ダイアログの上段の入力欄で、追加したいフィーチャーの4文字のタグ(例: calt, liga, smcp)をリストから選択するか、手動で入力します。 - フィーチャーコードの記述
ダイアログの下段の入力欄に、フィーチャーの内容となるコード(AFDKO構文)を記述します。 - OKをクリックしてダイアログを閉じると、設定内容が フィーチャータグ; フィーチャーコード というテキスト形式で自動的に入力されます。
設定例:
calt; sub @AllLetters by @AlternateLetters;
上記のように設定すると、calt(文脈依存の代替字形)フィーチャーが書き出し時に追加され、「@AllLettersクラスに含まれるグリフを、@AlternateLettersクラスの対応するグリフに置換する」というルールが定義されます。
Add Prefix(プレフィックスを追加)
値の型: 文字列
機能:
フォントに新しいOpenTypeプレフィックス(Prefix)を動的に追加します。
プレフィックスは、複数のフィーチャーで共有されるルックアップ(Lookup)定義などをまとめて記述するためのセクションです。このパラメータは、主に書き出し設定(インスタンス)ごとに、一時的にプレフィックスを追加したい場合に使用します。例えば、特定のインスタンスでのみ使用する複雑なルックアップを定義したいが、フォント全体のプレフィックスセクションを汚したくない、といった場合に便利です。恒久的に使用するプレフィックスは、「フォント情報」→「フィーチャー」タブのプレフィックスセクションで直接管理するのが一般的です。
Add Prefix パラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開き、設定を簡単に行えます。
- プレフィックス名の設定:
ダイアログの上段の入力欄に、追加したいプレフィックスの名前(例: MyLookups)を手動で入力します。 - プレフィックスコードの記述:
ダイアログの下段の入力欄に、プレフィックスの内容となるコード(ルックアップ定義など)を記述します。 - 完了:
OKをクリックしてダイアログを閉じると、設定内容が プレフィックス名; コード というテキスト形式で自動的に入力されます。
使用例:
MyLookups; lookup MySingleSub { sub a by a.alt; } lookup MyLigaSub { sub f f i by f_f_i; };
上記のように設定すると、MyLookupsという名前のプレフィックスセクションが書き出し時に追加されます。このセクション内には、単一置換(MySingleSub)と合字置換(MyLigaSub)の2つのルックアップが定義されます。これらのルックアップは、後からAdd Featureパラメータなどで参照できます。
ascender(アセンダー)
値の型: 文字列
機能:
特定のスクリプト(文字体系)に属するグリフに対して、マスターで設定された標準のアセンダーラインとは異なるアセンダーラインを適用します。
例えば、ラテン文字とキリル文字が混在するフォントで、キリル文字の大文字がラテン文字のアセンダーよりわずかに高い場合、キリル文字にだけ適切な高さのアセンダーを適用したい、といった状況で便利です。複数のスクリプトに異なるアセンダーを設定したい場合は、このパラメータを複数追加してください。
使用例
cyrillic: 720
スクリプト名の小文字、コロン(:)、数値 の順で入力します。
Autohint(オートヒント)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
フォント書き出しダイアログでの設定に関わらず、このパラメータが設定されたインスタンスに対して強制的に自動ヒンティングを適用(または無視)します。
このパラメータは、特定のインスタンスに対するヒンティングの挙動を固定化したい場合に便利です。書き出しダイアログでオートヒント設定を変更する手間を省きたい場合や、バッチ処理や自動化されたワークフローで特に役立ちます。
使用例:
通常は手動ヒンティングを施したフォントを書き出しているが、特定のインスタンス(例えばWebフォント用など)だけは、常に自動ヒンティングを適用して書き出したい、という場合に使用します。
- チェックボックスをオンにする: 自動ヒンティングが強制的に有効になります。
- チェックボックスをオフにする: 自動ヒンティングが強制的に無効になります。
Axis Location(軸の位置)
値の型: リスト
機能:
バリアブルフォントにおいて、マスターやインスタンスが持つ内部的なデザインスペース座標を、ユーザーがUIで目にする外部座標に再マッピング(変換)します。
このパラメータは、フォントのデザインスペースがOpenType仕様で推奨されている標準的な数値範囲(例: Weight軸なら1〜1000)に準拠していない場合に役立ちます。例えば、デザイナーが制作しやすいようにWeight軸を「10 (最も細い) 〜 90 (最も太い)」といった独自の数値で設計していても、このパラメータを使えば、最終的に書き出すバリアブルフォントでは「100〜900」といったOpenType仕様に準拠した標準規格の値に変換できます。これにより、設計の自由度を保ちながら、各種アプリケーションで正しく認識・表示される標準化されたフォントを提供することが可能になります。
Axis Location パラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開き、設定を簡単に行えます。
- 修正後の値の設定:
修正したい軸名の右にある入力欄に、マッピングしたい外部座標の値を入力します。 - 完了:
OKをクリックしてダイアログを閉じると、設定内容が 軸名=数値, 軸名=数値 … というリスト形式で自動的に入力されます。
使用例:
- 内部座標(内部的なデザインスペース座標):
- マスター名: Light
- ウェイト軸の位置: 45
- 外部座標(ユーザーに見せる値):
- UIでの表示名: Light
- UIでのウェイト値: 300
上記の変換を行いたい場合は、「Light」マスターのカスタムパラメータに Axis Location を追加し、Weight軸の値を300に設定します。
Axis Mappings(軸のマッピング)
値の型: (ダイアログ形式)
機能:
バリアブルフォントの補間(ウェイトや字幅の変化)がリニア(直線的)でなく、特定の箇所で急に太くなったり細くなったりするのを補正し、デザインの変化をより滑らかにするためのパラメータです。
技術的には、フォント内部のデザイン座標(内部座標)と、ユーザーに表示される外部座標との対応関係を調整することで、OpenTypeの avar (Axis Variations) テーブルを生成します。Axis Mappings は、軸単位でしか機能しません。例えば、「ウェイト軸の変化量を、字幅軸が細い時と太い時で変える」といった、他の軸の位置に応じた複雑な調整はできません。これはavarテーブル自体の仕様上の制約です。そのため、複数の軸を持つフォントでは、どこかの軸のマッピングで妥協するか、平均的な値を目標として設定する必要が出てくる場合があるかもしれません。
Axis Mappings パラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開きます。
- 軸名を選択:
左側のカラムで軸名を選択します。 - チャートまたは数値で調整:
右側のカラムのチャート内の線上でクリック&ドラッグして、補間のグラフを直感的に調整します。また、中央のカラムの左の列に「内部座標」、右の列に「外部座標」を入力し、値を追加したり編集することができます。
- 内部座標の範囲: 「フォント情報」→「マスター」で設定された、実際のマスターの座標値によって決まります。
- 外部座標の範囲: 各マスターに設定された Axis Location パラメータの値によって決まります。
blueFuzz(blueFuzz)
値の型: 整数
機能:
PostScriptヒンティングにおけるアライメントゾーン(文字の上下の揃え位置を定義する領域)の効力を、上下方向にわずかに拡張するための値です。Type 1/CFFフォントのBlueFuzzフィールドに対応します。デフォルト値は1です。
Type 1仕様書によると、BlueFuzzは「水平ステムに対するアライメントゾーンの効果を、指定したユニット数だけ両方向に拡張する」と定義されています。例えば、ある水平ステム(横棒)の上辺が、トップゾーン(例: エックスハイト)の境界からBlueFuzzで指定したユニット数だけ外側にはみ出ていたとしても、フォントのレンダラー(表示エンジン)は、そのステムがゾーン内にきれいに収まっているかのように扱います。ボトムゾーン(例: ベースライン)についても同様です。
Adobeは、BlueFuzzが元々「わずかに不正確な座標データを補正するため」に意図された機能であったと述べています。そのため、現在ではBlueFuzzをゼロに設定し、代わりにアライメントゾーン自体の範囲を精密に調整することを推奨しています。BlueFuzzにゼロ以外の値を設定するとアライメントゾーンの実質的な範囲が広がるため、デフォルト値の1を使用する場合、隣り合うゾーン同士は最低でも3ユニット(=2×BlueFuzz+1)離れていなければなりません。
blueScale(blueScale)
値の型: 浮動小数点数
機能:
PostScriptヒンティングにおいて、オーバーシュート(丸や三角の頂点がベースラインから少し突き出る部分)の表示が抑制されるフォントサイズの上限をコントロールします。Type 1/CFFフォントのBlueScaleフィールドに対応します。
blueScaleの値は、(300dpiでのポイント数 – 0.49) ÷ 240 という式で計算します。
(例: 300dpiで10ポイント以降のオーバーシュートを可視化させたい場合のblueScaleの値は 0.039625)
blueScaleの値を手動で設定しない場合は、デフォルトで0.037という値が適用されます。これは約 39 PPM(pixels per em)に相当し、1emあたり39ピクセル以下のサイズではオーバーシュートが抑制(フラット化)され、40ピクセル以上のサイズで初めて表示されることを意味します。
blueScaleに設定できる最大値は、フォントのアライメントゾーンのサイズに依存します。blueScaleが大きすぎると正しく機能しません。
- 抑制できる最大表示サイズ(PPM)の計算式:
2.04 + 1000 ÷ (フォント内の最大のアラインメントゾーンのサイズ) - 計算例:
フォントで定義した最も大きいアライメントゾーンが21ユニットの深さを持つとします。- 抑制できる最大PPMは 2.04 + 1000 ÷ 21 = 49.659 となり、49 PPMが上限です。
- これをポイント数に換算すると 0.49 + 240 ÷ 21 = 11.919 ポイントとなります。
- したがって、この場合のblueScaleの最大値は (11.919 – 0.49) ÷ 240 = 0.04762 となります。これを超える値は設定できません。
blueShift(blueShift)
値の型: 整数または小数
機能:
PostScript (Type 1/CFF) フォントのヒンティングにおいて、blueScaleでオーバーシュートの抑制がオフになった後、非常に小さな部分の表示をどう扱うかを決めるための、もう一つの閾値です。blueScaleが大きなフォントサイズで機能しなくなった後、このblueShiftが追加のフィルターとして働き、微細な部分が意図せずギザギザに表示されるのを防ぎます。デフォルト値は7です。
blueScaleで指定したフォントサイズ(PPM)を超えた領域では、アライメントゾーン内のオーバーシュートは、以下のいずれかの条件を満たした場合にのみ表示されるようになります。条件をどちらも満たさない微細なオーバーシュートは、引き続き抑制され、平坦に描画されます。
- オーバーシュートの量が、blueShiftで設定した値以上である。
- オーバーシュートの量が、blueShiftの値未満だが、その量が実際の表示サイズで半ピクセルより大きい。
使用例:
【前提】
- blueScaleで 32 PPM までオーバーシュートを抑制する設定。
- blueShift の値を 6 に設定。
- グリフの形状:
- 通常のカーブによる大きなオーバーシュート: 12ユニット
- わずかに傾いたストロークの端など、微細なオーバーシュート: 5ユニット
【表示結果】
- 0〜32 PPMのサイズ:
blueScaleが有効なため、12ユニットも5ユニットも両方とも抑制され、ベースラインなどは完全に平らに描画されます。 - 33 PPM以降のサイズ:
blueScaleが無効になり、blueShiftのルールが適用されます。- 12ユニットのオーバーシュートは、blueShiftの値(6)より大きいため、すぐに表示されます。
- 5ユニットの線の端は、blueShiftの値(6)より小さいため、ルール2が適用されます。この5ユニットという量が半ピクセル以上の大きさになる特定のフォントサイズ(この例では100 PPM)に達して初めて、表示されるようになります(ルール2に該当)。それ以下のサイズでは平坦なままです。
capHeight(キャップハイト)
値の型: 文字列
機能:
特定のスクリプト(文字体系)に属するグリフに対して、マスターで設定された標準のキャップハイトラインとは異なるキャップハイトの値を上書きします。指定した値は、編集ビューでその文字体系に関連づけられたグリフに適用されます。複数の文字体系に設定する場合は、各文字体系ごとに別々のパラメータを使用してください。
使用例:
adlam: 680
スクリプト名の小文字、コロン(:)、数値の順で入力します。
CJK Grid(漢字圏グリッド線数)
値の型: 整数
機能:
CJKグリフ(漢字圏グリフ)編集時に表示される点線のグリッドの分割数です。水平方向と垂直方向で分割数を変えたい場合は、「CJK Grid Vertical(漢字圏グリッド垂直線数)」「CJK Grid Horizontal(漢字圏グリッド水平線数)」パラメータを使って個別に設定します。また「CJK Guide(漢字圏ガイド)」パラメータとと同様に、特定の文字体系ごとにグリッドの設定を切り替えることができます。
これらのグリッド関連パラメータがいずれも設定されていない場合、グリッドは表示されません。
使用例:
単一の整数を入力します。例えば 16 と入力すると、16行×16列のグリッドが表示されます。
CJK Grid Horizontal(漢字圏グリッド水平線数)
値の型: 整数
機能:
CJKグリフの編集時に仮想ボディ内に表示される、点線グリッドの垂直線の数(水平方向の分割回数)を設定します。「CJK Guide(漢字圏ガイド)」パラメータと同様に、特定の文字体系ごとにグリッドを設定できます。
CJK Grid Vertical(漢字圏グリッド垂直線数)
値の型: 整数
機能:
CJKグリフの編集時に仮想ボディ内に表示される、点線グリッドの水平線の数(垂直方向の分割回数)を設定します。「CJK Guide(漢字圏ガイド)」パラメータと同様に、特定の文字体系ごとにグリッドを設定できます。
CJK Guide(漢字圏ガイド)
値の型: 文字列
機能:
CJKグリフの編集時に仮想ボディ(字面)の内側に二重のガイドとなる四角形を表示します。この内側のガイドは、字面の中心からの縮小率(パーセンテージ)で指定します。このガイドは、スクリプト(文字体系)ごとに異なる値を設定できます。複数のスクリプトに異なるガイドを設定したい場合は、このCJK Guideパラメータを複数追加します。
使用例:
90
縮小率をパーセントで入力します。例えば、90と入力すると90パーセントの大きさのガイドが表示されます。
hira:85
値の前にスクリプト名の小文字とコロン(:)を追加すると、特定のスクリプトのみガイドが表示されます。
codePageRanges(コードページ範囲)
値の型: リスト
機能:
OS/2テーブル内の ulCodePageRange1 および ulCodePageRange2 エントリのビットを設定します。これにより、フォントがどのコードページに対応しているかを、特にMicrosoftプラットフォーム(cmapサブテーブルのplatform 3, encoding ID 1)に対して明示します。各コードページは独立したフラグとして扱われ、任意に組み合わせて設定できます。どの範囲までを「対応している」と見なすかの判断はフォントデザイナーに委ねられていますが、可能であれば、コードページ内の文字は確実に表示されるよう設計することが推奨されます。
codePageRanges パラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると対応させたいコードページを選択するダイアログが表示されます。
- コードページの選択:
選択したいコードページにチェックを入れます。 - 完了:
OKをクリックしてダイアログを閉じると、設定内容が反映されます。
Color Layers to COLR(Color Layers to COLR)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータをオンにすると、フォント書き出し時にCOLRテーブルとCPALテーブルが生成されます。これにより、COLR/CPAL形式のカラーグリフを持つフォントを作成できます。
カラー情報は、「Master Color(マスター描画色)」パラメータが設定されたマスターから取得されます。これは、複数のマスターをカラーレイヤーとして使用する、いわゆる「レイヤーフォント」方式のカラーフォント設定で利用されます。
Color Layers to SVG(カラーレイヤーをSVGとして出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータをオンにすると、フォント書き出し時にSVGテーブルが生成されます。これにより、ベクター形式のカラーグリフを持つフォントを作成できます。
SVGテーブルに格納されるカラー情報は、以下のいずれかの方法で設定されたものから取得されます。
- CPALカラーレイヤー:
グリフ内に Color 0, Color 1 … といった名前でレイヤーを作成し、CPALパレットのインデックスに対応させる方法。 - レイヤーフォント設定:
「Master Color(マスター描画色)」パラメータが設定された複数のマスターを、カラーレイヤーとして扱う方法。
Color Palette for CPAL(CPAL用カラーパレット)
値の型: 整数
機能:
「Color Palettes(カラーパレット)」パラメータで定義した複数のカラーパレットの中から、CPALテーブルとして書き出す際に使用するパレットをインデックス番号で指定します。
例えば、Color Palettesに「デフォルト」「ダークモード用」「ハイコントラスト用」と3つのパレットを定義した場合、このパラメータに 0 を指定すれば「デフォルト」パレットが、1 を指定すれば「ダークモード用」パレットがCPALテーブルに格納されます。これにより、書き出すインスタンスごとに異なるカラーパレットを適用できます。
Color Palette for SVG(SVG用カラーパレット)
値の型: 整数
機能:
「Color Palettes(カラーパレット)」パラメータで定義した複数のカラーパレットの中から、SVGテーブルとして書き出す際に使用するパレットをインデックス番号で指定します。
【注意】
このパラメータは、「Color Layers to SVG(カラーレイヤーをSVGとして出力)」パラメータと組み合わせて使用する場合にのみ意味を持ちます。SVGテーブル方式のカラーフォントで、インスタンスごとに異なるカラーパレットを適用したい時に利用します。
Color Palettes(カラーパレット)
値の型: リスト
機能:
カラーフォントで使用するカラーパレットを定義します。ここで定義したパレットは、Microsoft形式のカラーフォント(COLR/CPAL)として書き出される際にCPALテーブルに格納されます。
このパラメータでカラーパレットを設定すると、Glyphsのフォントビューや編集ビューでカラー付きのプレビューが表示されるようになります。
パラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックするとパレット編集用のダイアログが表示されます。複数のパレットを定義したり、各パレット内の色(名前、カラーコード)を管理することができます。最後にOKをクリックしてダイアログを閉じると、設定内容が反映されます。
Compatible name Table(Mac互換nameテーブル)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
一部の古いMacアプリケーション(特にQuarkXPressやFontExplorerなど)が期待する、互換性(レガシー)重視の古い形式のnameテーブルを書き出します。
このパラメータを有効にすると、これらのアプリケーションのフォントメニューで、ファミリー内のスタイル(Bold, Italicなど)が正しくグループ化されるようになります。ただしこの互換性のためのnameテーブルは、他のモダンなアプリケーション、特にMicrosoft Officeとの間で問題を引き起こす可能性があります。そのため、このパラメータの使用には注意が必要であり、特定の古いアプリケーションでの不具合を解決する目的でのみ使用することが推奨されます。
compatibleFullName(Mac互換フルネーム)
機能:
OpenTypeのnameテーブルにおけるID 18 (Compatible Full Name) の値を設定します。これはMac専用(旧MacOS専用、OS Xおよび他のOSでは使われません)の名前であり、対応するアプリケーションではID 4 (Full Name) よりも優先して表示されます。
このパラメータが設定されていない場合、ID 18の値はそれぞれのインスタンスの「ファミリー名」 + 「 」(スペース) + 「スタイル名」を組み合わせて自動設定されます。
Macintoshでは、フォントメニューに表示される名前は通常、FONDリソースから構築され、これはフルネーム(Full Name)と一致します。もし、フォントメニューでフルネームとは異なる名前を表示させたい場合は、このパラメータを使ってID 18に独自の名前を挿入します。
このパラメータを使用すると、同じフォントに対してMacとWindowsで異なるフルネームが使われる状況が生まれる可能性があります。これは、クロスプラットフォームでの互換性を損なう恐れがあるため、使用には注意が必要です。
copyrights(著作権)
値の型: 文字列
機能:
フォントの著作権表示を設定します。
このパラメータは、「フォント情報」の「フォント」タブにある「Copyright」フィールドの記述を上書きします。OpenTypeのnameテーブルにおけるID 0 (Copyright notice) に対応します。インスタンスごとに異なる著作権情報を埋め込みたい場合などに使用します。
cvt Table(cvtテーブル)
値の型: 文字列
機能:
TrueTypeフォントのcvt (Control Value Table) テーブルの値を保持します。
既存のTTFファイルをGlyphsで開くと、そのフォントが持っていたcvtテーブルの値が、このカスタムパラメータに自動的に保存されます。これは、元のフォントが持っていた手動のTrueTypeヒンティング情報を、再び書き出す際にそのまま維持することを目的としています。そのため、このパラメータの値は手動で編集するためのものではなく、変更は非推奨です。
もし独自のTrueTypeインストラクション(ヒンティング)をGlyphs内で行いたいのであれば、このパラメータは削除してください。 これを削除しないと、古いヒンティング情報が残ってしまい、意図した通りに機能しません。
Decompose Brace Layers(Decompose Brace Layers)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
バリアブルフォントの書き出し時に、ブレースレイヤー(brace layers)、別名「中間レイヤー」を持つグリフを参照しているコンポーネントを分解するかどうかを制御します。デフォルト値はオンです。
ブレースレイヤーは、デザインスペースの特定の位置でだけ字形を変化させるための特殊なレイヤーです。例えば、「A」のクロスバーの高さだけを動かす軸を作った場合、その変化はブレースレイヤーとして「A」のグリフにのみ追加されます。このパラメータがオンの場合、その「A」をコンポーネントとして使用している「Á (Aacute)」などの複合グリフは、書き出し時にコンポーネントが分解され、単一のアウトラインに変換されます。これにより、バリアブルフォントとしての互換性や安定性が確保されます。特別な理由がない限り、デフォルトのオンのままにしておくことが推奨されます。
Decompose Components(コンポーネントを分解)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
TrueTypeフォントの書き出し時に、すべてのコンポーネントを分解し、アウトラインに変換します。
この機能は、古いmacOSのバリアブルフォント実装など、コンポーネントを正しく処理できない環境との互換性を確保する必要がある場合に役立ちます。コンポーネントを分解すると、フォントのファイルサイズは増加します。
このパラメータが意味を持つのは、TrueType形式のフォント(.ttfなど)です。CFF形式のフォント(.otfなど)では、仕様上コンポーネントは常に分解されるため、効果がありません。
Decompose Components in Variable Font(バリアブルフォントでコンポーネントを分解)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
TrueType形式のバリアブルフォントを書き出す際に、すべてのコンポーネントを分解してアウトラインに変換します。
このオプションは、macOS Mojave 10.14.5より前のバージョンに存在したCoreTextのレンダリングバグを回避するために用意されています。このバグは、特定の状況下で、LSB(左サイドベアリング)が変化する複合グリフ(コンポーネントで構成されたグリフ)のスペーシングに影響を与える問題でした。このオプションを有効にすると、結果として得られるバリアブルフォントにはコンポーネントが含まれなくなるため、ファイルサイズが劇的に増加することが予想されます。
特定の古いmacOSバージョンとの互換性が不要であれば、このオプションを有効にする必要はありません。
Decompose Glyphs(グリフを分解)
(※Glyphsアプリケーション上ではv3.4 (3414)時点で日本語訳が「コンポーネントを分解」になっていますが、正確には「グリフを分解」が正しいかと思われます。)
値の型: リスト
機能:
フォントの書き出し時に、このパラメータ内のリストに指定された複合グリフ(コンポーネントで構成されたグリフ)を分解します。
「Rename Glyphs(グリフ名を変更)」パラメータを使ってコンポーネントの元となるグリフを入れ替える際、意図せず他の複合グリフの形が変わってしまうのを防ぎたい場合などに便利です。
使用例:
aとa.altという2つのグリフがあるとします。書き出し時に「Rename Glyphs(グリフ名を変更)」パラメータでa.alt=aと指定して、a.altをデフォルトのaとして使いたいとします。しかし、フォント内にはaをコンポーネントとして使っているaacuteが存在します。このまま書き出すと、aacuteのベースもa.altのデザインに変わってしまいます。もし、aacuteのデザインは元のまま維持したいのであれば、このDecompose Glyphsパラメータにaacuteを指定します。そうすると、aacuteは書き出し時に分解され、Rename Glyphsの影響を受けなくなります。
Default Layer Width(レイヤー幅初期値)
値の型: 整数
機能:
新しく作成されるグリフやレイヤーのデフォルトのグリフ幅を設定します。
このパラメータを設定しない場合、新規グリフの幅は以下のようになります。
- 通常グリフ: 600 ユニット
- CJKグリフ: 1000 ユニット
- コーナーコンポーネント: 200 ユニット
使用例:
例えば、主に400ユニット幅のグリフをデザインしている場合、このパラメータに 400 と設定しておけば、新しいグリフを作成するたびに幅を調整する手間が省けます。
値の前にスクリプト名の小文字とコロン(:)を追加することで、特定のスクリプトにのみデフォルト幅を適用できます。
cyrillic:400
(キリル文字の新規グリフ幅を400に設定)
adlam:450
(アドラム文字の新規グリフ幅を450に設定)
複数のスクリプトに異なるデフォルト幅を設定したい場合は、このパラメータを複数追加してください。
descender(ディセンダー)
値の型: 文字列
機能:
特定のスクリプトに属するグリフに対して、マスターで設定された標準のディセンダーとは異なるディセンダーを設定します。
例えば、ラテン文字とアラビア文字が混在するフォントで、両者のディセンダーの深さが異なる場合に、アラビア文字だけに異なるディセンダーを設定したい、といった状況で便利です。
使用例:
スクリプト名の小文字、コロン(:)、数値の順で入力します。
arabic:-300
複数のスクリプトに異なるディセンダーラインを設定したい場合は、このパラメータを複数追加してください。
descriptions(書体ファミリーの説明)
機能:
フォントの説明文を設定します。
このパラメータは、OpenTypeのnameテーブルにおけるID 10 (description of the typeface) に対応します。ここには、更新履歴、使用上の推奨事項、フォント開発の経緯、フォントの特徴、搭載フィーチャーの説明など、様々な情報を含めることができます。
Design Grid(デザイングリッド線数)
値の型: 文字列
機能:
編集ビューに表示される点線グリッドの行数と列数を設定します。主にCJK(漢字、かな)のデザインで使用されます。「CJK Grid(漢字圏グリッド線数)」カスタムパラメータと同じ機能です。
3つの値を指定できます。
[script:]horizontal,vertical
- script: (オプション)
特定のスクリプトにのみグリッドを表示したい場合に、スクリプト名の小文字とコロンを追加します。 - horizontal
グリッドの列数(垂直方向の分割数)を指定します。 - vertical
グリッドの行数(水平方向の分割数)を指定します。
使用例:
16,16
すべてのグリフで、16×16のグリッドを表示します。
han:8,8
漢字グリフの編集中のみ、8×8のグリッドを表示します。
designers(デザイナー名)
機能:
フォントのデザイナー名を設定します。
このパラメータは、「フォント情報」の「フォント」タブにある「Designer」の項目を、指定したインスタンスに対してのみ上書きします。OpenTypeのnameテーブルにおけるID 9 (name of the designer of the typeface) に対応します。
ファミリー全体でデザイナーが異なる場合や、特定のウェイトを別のデザイナーが担当した場合など、インスタンスごとにデザイナー名を変更したい時に使用します。
designerURL(デザイナーURL)
値の型: 文字列
機能:
フォントデザイナーのウェブサイトURLを設定します。
このパラメータは、「フォント情報」の「フォント」タブにある「Designer URL」の項目を、指定したインスタンスに対してのみ上書きします。OpenTypeのnameテーブルにおけるID 12 (URL of typeface designer) に対応します。
デザイナーごとに個別のポートフォリオサイトがある場合など、インスタンスごとに異なるURLを設定したい時に使用します。
必ず http:// や https:// などのプロトコルから始まる完全なURLを入力してください。
Disable autohinting for glyphs(オートヒンティングを適用しないグリフ)
値の型: リスト(文字列)
機能:
リストに指定されたグリフを、フォント書き出し時のPostScript自動ヒンティングの対象から除外します。
オーナメント(装飾記号)のような複雑な形状のグリフなど、自動ヒンティングを行うとかえってアウトラインが崩れてしまう場合に、特定のグリフだけヒンティングを無効にするのに役立ちます。この機能はPostScript形式(.otfなど)のヒンティングにのみ有効です。TrueType形式(.ttfなど)の自動ヒンティングは、グリフ単位で無効にすることはできません。
Disable Masters(マスター無効化)
値の型: リスト(文字列)
機能:
リストに指定されたすべてのマスターを無効にします。
例えば、あるインスタンスを書き出す際には特定の中間マスターを無視したい、といった特殊な制作フローに対応する場合や、中間マスターを一つ除外した場合でも補間が期待通りに機能するかどうかを確認するなど、テストのために一時的にマスターを無効化する際に便利です。
Disable Subroutines(サブルーチンをスキップ)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータを有効にすると、フォントをCFF形式(.otfなど)で書き出す際に、アウトラインのサブルーチン化が無効になります。
サブルーチン化は、共通のアウトライン部分を共有することでファイルサイズを削減する技術ですが、いくつかの状況では無効にすることが有効です。
- 書き出しに失敗する場合
ノード数が非常に多い複雑なアウトラインを持つフォントで、サブルーチン化の処理が原因で書き出し自体が失敗してしまう場合。 - テスト時のコンパイル時間短縮
CJKフォントのようにグリフ数が膨大で、書き出しのたびにコンパイルに時間がかかりすぎる場合。
サブルーチン化を無効にすることで、テスト時の書き出し時間を短縮できます。
リリース用のフォントでは、ファイルサイズを最適化するためにサブルーチン化を有効にすることが一般的です。このパラメータは、主に上記のような問題解決やテスト目的で使用します。
DisableAllAutomaticBehaviour(すべての自動処理を無効化)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータを有効にすると、フォントの書き出し時にGlyphsが行うほとんどの自動処理が無効になります。
このパラメータは、Glyphsの自動処理を意図的にバイパスし、フォントの内部構造を完全に手動でコントロールしたい上級者向けの機能です。通常のフォント制作では使用することは稀です。
【無効になる主な自動処理の例】
- .notdef と space の並べ替え
通常、.notdef と space はフォントの先頭に来るように自動で並べ替えられますが、この処理が行われなくなります。 - 非スペーシングマークのグリフ幅ゼロ化
通常、結合マークなどの非スペーシングマーク(nonspacing marks)は、書き出し時にグリフ幅が自動的にゼロに設定されますが、この処理が行われなくなります。 - OpenTypeフィーチャーの更新
kern(カーニング)などの自動生成フィーチャーのコード更新を停止します。 - グリフ名の製品用名への変更
A-cyをafii10017に、uni0123をu0123にといった、互換性を高めるための製品用グリフ名(production names)への自動変換を停止します。
Don’t use Production Names(製品用グリフ名を使わない)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータを有効にすると、フォントを書き出す際に、グリフ名を内部データベースに基づいた製造用名(Production Names)に自動で変換せず、現在のグリフ名のまま書き出します。
通常、Glyphsはアプリケーション間での互換性を高めるため、編集時に使っている分かりやすいグリフ名(例: A-cy)を、技術仕様に準拠した製品用名(例: afii10017)に自動で変換します。このパラメータを有効にすると、その変換は行われず、.glyphsファイル内で使用しているグリフ名がそのまま最終的なフォントファイルに書き出されます。
このパラメーターは独自のグリフ命名規則を、最終的なフォントファイルにもそのまま反映させたいユーザー向けです。ただし、一部のアプリケーションやシステム(特にOS X 10.4のテキストエンジンなど)は、AGL(Adobe Glyph List)に基づいた命名規則を期待している場合があります。そのため、このオプションを有効にすると、特定の環境で互換性の問題が発生する可能性があります。
このカスタムパラメータは、「ファイル」→「フォント情報」→「その他」タブにある「カスタムのグリフ名を使用」チェックボックスの設定と同じ機能です。
EditView Line Height(編集ビューの行の高さ)
値の型: 浮動小数点数
機能:
Glyphsアプリ内の編集ビューでテキストを入力した際の、行の高さ(行間)を設定します。
フォントの縦メトリクスが特殊で、編集ビューでのデフォルトの行間が広すぎたり狭すぎたりして不適切に見える場合などに、表示上の行間を調整するのに役立ちます。このパラメータは、あくまでGlyphsアプリ内のプレビュー表示にのみ影響します。書き出されるフォントファイルそのものには一切影響を与えません。
Elidable STAT Axis Value Name(無視可能なSTAT補間スタイル名)
値の型: 文字列
機能:
バリアブルフォントのSTATテーブルにおいて、インスタンスのスタイル名(例: “Regular”)が、特定の軸においては「省略可能(elidable)」であることを宣言します。
省略可能な表示名とは、他の表示名と組み合わされたときに省略される名前を指します。通常、”Regular”や”Normal”といったデフォルトのスタイル名がこれに該当します。
- 例1: SemiboldウェイトとRegular幅の組み合わせは、通常「Semibold Regular」ではなく、単に「Semibold」と呼ばれます。
- 例2: RegularウェイトとItalicスタイルの組み合わせは、「Regular Italic」ではなく、単に「Italic」と呼ばれます。
このパラメータは、通常、“Regular”(標準)のインスタンスに追加します。そして、”Regular”という名前が省略可能となるすべての軸に対して、それぞれパラメータを追加します。
使用例:
ウェイト(wght)と字幅(wdth)の2軸を持つフォントで、”Regular”という名前のインスタンスがあるとします。このインスタンスには2つのElidable STAT Axis Value Nameパラメータを追加し、省略可能としたい軸の4文字のタグ(例: wght, wdth)をそれぞれの値の欄に入力します。
wght
wdth
Enforce Compatibility Check(互換性チェックを強制)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
すべてのマスター間で、強制的に互換性チェックを実行します。
通常、互換性チェックは「フォント情報」→「出力スタイル」で定義されたいずれかのインスタンスを生成するために補間が必要となるマスターのペアに対してのみ行われます。このパラメータは、特定のマスター間にインスタンスを定義していないものの、それでもそれらのマスター間の互換性を維持する必要がある場合に役立ちます。
例えば、バリアブルフォントを作成する際、すべてのマスターは相互に互換性がなければなりません。しかし、必ずしもすべてのマスター間に補間インスタンスを置くわけではありません。このような場合にこのパラメータを有効にすると、インスタンスの定義に関わらず、すべてのマスターの互換性がチェックされ、バリアブルフォントとしての品質を担保できます。
Export AAT(AATを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
Apple Advanced Typography (AAT) の命令(morxテーブル)を書き出すかどうかを切り替えます。チェックボックスをオフにすることで、morxテーブルの書き出しが抑制されます。
「フィーチャー」タブの「プレフィックス」セクションに morx という名前でAATの命令コードが記述されている場合、Glyphsはデフォルトでmorxテーブルを書き出します。このパラメータは、morxの命令コードはフォントファイル内に保持しつつも、特定の書き出し(インスタンス)ではAAT機能を無効にし、純粋なOpenTypeフォントを作成したい場合に、オプションとして使用します。
Export COLR Table(COLRテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
カラーフォント用のCPALテーブルとCOLRテーブルを書き出すかどうかを切り替えます。チェックボックスをオフにすると、CPAL/COLRテーブルの書き出しが抑制されます。
カラーフォントを作成するための条件(例: カラーレイヤーやカラーパレットの設定)がすべて満たされている場合、GlyphsはデフォルトでCPAL/COLRテーブルをコンパイルしてフォントに含めます。このパラメータは、カラーフォントの設定は保持しつつも、特定の書き出し(インスタンス)ではカラー機能を無効にし、通常の白黒フォントとして書き出したい場合に、オプションとして使用します。
Export DSIG Table
値の型: ブーリアン(チェックボックスでオン/オフを切り替え)
機能:
フォントの書き出し時に、デジタル署名情報を含むDSIGテーブルを書き出すかどうかを制御します。
DSIGテーブルは “Digital Signature” の略で、フォントファイルが正規の作成者によって署名され、配布中に改ざんされていないこと(完全性)を保証するために使用されます。通常、Glyphsはこのテーブルを書き出しません。
このパラメータは、フォントにデジタル署名を追加するためのDSIGテーブルの「器」をファイル内に確保する目的で使用します。このパラメータを有効にするだけでは、有効なデジタル署名は追加されません。実際にフォントに署名するには、フォントを書き出した後に、Microsoftが提供する署名ツールなどの外部の専門ツールを使用して署名プロセスを完了させる必要があります。この機能は、特定のレガシーなシステム要件(例えば、OSのシステムフォントなど)を満たす必要がある場合など、非常に特殊なケースでのみ必要となる高度なオプションです。ほとんどのフォントデザイナーや一般的な用途では不要です。
Export Folder(出力フォルダ)
値の型: 文字列
機能:
フォントを書き出す際に、デフォルトの書き出し先の中にサブフォルダを追加し、その中に出力します。
Webフォント用のインスタンスとデスクトップ用のインスタンスを、それぞれ「Web」「Desktop」という名前のフォルダに分けて書き出したい場合などに便利です。サブフォルダ名を文字列で入力します。フォルダ名として有効な文字のみを使用してください( \ : * ? ” < > | などの記号は使用できません)。
Export Glyphs(強制出力グリフ)
値の型: リスト(文字列)
機能:
リストに指定されたすべてのグリフを、各グリフの「出力時に含める」設定を無視して、強制的に書き出します。
通常は書き出し対象外に設定しているグリフ(例: 開発中のグリフ、コンポーネント用のパーツグリフなど)を、特定のインスタンス(テスト用など)でのみ書き出したい場合に便利です。
Export kern Table(kernテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
フォント書き出し時に、モダンなGPOSテーブル内のkernフィーチャーに加えて、古い形式のkernテーブルを書き込みます。
この機能は、TrueType形式(.ttfやTTFベースのWebフォント)の書き出しにのみ影響します。すべてのグループカーニング(例: @MMK_L_A と @MMK_R_V)は、考えられるすべての個別のペア(例: AとV, Aとvなど)に展開されます。この展開処理により、kernテーブルのサイズが非常に大きくなります。そのため、このパラメータを使用する前には、フォントをサブセット化してグリフ数を減らさないと、テーブルが容量オーバーフローを起こす危険性があります。
このパラメータの使用は強く非推奨です。現在では機能していない、または非常に古いレガシーソフトウェアのサポートが必要となる、ごく稀な例外的なケースでのみ意味を持ちます。何をしているのかを正確に理解している場合のみ使用してください。
Export Mac Name Table Entries(Mac用nameテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
Macintoshプラットフォーム用のnameテーブルエントリ(Platform ID 1)を書き出すかどうかを制御します。
デフォルトではMacintosh用のnameテーブルエントリは書き出されます。このパラメータは、Macintosh用の名前情報を意図的に無効にする(書き出さないようにする)ために使用します。チェックボックスをオフにすると、書き出しが抑制されます。古いMac環境との互換性を損なう可能性があるため、通常はこの設定を変更する必要はありません。特定の目的がない限り、デフォルトのオンのままにしておくことが推奨されます。
Export morx Table(morxテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
書き出されるフォントに、Apple Advanced Typography (AAT) のレイアウト情報を格納するmorx (extended glyph metamorphosis) テーブルを挿入します。以下の手順で設定を行います。
- 「フォント情報」→「フィーチャー」に、morxという名前のプレフィックスを作成します。
- そのプレフィックス内に、MIFコード(Metamorphosis Input File)形式でAATの命令を記述します。
- このカスタムパラメータを有効にして書き出します。
この機能が正しく動作するためには、お使いのシステムにApple Font Toolsに含まれるコマンドラインツール ftxenhancer がインストールされている必要があります。詳細については、Apple Font Toolsに付属のドキュメントを参照してください。
Export OpenType(OpenTypeテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
ほとんどのOpenTypeテーブル(GPOS, GSUBなど)を書き出すかどうかを切り替えます。
このパラメータを無効(チェックボックスをオフ)にし、かつ「フォント情報」→「フィーチャー」のプレフィックスにmorxデータが入力されている場合、純粋なAATフォント(OpenTypeのレイアウト情報を持たない、Appleプラットフォーム専用のフォント)を書き出すことができます。
デフォルトでは有効になっており、OpenTypeテーブルは常に書き出されます。特定の目的がない限り、この設定を変更する必要はありません。
Export PostScript Hints(Export PostScript Hints)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
PostScriptヒンティング情報を書き出すかどうかを制御します。
チェックボックスをオフにすることでPostScriptヒンティング情報の書き出しを抑制します。通常はPostScriptヒント付きで書き出しているが、特定のインスタンス(例: ヒントが不要なディスプレイ用フォント)だけは、ヒント情報を除外してファイルサイズを削減したい、といった場合に使用します。
Export sbix Table(sbixテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
Apple形式のビットマップカラーフォント用のsbixテーブルを書き出すかどうかを切り替えます。
sbixカラーフォントを作成するための条件(例: iColorレイヤーにビットマップ画像が設定されている)がすべて満たされている場合、Glyphsはデフォルトでsbixテーブルをコンパイルしてフォントに含めます。チェックボックスをオフにすると、sbixテーブルの書き出しが抑制されます。sbixフォントの設定は保持しつつも、特定の書き出し(インスタンス)ではカラー機能を無効にし、通常の白黒フォントとして書き出したい場合に、オプションとして使用します。
Export STAT Table(STATテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
バリアブルフォントの軸やスタイル情報を定義するSTATテーブルを書き出すかどうかを切り替えます。
バリアブルフォントを書き出す際には、デフォルトでSTATテーブルがコンパイルされてフォントに含められます。このパラメータは、何らかの理由でSTATテーブルの書き出しを意図的に抑制したい場合に、オプションとして使用します。チェックボックスをオフにすると、STATテーブルの書き出しが抑制されます。通常、バリアブルフォントの正しい動作にはSTATテーブルが不可欠なため、この設定を変更する必要はほとんどありません。
Export SVG Table(SVGテーブルを出力)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
SVGテーブルの書き出しを制御します。
カラーレイヤー(SVGレイヤーなど)が存在し、SVGカラーフォントを書き出すための条件が満たされている場合、GlyphsはデフォルトでSVGテーブルをコンパイルし、書き出します。このパラメータは、その自動的な書き出しを意図的に無効にするためのオプションです。例えば、SVGテーブルを含まない別の形式のカラーフォント(COLR/CPALのみなど)を書き出したい場合に、このパラメータを追加してチェックボックスをオフにして、SVGテーブルの書き出しを無効にします。
Export TrueType Hints(Export TrueType Hints)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
TrueTypeヒンティング情報の書き出しを制御します。
ttfautohintや手動のTTインストラクションなど、何らかのTrueTypeヒンティングが設定されている場合、Glyphsはデフォルトでヒンティング情報を書き出します。このパラメータは、その挙動を明示的に制御するためのものです。例えば、テスト目的でヒンティングがない状態のフォントを確認したい場合や、特定の書き出しバージョンでのみヒンティングを削除したい場合に、このパラメータを追加してチェックをオフにします。
Export vmtx Table(Export vmtx Table)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
縦組み用のメトリクス情報を格納するvmtxテーブルの書き出しを、強制または抑制します。
フォントの各グリフに縦組み用のサイドベアリング(上下の余白)を設定しているが、特定のインスタンス(書き出しバージョン)では、縦組み機能を完全に無効にした横組み専用のフォントとして書き出したい場合に便利です。縦組みをサポートしないバージョンを意図的に作成する場合に、このパラメータを追加してチェックボックスをオフにします。これによりフォントファイルから不要な縦組み情報が削除され、ファイルサイズを削減できる可能性があります。
OpenType仕様: vmtx
Family Alignment Zones(ファミリーアラインメントゾーン)
値の型: リスト
機能:
低解像度のスクリーン表示において、フォントファミリー全体(異なるウェイト間)の見た目の一貫性を高めるための機能です。個々のウェイトでオーバーシュートの量が異なっていても、文字の高さを揃える効果があります。
ファミリーの中で最も基準となるインスタンス(通常はRegularやBookなど)のアライメントゾーン(例えばベースライン、xハイト、キャップハイトなど)を、このパラメータに複製(コピー&ペースト)するのが一般的な使い方です。フォントのレンダライザー(表示エンジン)は、この「ファミリーアライメントゾーン」を基準として、各ウェイトの高さを揃えようとします。具体的には、個々のウェイトの高さとファミリーアライメントゾーンの高さの差が1ピクセル未満の場合に、この位置揃え機能が働きます。
この機能が正しく動作するためには、ここで設定するファミリーアライメントゾーンが、各マスターに設定されているアライメントゾーンと互換性がなければなりません(ゾーンの数や種類が一致している必要があります)。
familyNames(翻訳ファミリー名)
機能:
フォントファミリー名を指定します。このパラメータで設定した名前は、「フォント情報」→「フォント」タブの「ファミリー名」フィールドの値を上書きします。主に、特定の書き出しバージョン(インスタンス)に対して、標準とは異なるファミリー名を付けたい場合に使用します。
ここで設定した値は、OpenTypeのnameテーブルにおける以下のIDに影響します。
- ID 1: Font Family name (フォントファミリー名)
- ID 4: Full font name (フルフォント名、名前の一部として使用)
また、この値は、以下のnameテーブルIDを自動計算する際のベースとしても使用されます。
- ID 3: Unique font identifier (ユニークフォント識別子)
- ID 6: PostScript name (PostScript名)
Feature for Feature Variations(バリアブルフォント字形置き換え用OpenTypeフィーチャー)
値の型: 文字列
機能:
バリアブルフォントにおいて、「ブラケットレイヤー」([120]のような名前のレイヤー)を用いて作成した字形のバリエーションを、どのOpenTypeフィーチャーに書き出すかを指定します。この機能は「ブラケットトリック」とも呼ばれます。
初期状態での値は rvrn(Required Variation Alternates)です。これは、アプリケーションがデザインスペース上の特定の位置を再現するために自動的に適用する、特殊なフィーチャーです。通常はこのデフォルト設定のままで問題ありません。この自動的な挙動を変更し、例えばユーザーが任意にオン/オフできるss01(スタイルセット)などのフィーチャーに切り替えたい場合にこのパラメータを使用します。これにより、通常は自動で適用される字形の切り替えを、ユーザーが能動的に制御できるようになります。
fileName(ファイル名)
値の型: 文字列
機能:
書き出されるフォントファイルのファイル名を、拡張子(.otfや.ttfなど)を除いて指定します。
既に出力済みのフォントがあるときに、これから出力するフォントの情報を変更することなく、かつ出力済みのフォントの上書きも避けてフォントを書き出すことができます。また、フォントファイル内に同一名のインスタンスが複数ある場合に、片方がもう片方を上書きしてしまうのを回避したい場合にも便利です。
例えば、Regularインスタンスを、一つはデスクトップ用、もう一つはWeb用に書き出すとします。通常は両方ともMyFont-Regular.otfというファイル名になり、後から書き出したファイルが先に書き出したファイルを上書きしてしまいます。このパラメータを使えば、一方のインスタンスにfileNameとしてMyFont-Regular-Webと指定することで、MyFont-Regular-Web.otfという別のファイル名で保存でき、ファイルの上書きを防ぐことができます。
Filter(フィルタ)
値の型: 文字列
機能:
特定のインスタンスを書き出す際に、アウトラインに対して一括でフィルター処理を適用します。
これにより、元のグリフデータを変更することなく、書き出し時にのみ特定のスタイル(角丸、ラフ化など)を適用したバリエーションを簡単に作成できます。
この処理は、複合グリフが分解された「後」に行われます。複合グリフが分解される前にフィルターを適用したい場合は、FilterではなくPreFilterパラメータを使用してください。
値の書式:
適用したいフィルターのコマンドをセミコロン(;)で区切って記述します。組み込みフィルターの主なコマンドは以下の通りです。イタリック体の部分は実際の値に置き換えてください。また、「フィルタ」メニューから実行するダイアログ内の左下には歯車アイコンがあり、そこからフィルタのプロパティ名と設定値をクリップボードへコピーすることも可能です。これを「出力スタイル」タブのカスタムパラメータでペーストすることで、プロパティと値を追加できます。
- 極点を追加:AddExtremes
- オートヒント:Autohinting
- ハッチング:HatchOutlineFilter; OriginX: x座標; OriginY: y座標; StepWidth: 間隔; Angle: 角度; Offset: 線幅
- パスをオフセット:OffsetCurve; xオフセット; yオフセット; ストロークを作る; ポジション/自動
- 重なったパスを合体:RemoveOverlap
- ラフ:Roughenizer; セグメント長; x方向の粗さ; y方向の粗さ; 角度
- 角丸:RoundCorner; 半径; 視覚補正
- スマート角丸:RoundedFont; ステム幅
- 変形:Transformations; LSB: 左サイドベアリング; RSB: 右サイドベアリング; Width: グリフ幅; ScaleX: 横拡大率(パーセント); ScaleY: 縦拡大率(パーセント); Slant: 傾斜角; SlantCorrection: 視覚的傾斜補正の有無; OffsetX: xオフセット; OffsetY: yオフセット; Origin: 基準点
Tip:
角丸フィルタで内向きの角に角丸を適用させたい場合は、<半径>を負の数にします。
【パラメータ値の説明】
- ブーリアン (ストロークを作る、視覚補正、視覚的傾斜補正の有無)
1(はい/有効)または0(いいえ/無効)で指定します。 - パスをオフセットのポジション/自動
0.0(0%)から1.0(100%)までの数値を指定するか、自動ストローク設定のautoという文字列を指定します。 - 変形の基準点
0から4までの数字で変形の原点を指定します。
(0: キャップハイト、1: キャップハイトの½、2: xハイト、3: xハイトの½、4: ベースライン) - 変形の左サイドベアリング、右サイドベアリング、グリフ幅は入力値の分だけ増減させたい場合は + または – を付け(例:LSB:+20; RSB:-10)、入力値にしたい場合は = を付けます(例:Width: = 500)。
【特定のグリフにのみフィルターを適用する】
フィルターコマンドの後に include: または exclude: を追加することで、処理の対象を限定できます。グリフ名はスペースまたはカンマで区切ります。
例: RemoveOverlap; exclude: a, b, c (a, b, c を除くすべてのグリフでオーバーラップを統合)
【注意点】
Glyphsに後から追加したサードパーティ製フィルターを使用する場合、パラメータへの書式の入力方法はそれぞれのフィルターのドキュメントを参照してください。include/excludeオプションはサポートされていない場合があります。
Fit Curve Panel Settings(Fit Curve Panel Settings)
機能:
右サイドバーにある「曲線フィット」パネルの、最小・最大許容誤差(パーセンテージ)の設定値を保存します。
プロジェクト全体で「曲線フィット」の許容誤差を一定に保ちたい場合や、特定の数値をプリセットとして保存しておきたい場合に便利です。一度このパラメータを設定すると、その後「曲線フィット」パネルで値を変更した場合でも、その変更内容が自動的にこのパラメータの値に反映されます。
使用例:
2つの数値をカンマ(,)で区切って入力します。
57, 72
fpgm Table Assembly(fpgmテーブルのアセンブリコード)
値の型: 文字列
機能:
TrueTypeフォントのfpgm (Font Program) テーブルのアセンブリコードを保持します。
既存のTTFファイルをGlyphsで開くと、そのフォントが持っていたfpgmテーブルのコードが、このカスタムパラメータに自動的に保存されます。これは、元のフォントが持っていた高度なTrueTypeヒンティング情報(関数定義など)を、再書き出しする際にそのまま維持することを目的としています。このパラメータの値は、手動で編集するためのものではありません。もし、あなたが独自のTrueTypeインストラクション(ヒンティング)をGlyphs内で行いたいのであれば、このパラメータは削除してください。 これを削除しないと、古いヒンティング情報が残ってしまい、意図した通りに機能しません。
fsType(fsType)
値の型: リスト
機能:
フォントの埋め込み(Embedding)に関するライセンス権利を設定します。この設定は、PDFやWebサイト、アプリケーションなどのドキュメントにフォントを埋め込む際の許可範囲を技術的に定義するもので、OpenType仕様のOS/2テーブル内にあるfsTypeフィールドに対応します。
フォントを埋め込むと、そのフォントがインストールされていない環境でもドキュメントの表示を再現できます。このfsType設定は、フォントの制作者(ベンダー)が定めたライセンスに基づき、その埋め込みをどこまで許可するかを指定するための重要な機能です。アプリケーションはこの設定を遵守する義務があります。
埋め込みタイプはアプリケーションに対して使用範囲を提案するだけのもので、フォントの保護メカニズムではありません。fsTypeを無視するアプリケーションもあります。
カスタムパラメータに fsType を追加すると、値のフィールドがドロップダウンメニューに変わります。ここから、フォントに設定したいライセンスレベルを選択します。
- インストール可:
最も制限が緩い設定です。ドキュメントへの埋め込みが許可され、さらにそのドキュメントを受け取ったユーザーのPCにフォントを恒久的にインストールすることも許可します。受け取ったユーザーは、元の購入者とほぼ同等の権利と義務を引き継ぎます。 - 制限付きライセンス:
最も厳しい設定です。このフォントはいかなる形式でも埋め込みが禁止されます。法的な所有者の許可なしに加工、埋め込み、再配布をしてはいけません。 - プレビュー & 印刷:
フォントをドキュメントに埋め込むことが許可されます。埋め込み先の環境では、ドキュメントの表示と印刷のみが可能です。フォントを使った編集はできません(読み取り専用)。 - 編集可:
フォントをドキュメントに埋め込むことが許可されます。埋め込み先の環境で、そのフォントを使ってドキュメントの表示、印刷、編集、変更の保存が可能です。
上記のライセンスレベルに加えて、以下のオプションを組み合わせることができます。
- サブセット不可:
このオプションを追加すると、フォントの埋め込み時にサブセット化(一部の文字だけを抜き出して埋め込むこと)が禁止されます。埋め込む際は、必ずフォントファイル全体が含まれることになります。PDFやWebフォントのファイルサイズを削減するためのサブセット化を技術的に防ぎたい場合に使用します。この制限は、上記の「編集可」や「プレビュー & 印刷」と組み合わせて適用されます。
gasp Table(gaspテーブル)
機能:
TrueTypeフォントにgaspテーブル(Grid-fitting and Scan-conversion Procedure)を設定します。このテーブルは、特定のピクセルサイズ(PPM)を境に、スクリーン上での推奨レンダリング方法(ヒンティングやアンチエイリアシングの適用方法)を切り替えるための2つの閾値を定義します。
gaspテーブルは、従来のグレースケールレンダリングと、ClearTypeサブピクセルレンダリングの両方に対する推奨設定を保有します。ただし、最終的にこの設定を尊重するかどうかは、各レンダラー(表示エンジン)に委ねられています。
This table also has some use for monochrome devices, which may use the table to turn off hinting at very large or small sizes, to improve performance.
デフォルトの閾値は8 PPMと20 PPMに設定されています。2つの閾値を設定することで表示サイズが3つの範囲に分けられます。
- 最初の閾値まで(例: 〜8 PPM): ヒンティングなし & 対称的スムージング
この範囲ではグリッドフィット(ヒンティング)は適用されず、可能な限りアンチエイリアシング(グレースケール)を使ったレンダリングが行われます。非常に小さいサイズでは、ヒントを効かせずにグレースケールで表示する方が、最も見た目が良くなることが多いためです。 - 2つの閾値の間(例: 9〜20 PPM): ヒンティングあり & 非対称的スムージング
この範囲では、レンダラーはグリッドフィットを適用し、グレースケールを抑制することが推奨されます。中間サイズでは、ヒンティングとモノクロレンダリングの組み合わせが最良の結果を生むことが多いためです。ClearTypeでは、垂直方向にはグリッドフィットを適用し、水平方向にはサブピクセルレンダリングを適用します。この縦横の挙動の違いが「非対称的」と呼ばれる理由です。 - 2番目の閾値以降(例: 21 PPM〜): ヒンティングあり & 対称的スムージング
この範囲では、グリッドフィットを適用し、かつグレースケールで形状をレンダリングするよう指示されます。大きいサイズでは、ヒンティングとグレースケールレンダリングの組み合わせが最も良い結果をもたらします。ClearTypeでは、水平方向のサブピクセルレンダリングに加え、垂直方向にもアンチエイリアシングを使用する対称的スムージングが適用され、より滑らかでクリーンな文字表示が実現されます。
At display sizes on screen,[…] this new improvement of the Windows font renderer produces smoother and cleaner-looking type.
(画面上の表示サイズでは、[…]Windowsフォントレンダラのこの新しい改善は、より滑らかでより明瞭な書体を生みだします。)
Now Read this: The Microsoft Cleartype Font Collection, Microsoft 2004 (PDF) p.14
Get Hints From Master(ヒンティング情報を他のマスターから取得)
値の型: 文字列
機能:
手動で入力されたPostScriptヒントおよびTrueTypeヒントの参照元となるマスター(メインマスター)を定義します。
このパラメータで指定されたマスター以外のマスターに入力された手動ヒントは、すべて無視されます。このパラメータが設定されていない場合は、手動ヒントは「フォント情報」→「マスター」でリストの先頭にあるマスターから取得されます。この設定は、TTFStemsやTTFZonesといったTrueTypeヒンティング用パラメータのUIにも影響を与えます。PPMごとのデルタ調整やスコープ(適用範囲)を設定するためのボタンは、ここで指定されたマスターのパラメータ編集画面にのみ表示されます。
glyphOrder(グリフ順)
値の型: リスト
機能:
作業ファイル(.glyphs)と、書き出される最終的なフォントファイルの両方における、グリフの順序を設定します。
値の欄にグリフ名を改行区切りで入力します。リストフィルターの内容をコピー&ペーストすることも可能です。このリストに記載されていないグリフがフォント内に存在する場合、それらのグリフはリストに記載されたグリフの後に、Glyphsが採用しているデフォルトの順序で追加されます。
Grid Spacing(グリッドのユニット間隔)
値の型: 整数 (※原文ママですが、正確には浮動小数点数かと思われます)
機能:
書き出されるCFFフォント(.otf)の座標の精度をユニット数で設定します。これはフォント情報の「グリッドのユニット間隔」を「グリッド細分」で割った値になります。
非常に細いウェイト(ThinやHairlineなど)を補間で生成する際に、ポイントの座標が粗く丸められてしまい、アウトラインが崩れるのを防ぐために使用します。
このパラメータの効果は、設定する値が1.0より小さいか、1.0以上かによって明確に分かれます。
- 高精度モード (1.0未満の値を設定)
- 設定例: 0 または 0.01
- 効果: ポイントの座標が整数に丸められず、小数(1/100ユニット精度)で保持されます。これにより、補間によって生じる微細な座標の差が失われず、アウトラインの品質が維持されます。
- 重要なルール: 1.0未満の値(例: 0.5, 0.1, 0.01, 0)は、すべて0.01と同じ効果になります。つまり、デフォルトの100倍細かい精度で座標が書き出されます。
- 標準モード (1.0以上の値を設定、または未設定)
- 設定例: 1
- 効果: ポイントの座標は、最も近い整数グリッドに丸められます。これはGlyphsのデフォルトの挙動です。
- 重要なルール: 1.0以上の値(例: 1, 2, 10)は、すべて1.0と同じ効果になります。
このパラメータはCFF/OTF形式の書き出しにのみ影響します。TrueType形式(.ttf)は、座標は整数でなければならないと定められているため、このパラメータを設定しても効果はありません。
Hangul Composition Groups(ハングル合成グループ)
値の型: リスト
機能:
ハングル(韓国語)のデザインにおいて、複雑な複合グリフ(ハングル音節)を自動で組み立てるための、字母(Jamo)のグループを定義します。
このパラメータを設定すると、キーとなる字母(例: kiyoek-ko)と、それと似たフォーマットを持つ派生字母(例: kiyoek-e, kiyoek-i)をグループとして登録できます。これにより、Glyphsは登録されたグループ情報に基づき、様々な字母の組み合わせから成る複雑なハングル音節グリフを自動的に生成します。
Has WWS Names(WWS命名規則に準拠)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
OS/2テーブルの fsSelection エントリのビット8を設定します。
OpenType仕様によれば、このビットは「このフォントのnameテーブルの文字列が、WWS(Weight:ウエイト/Width:字幅/Slope:傾斜)ファミリーの命名規則に準拠している」ことを示します。このフラグをオンにすることで、nameテーブルのID 21(WWS Family Name)とID 22(WWS Subfamily Name)を追加しなくても、フォントがWWSモデルに沿っていることをアプリケーションに伝えることができます。このパラメータが意味を持つのは、フォントの命名がすでにWWSのスキームに準拠している場合のみです。そうでない場合にこのフラグを立てると、意図しない挙動を引き起こす可能性があります。
hheaAscender(hheaアセンダー)
値の型: 整数
機能:
hhea (Horizontal Header) テーブルに格納されるアセンダーの高さを設定します。これは、ベースラインから最も高いアセンダーまでの距離を示す「組版上のアセント(Typographic ascent)」です。
hheaテーブルに含まれる縦メトリクス(hheaAscender, hheaDescender, hheaLineGap)は、主にmacOS上のアプリケーションやブラウザが、行の高さやテキストの垂直位置を決定するために参照します。一方で、Windows環境ではOS/2テーブルのwinAscent/winDescentやtypoAscender/typoDescenderが参照されることが多く、このプラットフォーム間の差異が、意図しない行間のズレやクリッピング(文字が切れる現象)を引き起こす原因となります。
この問題を解決するため、現代のフォント制作では以下の設定が強く推奨されます。
- typo系の値と同期させる:
古いソフトウェアとの後方互換性を考慮する必要がない限り、このhheaAscenderの値を、クロスプラットフォームでの標準とされるtypoAscenderカスタムパラメータの値と同じ数値に設定します。 - Use Typo Metricsを有効にする:
あわせてUse Typo Metricsカスタムパラメータを有効(チェックをオン)にします。これにより、多くのアプリケーションに対して「プラットフォームに関わらずOS/2テーブルのtypoメトリクスを優先的に使用してください」という指示を送ることができ、クロスプラットフォームでの表示の一貫性を大幅に向上させることができます。
より詳細な縦メトリクスの仕組みについては、Glyphs公式サイトのVertical Metrics tutorialを参照してください。
hheaDescender(hheaディセンダー)
値の型: 整数
機能:
hhea (Horizontal Header) テーブルに格納されるディセンダーの深さを、負の整数で設定します。これは、ベースラインから最も低いディセンダーまでの距離を示す「組版上のディセント(Typographic descent)」です。
hhea系の値に関する議論については、「hheaAscender」パラメータの項目を参照してください。
hheaLineGap(hhea行間アキ)
値の型: 整数
機能:
hhea (Horizontal Header) テーブルに格納される、推奨される行と行の間の余白(行間)を設定します。「組版上のラインギャップ(Typographic line gap)」です。
一部の古い実装では、負の値はゼロとして扱われます。hhea系の値に関する議論については、「hheaAscender」パラメータの項目を参照してください。
Ignore custom GlyphData file(Ignore custom GlyphData file)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータを有効にすると、.glyphsファイルと同じ階層、またはInfoサブフォルダ内にあるカスタムのグリフ情報ファイル(GlyphData.xml)を意図的に無視するようになります。
Glyphsでは、.glyphsファイルと同じ階層、またはその中のInfoサブフォルダにGlyphData.xmlというファイルを置くことで、グリフのカテゴリ、サブカテゴリ、ソート順、Unicode値といった情報をカスタマイズできます。通常、このファイルが存在する場合、Glyphsは内蔵のデフォルト情報よりもカスタムファイルの情報を優先して読み込みます。テスト目的などで一時的にそのカスタム情報を無視し、Glyphsに内蔵されているデフォルトのグリフ情報を使用したい場合などにこのパラメータを使用します。
Ignore out of bounds instances(デザインスペース外のインスタンスを無視)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
デザインスペースの範囲外にあるすべてのインスタンスを無視します。
【使用目的】
例えば、サブセット化を行う際に、フォントの一部のマスターが削除された結果、いくつかのインスタンスが補間可能なデザインスペースの範囲外になってしまうことがあります。通常これはエラーの原因となりますが、このパラメータを有効にすることで、そうした範囲外のインスタンスを単純に無視して処理を続行できます。
Ignore Vertical Hints(縦方向ヒントを無視)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
TrueType形式で書き出す際に、TTFStemsパラメータで定義された垂直ステムにリンクされているすべてのステムヒントを無視します。
ClearTypeなどのサブピクセルレンダリング環境では、水平方向のピクセル配置が優先され、垂直方向のヒンティングは不要、あるいは邪魔になることがあります。そのような書き出しを行う場合に有効です。Webフォントでは、ファイルサイズを可能な限り小さくすることが求められます。垂直ヒントを削除することで、ファイルサイズを削減できます。このパラメータは、手動のTrueTypeヒンティングにのみ影響します。TTF AutohintやPostScriptヒンティングには適用されません。
Import Font(外部フォントファイルを参照)
機能:
別の.glyphsファイルを参照し、そのファイルに含まれるグリフのうち、現在の(ホスト)フォントに存在しないグリフのみをホットリンク(動的に読み込み)します。
読み込まれたグリフは、参照元ファイルのレイヤーとマスターの順序を保ったまま、あたかも現在のファイルにコピーされたかのように扱われます。フォントビューや編集ビューで、これらのグリフは表示・入力可能ですが、直接編集することはできず、ロックされた状態になります。
これは複数のデザイナーが文字セットごとに分担して作業する場合に非常に有効です。例えば、ラテン文字担当とキリル文字担当が別々のファイルで作業し、一方のファイルからもう一方を参照することで、プロジェクト全体の状態を常に確認しながら作業を進められます。
また、複数のフォントファミリーで共有したいスマートコンポーネントやロゴ、共通の記号などを一つの「ライブラリ用.glyphs」にまとめておき、各プロジェクトからこのファイルを Import Font で参照します。これにより、コンポーネントの修正や管理が一元化され、一箇所の修正がすべての参照元プロジェクトに反映されるため、メンテナンス性が大幅に向上します。
Import Master(外部フォントマスターを参照)
機能:
別の.glyphsファイル内にある特定のマスターを参照し、あたかも「フォント情報」→「マスター」に手動で追加したかのように、現在のファイルにマスターをホットリンク(動的に読み込み)します。
参照元と参照先の両方のファイルで、補間値(ウェイト、字幅など)が互換性を持つように設定されている必要があります。ホットリンクしたいマスターが複数ある場合は、その数だけこのパラメータを追加してください。(1パラメータにつき1マスター)
Instance Preview(インスタンスプレビュー)
値の型: リスト
機能:
「出力スタイル」タブで特定のインスタンスを選択した際に表示されるプレビュー文字列を、デフォルトのAang126から任意のものに変更します。
InterpolationWeightY(ウエイト軸のY座標を独立補間)
値の型: 浮動小数点数
機能:
インスタンスの補間において、Y軸方向(垂直方向)のみに適用される補間値を設定します。これにより、X軸方向(水平方向)とY軸方向で異なる補間ウェイトを適用することができます。
パラメータに設定した値がインスタンス自体の補間ウェイトと異なる場合にのみ有効となります。また、この機能は斜めの線(ダイアゴナル)で歪み(デフォメーション)を引き起こす可能性があるため、注意して使用してください。InterpolationWeightYの値は、通常のウェイト補間値に近い値を設定することをお勧めします。
使用例:
- 前提
- ウェイト20と100の2つのマスターが存在する。
- ウェイト補間値50のインスタンスを作成した。
- 課題
仮に、このインスタンスでは、垂直ステム(縦線)の太さはちょうど良いが、水平ステム(横線)は細すぎるように見えるとします。水平ステムをちょうど良く見せるには補間値を60にしたいが、そうすると今度は垂直ステムが太くなりすぎてしまいます。 - 解決策
インスタンスの補間値は50のままにして、カスタムパラメータ InterpolationWeightY を追加し、その値を60に設定します。 - 結果
- 垂直ステム(X座標)は、引き続き50のウェイトで補間される。
- 水平ステム(Y座標)は、60のウェイトで補間される。
これにより、垂直ステムと水平ステムの太さのバランスを、より細かく調整することができます。
isFixedPitch(等幅)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
postテーブルのisFixedPitchフラグをオンにして、フォントが等幅(monospaced)であることを明示します。
等幅フォントとは、iやmといった字幅の異なる文字を含め、すべてのグリフが同じ水平幅を持つフォントのことです。このisFixedPitchフラグは、アプリケーションに対して「このフォントは等幅です」と伝える重要な役割を果たします。フラグを受け取ったソフトウェアは、どのピクセルサイズ(PPM)で表示されても、すべてのグリフが水平方向に同じピクセル数で描画されるようにレンダリングを調整します。
このパラメータを有効にすると、すべてのグリフの幅が、space(スペース)グリフの幅に強制的に同期されます。この挙動(強制同期されるグリフ幅)は、マスター設定で上書きすることが可能です。マスターのカスタムパラメータに .monospace という名前の数値パラメータを追加すると、Glyphsはspaceグリフの幅の代わりにその数値をすべてのグリフの基準幅として使用します。
Italic Style Linking(Italic Style Linking)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
バリアブルフォントのSTATテーブルに、イタリック軸(ital)のスタイルリンク情報(Format 3 AxisValue)を追加します。これにより、Regular(ital=0)とItalic(ital=1)がスタイルとしてリンクされます。
スタイルリンクとは、アプリケーションの「I」(イタリック)ボタンが押された際に、アップライト体(例: Regular)から対応するイタリック体(例: Italic)へ正しく切り替えるための情報です。このパラメータは、ital軸において0の位置(アップライト)と1の位置(イタリック)をリンクさせる情報をSTATテーブルに追加します。
通常、Glyphsはフォントファミリー内のスタイル構成を解析し、必要なスタイルリンク情報を自動で生成します。このパラメータは、その自動処理を上書きして、スタイルリンクを強制的に追加したり、逆に強制的に抑制したりしたい場合に使用する、上級者向けのオプションです。このパラメータは、ファミリー内にアップライト体が存在せず、イタリック体のみで構成されるフォントには追加すべきではありません。
italicAngle(イタリック角度)
値の型: 文字列
機能:
フォント情報の「マスター」タブで設定されたイタリック角度の値を、フォント全体、または特定のスクリプトに対して上書きします。このパラメータを設定すると「マスター」タブのイタリック角度の情報は無視され、こちらが優先されます。
値は、垂直から時計回りの角度で指定します。複数のスクリプトに設定する場合は、このパラメータを複数追加してください。編集ビューでは、指定したスクリプトのグリフに対して、この角度が優先的に表示に反映されます。
この機能が特に役立つのは、わずかに傾斜しているが、書体としてはアップライト(直立体)として扱いたい場合です。たとえば少し傾斜のあるローマン体(アップライト)をデザインする場合、「マスター」タブで傾斜角(例: -2度)を入力するとデザインの際に便利になります。しかし、macOSではイタリック角度が0でないフォントを自動的に「イタリック体」として分類してしまいます。これにより、本来はアップライト体であるにもかかわらず、アプリケーションのフォントメニューで意図せずイタリックとして表示・分類されてしまう問題が発生します。このような場合に、該当するインスタンスに Italic Angle カスタムパラメータを追加し、その値を0に設定します。これにより、デザイン上の傾斜はそのままに、フォントファイルに書き込まれる技術的な情報としては「傾きなし(イタリックではない)」と定義することができるため、OSによる誤分類を防ぐことができます。
この値は、以下のテーブルの各項目に影響を与えます。
- CFFテーブルの ItalicAngle
- postテーブルの italicAngle
- OS/2テーブルの上付き・下付き文字のXオフセット
- hheaテーブルのキャレットの傾き(caretSlopeRise, caretSlopeRun)
使用例:
- フォント全体に適用する場合:
数値を直接入力します。(例: 12) - 特定のスクリプトにのみ適用する場合:
スクリプト名の小文字、コロン(:)、数値の順で入力します。(例: latin: 7)複数のスクリプトに異なる角度を設定したい場合は、このパラメータを複数追加してください。
Keep GlyphOrder
値の型: ブーリアン(チェックボックスでオン/オフを切り替え)
機能:
フォントの書き出し時に、Glyphsが行うグリフの自動並べ替え処理をすべて無効化し、「フォント情報」→「glyphOrder」で定義された順序を厳密に維持します。
通常、Glyphsは多くのアプリケーションとの互換性を保つため、フォントを書き出す際にグリフの順序を最適化します。具体的には、.notdefグリフをフォントの先頭に、spaceグリリフをその次に配置するよう自動的に並べ替えます。このKeep GlyphOrderパラメータは、その自動処理を完全に停止させるためのものです。これにより、ユーザーが「フォント情報」→「グリフの順序」で定義したカスタムのグリフ順序が、一切変更されることなく最終的なフォントファイルに書き込まれます。
このパラメータは、意図しない使用を防ぐための安全策として、通常のカスタムパラメータのリストには表示されません。使用するには以下の手動操作が必要です。
- カスタムパラメータ欄の「+」ボタンを押し、新規パラメータを追加します。
- プロパティ名のフィールドに、手動で Keep GlyphOrder と正確に入力し、「追加」ボタンをクリックします。
- 値を設定するためのチェックボックスが表示されるので、それをオンにします。
これは上級者向けの機能です。グリフの順序はフォントの互範性や一部機能の動作に影響を与える可能性があります。何をしているのかを正確に理解している場合のみ使用してください。 ほとんどの場合、このパラメータに触れる必要はありません。
Keep Glyphs(出力グリフ)
値の型: リスト
機能:
書き出されるフォントに保持するすべてのグリフを、グリフ名のリストで指定します。リストに含まれない他のすべてのグリフは破棄されます。
Webフォントなどでファイルサイズを削減するためのサブセット化に非常に便利です。「これらの文字だけを残して、あとは全部削除する」というアプローチを取ります。グリフが破棄されると、カーニング情報や自動生成されるフィーチャーコードも、それに合わせて自動的に更新されます。Remove Glyphsパラメータと同様のワイルドカードやカテゴリ検索も使用できます。
なお、Remove GlyphsとKeep Glyphsは、互いに排他的な関係にあるため、同時に使用することはできません。
Keep Kerning in one Lookup(Keep Kerning in one Lookup)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
すべてのペアカーニング調整を、最初のGPOSルックアップに収めようと試みます。
これは、最初のルックアップ以外にあるカーニング情報を無視してしまう、一部のMicrosoftアプリケーションのバグに対する回避策です。このパラメータをオフにすると、Glyphsはデフォルトで、グリフのカテゴリ(大文字、小文字など)に基づいてカーニングを複数のルックアップに分割します。
Keep Overlapping Components(重なったコンポーネントを保持)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータを有効にすると、Ccedilla(Ç)のようにコンポーネント同士が重なり合っている複合グリフを、分解せずに書き出します。
通常、Glyphsはフォントを書き出す際に、重なりが発生しているコンポーネントを自動的に分解(アウトライン化)して、パスの重なりを解消(Remove Overlap)します。これは、多くの環境でグリフが正しく表示されるようにするための標準的な処理です。しかし、フォントを書き出した後に別の専門ツール(例: VTT (Visual TrueType)など)でヒンティングなどの追加処理(ポストプロダクション)を行いたい場合があります。このような場合、コンポーネント情報が残っている方が作業しやすいことがあります。このパラメータは、そのような書き出し後の工程を想定し、意図的にコンポーネントの分解を抑制したい場合に使用します。
CFF形式(.otf)では、仕様上コンポーネントは常に分解されるため、このパラメータを設定しても効果はありません。
Keep Transformed Components(変形したコンポーネントを保持)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
変形(水平・垂直方向の拡大縮小、または垂直方向のシフト)が適用されたコンポーネントを持つ複合グリフを、分解せずに書き出します。
Keep Overlapping Componentsパラメータと同様に、TrueTypeフォントのポストプロダクション(書き出し後の工程)で役立つことがあります。
製品としてリリースするフォントに対してこのパラメータを使用することは推奨されません。 なぜなら、対象となるグリフでTrueTypeヒンティングが正しく機能しなくなる可能性があるためです。また、このパラメータはCFF形式(.otf)の書き出しには影響しません。
Keep UI-Font Bounding Box(KeepUI-FontBoundingBox)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
南アジア系スクリプトにおいて、結合文字(conjuncts)が下に重なっていくのを防ぎます。 これを実現するために、cjctフィーチャーの自動生成コードを適切に変更します。
一部の南アジア系スクリプト(※現在の実装ではオリヤー文字)では、特定の文字の組み合わせ(結合文字)が、ベースラインの下方向へ伸びていく形で形成されることがあります。これは組版上は正しい挙動ですが、メニュー項目やボタンのラベルといったユーザーインターフェース(UI)では、テキストの表示領域が厳密に制限されているため、文字が切れてしまう(クリッピング)原因となります。
このパラメータを有効にすると、Glyphsはcjct(Conjunct Forms)フィーチャーの自動生成コードを調整します。これによりグリフが定められたバウンディングボックス(境界ボックス)内に収まり、UI環境でもテキストが正しく表示されるようになります。
現在のところ、この自動処理はオリヤー文字にのみ実装されています。
licenses(ライセンス)
機能:
フォントのライセンスに関する説明を設定します。
このパラメータは、OpenTypeのnameテーブルにおけるID 13 (License description) に対応します。ここには、フォントを法的にどのように使用できるか、あるいはライセンスされた使用方法の様々な例を記述します。法律用語ではなく、平易な言葉で書くことが推奨されます。
licenseURL(ライセンスURL)
値の型: 文字列
機能:
フォントのライセンス情報が掲載されているURLを設定します。
このパラメータは、OpenTypeのnameテーブルにおけるID 14 (URL for license) に対応します。ここには、より詳細にライセンス情報を確認できるウェブページのURLを記述します。プロトコルの指定(通常は https://)から始まる、完全なURLを入力します。
Link Metrics With First Master(メトリクスを最初のマスターとリンク)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータが入力されたマスターのサイドベアリングとカーニングを、最初のマスターと同期させます。
これにより、実質的に最初のマスターのスペーシングとカーニングを行うだけでこれらの設定が完了するようになります。これは、複数レイヤー構成のカラーフォントや、ウェイトが変わってもメトリクス(字幅や字間)を変更したくないフォントで特に便利です。
Link Metrics With Master(メトリクスをマスターとリンク)
値の型: 文字列
機能:
Link Metrics With First Master(上記参照)と同様ですが、こちらは同期の参照元を最初のマスターに固定するのではなく、同期させたいマスターの名前を指定できる点が異なります。
このパラメータを使用する場合は、すべてのマスターがユニークな(重複しない)名前を持っていることを確認してください。
Local Interpolation(局地的補間)
値の型: 文字列
機能:
指定したグリフに対して、インスタンス全体の補間値とは異なる、局所的な補間値を適用します。
設定値は、<ウエイト値>; <字幅値>; <カスタム値>; include: <コンマ区切りのグリフ名> です。最初の3つの値は補間値、最後は適用させるグリフ名のリストです。1軸のみ使用しているファイルでは、値は1つだけで十分です。
使用例:
120; include: a, g, s
この例では、a, g, s のグリフにのみ補間値120が使用されます。他のすべてのグリフは、そのインスタンスが持つ本来の補間値に従って補間されます。
MakeOTF Compatibility Mode(MakeOTF互換モード)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータを有効にすると、フォントの書き出し時に生成されるOpenTypeレイアウトテーブル(GPOS, GSUBなど)が、Adobe社のコマンドラインツールmakeotfの仕様と互換性を持つ形式で構築されるようになります。
Glyphsは通常、内蔵のエンジン(fonttoolsライブラリベース)を使用してOpenTypeフィーチャーコードをコンパイルし、バイナリテーブルを生成します。一方、Adobe社は古くからmakeotfという独自のツールを開発・提供しており、これには特有のコンパイルロジックや挙動が存在します。ほとんどの場合、どちらのエンジンを使っても同じフィーチャーコードから同等の結果が得られますが、稀に、解釈や最適化の方法にわずかな違いが生じることがあります。このパラメータは、その差異を吸収し、互換性を確保したい場合に役立ちます。
長年Adobeのツールを使ってフィーチャーを記述してきたデザイナーのコードなど、makeotf特有の構文や挙動を前提として書かれたフィーチャーファイルを、書き換えずにそのままGlyphsで使用したい場合や、フォントの納品先や使用するアプリケーション、品質保証(QA)ツールなどが、Adobeのmakeotfでコンパイルされたフォントを前提として構築されている場合には、このモードを有効にすることで互換性の問題を回避できます。
しかしながら、これは特定の互換性問題を解決するための上級者向けオプションであり、Glyphsで新規に作成するほとんどのフォントプロジェクトではこのパラメータを有効にする必要はありません。
manufacturers(製造者)
機能:
フォントの製造元名(Manufacturer Name)を設定します。
このパラメータは、「フォント情報」→「フォント」タブで設定された「Manufacturer」を上書きします。OpenTypeのnameテーブルにおけるID 8 (Manufacturer Name) に対応します。
manufacturerURL(製造者URL)
値の型: 文字列
機能:
フォントの製造元またはベンダーのURLを設定します。
このパラメータは、「フォント情報」→「フォント」タブで設定された「製造者 URL」を上書きします。OpenTypeのnameテーブルにおけるID 11 (URL of font vendor) に対応します。必ず http:// や https:// などのプロトコルから始まる完全なURLを入力してください。
このURLに固有のシリアルナンバーを含めることで、フォントのオンライン登録などに利用されることも想定されています。
Master Background Color(マスター背景色)
値の型: (ダイアログで設定)
機能:
特定のマスターの背景色を設定します。
このパラメータを設定すると、編集ビューでそのマスターがアクティブになった際に、背景がデフォルトの白(またはグレー)ではなく、指定した色で表示されるようになります。値のフィールドをクリックすると、カラーピッカーが表示されますので、そこから設定したい色を選択します
Master Background Color Dark(ダークモードのマスター背景色)
値の型: (ダイアログで設定)
機能:
Master Background Colorと同様ですが、こちらはダークモードでUIを使用している際の、マスターの背景色を設定します。
Master Color(マスター描画色)
値の型: (ダイアログで設定)
機能:
特定のマスターのアウトラインの塗りつぶし表示色を設定します。
複数のフォントを異なる色で重ねて使用する「レイヤーフォント」をプレビューするのに便利です。この設定は、Glyphsアプリ内での表示にのみ有効であり、書き出されるOpenTypeフォントファイルには影響しません。
Master Color Dark(ダークモードのマスター描画色)
値の型: (ダイアログで設定)
機能:
Master Colorと同様ですが、こちらはダークモードでUIを使用している際の、マスターのアウトラインの塗りつぶし表示色を設定します。
Master Icon Glyph Name(マスターアイコンのグリフ名)
値の型: 文字列
機能:
フォントウィンドウの左上に表示されるマスター切り替えボタンのアイコンとして使用する、グリフの名前を指定します。
この機能が意味を持つのは、「フォント情報」→「マスター」に2つ以上のマスターが存在する場合です。例えば、「Light」マスターのボタンには L グリフを、「Bold」マスターのボタンには B グリフをアイコンとして表示させる、といったカスタマイズが可能です。
Master Stroke Color(マスター線色)
値の型: (ダイアログで設定)
機能:
特定のマスターのアウトライン(線)の表示色を設定します。
この色は、「すべてのレイヤーを選択」ツール(ショートカット: Shift+V)がアクティブな時に表示されます。この設定はGlyphsアプリ内での表示にのみ有効であり、書き出されるOpenTypeフォントファイルには影響しません。
Master Stroke Color Dark(ダークモードのマスター線色)
値の型: 文字列
機能:
Master Stroke Colorと同様ですが、こちらはダークモードでUIを使用している際の、マスターのアウトライン(線)の表示色を設定します。
meta Table(metaテーブル)
値の型: (ダイアログ)
機能:
フォントの書き出し時に、meta (Metadata) テーブルを追加します。このテーブルは、フォントがどの言語やスクリプトを意図して設計されたか、またどの範囲までサポートしているかといったメタ情報を格納します。
カスタムパラメータに meta Table を追加すると、値のフィールド(「empty」)をクリックすることで、以下の2項目を設定する専用ダイアログが開きます。
- dlng (Design languages / 設計言語):
このフォントが主たるターゲットとして設計されたユーザー層の言語やスクリプトを指定します。
この情報は、コンテンツの言語に応じてデフォルトのフォントを選択したり、ユーザーの言語設定に基づいてフォントの選択肢をフィルタリングしたりする際に役立ちます。 - slng (Supported languages / 対応言語):
このフォントが対応可能な言語やスクリプトを指定します。
この情報は、フォントのフォールバック処理などで利用されます。slngで宣言する内容は、dlngで宣言した内容と同一か、それを含むより広い範囲(スーパーセット)であるべきです。
アプリケーションによっては、このslngの値を参照し、OS/2テーブルのUnicode範囲ビットを無視することがあります。
値の書式:
各項目には、ScriptLangTagをカンマ区切りで入力します。ScriptLangTagは、国際標準(IETF BCP 47)に準拠した文字列で、以下の形式で構成されます。スクリプトの指定は必須です。
- 書式: 言語コード-スクリプトコード-地域コード
- 言語コード (任意): ISO 639-1の2文字コード (例: sr セルビア語)
- スクリプトコード (必須): ISO 15924の4文字コード (例: Cyrl キリル文字, Latn ラテン文字)
- 地域コード (任意): ISO 3166-1の2文字コード (例: BA ボスニア・ヘルツェゴビナ)
Name Table Entry(nameテーブルカスタムコード)
値の型: 文字列
機能:
OpenTypeフォントのnameテーブルに、任意の情報をカスタムエントリとして追加します。
セミコロン(;)で区切って、以下の3つのいずれかの形式で記述します。
- nameID; nameString
- nameID platformID; nameString
- nameID platformID encID langID; nameString
各IDの詳細:
- nameID (名前ID):
nameテーブルのエントリを識別する番号です。このパラメータでは、Glyphsが自動生成する主要なID(1, 2, 3, 5, 6)以外であれば、任意の数値を指定できます。 - platformID (プラットフォームID):
1(Macintosh)または3(Windows)を指定します。 - encID (エンコーディングID), langID (言語ID):
プラットフォームごとのエンコーディングと言語を指定するための、省略可能な数値です。これらは0~65536までの値で、8進数、10進数、16進数のいずれかで入力します。
プラットフォームIDなどを省略した場合は、以下のデフォルト値が適用されます。
- Windows(platformIDが3または省略された場合):
- encID: 1 (Unicode)
- langID: 0x0409 (アメリカ英語)
- Macintosh(platformIDに1を指定した場合):
- encID: 0 (Mac Roman)
- langID: 0 (英語)
IDの数値は、AFDKOの仕様に従い、以下の形式で入力します。
- 10進数: 0以外の数字で始める (例: 10, 25)
- 8進数: 0で始める (例: 012 は10進数の10)
- 16進数: 0xで始める (例: 0x0A は10進数の10)
ここで使用できる値のリストはOpenTypeのnameテーブルの仕様を参照してください。
https://learn.microsoft.com/ja-jp/typography/opentype/spec/name#platform-encoding-and-language-ids
note(メモ)
値の型: 文字列
機能:
フォントに関する任意のメモを記述します。
このメモは、最終的なOpenTypeフォントファイルには書き出されず、.glyphs作業ファイル内にのみ保存されます。このパラメータを設定することは、「フォント情報」→「ノート」タブに直接メモを記述するのと全く同じ機能です。
Optical Size(オプティカルサイズ)
値の型: 文字列
機能:
オプティカルサイズ(表示サイズごとの最適化)のためのOpenTypeフィーチャー(sizeフィーチャー)を構築します。
フォントファミリーのメニュー内にサイズ別のサブメニュー(例: “Display”, “Text”, “Caption”)を生成し、ユーザーが適切なスタイルを選択しやすくなります。
以下の5つの値を、この順序でセミコロンで区切って記述します。
デザインサイズ; サブファミリーID; 使用範囲の開始; 使用範囲の終了; サイズメニュー名
- デザインサイズ (design size):
このインスタンスが設計された理想のフォントサイズです。単位はデシポイント(ポイントの1/10)で指定します。
例: 12ポイントの場合 → 120 - サブファミリーID (subfamily identifier):
オプティカルサイズでグループ化するための任意の整数です。同じIDを持つ異なるインスタンス(例: “Twelve” と “Twelve Italic”)は、対応ソフトウェアのオプティカルサイズサブメニューで同じグループにまとめられます。 - 使用範囲の開始 (range start):
このインスタンスが使用されるべき推奨サイズ範囲の下限です。デシポイント単位で指定します。この値は範囲に含まれず、この値より大きいサイズからが推奨範囲となります。
例: 8ポイントから使わせたい場合 → 79 (7.9ポイントより大きい) - 使用範囲の終了 (range end):
このインスタンスが使用されるべき推奨サイズ範囲の上限です。デシポイント単位で指定します。この値を含めたサイズまでが推奨範囲となります。
例: 14ポイントまで使わせたい場合 → 140 - サイズメニュー名 (size menu name):
アプリケーションのオプティカルサイズサブメニューに表示される名前です。
例: Display, Subhead, Text, Caption
使用例:
あるフォントの「Twelve」というインスタンスに、以下の設定を行いたいとします。
- 理想のデザインサイズ: 12 pt
- 推奨使用範囲: 8 pt ~ 14 pt
- グループID: 1
- メニュー名: Twelve
この場合、値のフィールドに次のように入力します。
120; 1; 79; 140; Twelve
これにより、このインスタンスは「12ポイントでの表示に最適化されており、8~14ポイントの範囲での使用が推奨される」という情報を持つことになります。対応アプリケーションでは、フォントメニューに「Twelve」という名前のオプティカルサイズオプションとして表示されるようになります。
他にサブファミリーIDに1が設定されているフォントがある場合は、グループとしてまとめられます(例: Twelve Italic)。
Optimize Variable Deltas(バリアブルデルタを有効化)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
バリアブルフォントの書き出し時に、ある輪郭(コンツアー/contour)のどのノードも0.5ユニット以上動かない場合、その輪郭のデルタ(差分データ)を破棄します。
バリアブルフォントは、マスター間の差分(デルタ)を保存することでファイルサイズを削減しています。このパラメータは、動きが非常に微細で視覚的にほとんど影響しないデルタを削除することで、ファイルサイズをさらに最適化します。このパラメータは、デフォルトで有効(チェックがオン)になっています。このパラメータを無効(チェックをオフ)にすると、この最適化は行われなくなり、たとえ0.5ユニット未満の非常に小さな動きであってもすべてのデルタが保持されるようになります。これにより、デザイナーが意図したごくわずかなディテールの変化も確実にフォントに反映させることができますが、ファイルサイズはわずかに増加する可能性があります。
(このOptimize Variable Deltasパラメータは、Variable Font Optimize Deltasパラメータと全く同じ機能を持ちます。どちらか一方を使用すれば問題ありません。)
panose(panose)
値の型: リスト
機能:
フォントの視覚的な特徴を10個の数値で分類・記述するPANOSE情報を設定します。これはOpenTypeのOS/2テーブルにある10個のpanoseフィールドに対応します。
PANOSEは、あるフォントを、名前は違っても外観が似ている他のフォントと関連付ける(フォント置換やフォントマッピング)ために考案されたシステムです。
値フィールドをクリックすると、PANOSE仕様で定められた10のカテゴリ(ファミリー種別、セリフのスタイル、ウェイト、プロポーションなど)を設定するための専用ダイアログが表示されます。各カテゴリに対応する選択肢をドロップダウンメニューから選び、OKをクリックすると、選択内容が10個の数値リストとして自動的に値フィールドに入力されます。
PANOSEは、かつてWindowsがフォントマッパーでフォントのファミリータイプを判断したり、フォントが等幅かどうかを判断したりするために一部の値(bFamilyType, bSerifStyle, bProportion)を参照していました。また、シンボルフォントの場合は、最初のカテゴリであるbFamilyTypeをPictorialに設定することが推奨されます。
しかし、この解説の執筆時点において、PANOSEはほとんどの現代的な環境では積極的に使用されておらず、フォントを機能させるために必須ではありません。これは主に歴史的な互換性のために残されているレガシーな機能であり、特別な要件がない限り、このパラメータを詳細に設定する必要性は低いと言えます。
Point To Unit Ratio(ポイント:ユニット比)
値の型: 浮動小数点数
機能:
1 DTPポイント(組版で使用されるポイント単位)が、フォント内の何ユニットに相当するかを定義します。
この機能が特に役立つのは、Glyphsと他のベクタードローイングアプリ(例: Affinity Designer, Sketch, Adobe Illustrator)との間で、ベクターデータをコピー&ペーストでやり取りする場合です。
例えば、GlyphsのUPM(Units Per Em)が1000の場合、デフォルトでは1000ユニットが1000ポイントとして扱われます。これをIllustratorなどにペーストすると、非常に大きなオブジェクトとして貼り付けられてしまいます。
そこで、このPoint To Unit Ratioの値を10に設定すると、1000ユニットが1000ポイントではなく、1/10の100ポイントとして換算されるようになります。これにより、アプリケーション間でベクターデータをやり取りする際に、適切なスケール感を保つことができ、作業がスムーズになります。
Post Table Type(postテーブル形式)
値の型: 整数
機能:
インスタンスに組み込まれるpostテーブルのバージョンを設定します。
デフォルト値はTTFフォントでバージョン 2、CFFフォントでバージョン 3です。postテーブルはグリフ名やPostScriptプリンターに関する情報を格納します。バージョンによって格納される情報が異なります。通常、このパラメータを変更する必要はなく、Glyphsが適切なデフォルト値を設定します。特定の古い環境との互換性が必要な場合にのみ、手動で変更を検討します。
postscriptFontName(PostScriptフォント名)
値の型: 文字列
機能:
フォントのPostScript名を設定します。これはOpenTypeのnameテーブルにおけるID 6 (PostScript name) に対応します。主にPostScript環境や一部の古いアプリケーションでフォントを識別するために使用される、非常に重要な内部名です。
postscriptFullNameと混同しないように注意してください。
この名前には、技術的な互換性を最大限に確保するため、厳格な命名規則が存在します。(出典: Adobe Technote #5088)
- 文字種: ASCII文字のみ使用可能です。アクセント記号付きの文字や日本語などは使用できません。
- 空白: スペースは使用禁止です。
- 書式: 一般的に「ファミリー名-スタイル属性」の形式で記述します(例: MyFont-BoldCdIt)。
- 長さ: 初期のPostScriptインタプリタや古いOSとの互換性のため、29文字以内に収めることが強く推奨されます。
29文字の制限に収めるために省略形が必要な場合、その省略形はファミリー全体で一貫して使用されるべきです。
Adobeが推奨するスタイル名の省略形:
省略形 | 完全な名前 |
Bd | Bold |
Bk | Book |
Blk | Black |
Cn | Condensed |
Ct | Compact |
Ex | Extended |
Hv | Heavy |
It | Italic |
Ks | Kursiv(ドイツ語: Italic) |
Lt | Light |
Md | Medium |
Nr | Narrow |
Obl | Oblique |
Rg | Regular |
Sl | Slanted |
Th | Thin |
Up | Upright |
接頭辞として使われる省略形:
省略形 | 完全な名前 | 使用例 |
Sm | Semi | SmBd (SemiBold) |
Dm | Demi | DmBd (DemiBold) |
X | Extra | XBd (ExtraBold), XCn (ExtraCondensed) |
Ult | Ultra | UltLt (UltraLight), UltBd (UltraBold) |
postscriptFullNames(PostScriptフルネーム)
機能:
CFFテーブルのFullNameフィールド、およびnameテーブルのID 4 (full font name) として使用される名前を設定します。
この名前は、ユーザーがフォントを識別するための、人間が読みやすい形式の完全な名称です。内部的な識別子であるpostscriptFontNameとは異なり、スペースの使用が許可されています。(例: My Font Bold Condensed Italic)
一部のシステムは、このフルネームとファミリー名を照合してフォントをグループ化します。そのため、Adobe Technote #5088では以下の構成が推奨されています。
書式: ファミリー名 + スタイル名
(例: My Font + Bold Condensed Italic → My Font Bold Condensed Italic)
- ファミリー名: フルネームの先頭部分は、フォントのファミリー名と一致させる必要があります。
- スタイル名の順序: スタイル属性は、一般的に「ウェイト、字幅、傾き、オプティカルサイズ」の順序で記述します。
OpenType仕様によれば、フルネームは通常、nameテーブルのID 16(組版用ファミリー名)とID 17(組版用サブファミリー名)を組み合わせたものになります。
スタイルが「Regular」の場合、フルネームに「Regular」という単語を追加する必要はありません。その場合、フルネームはファミリー名と同一になります。
- ファミリー名: My Font, スタイル名: Regular → フルネーム: My Font
- ファミリー名: My Font, スタイル名: Bold → フルネーム: My Font Bold
Glyphsは通常、これらの命名規則に従って自動的に名前を生成しますが、このパラメータを使うことで手動で上書き・調整することが可能です。
このpostscriptFullNameは、内部識別子であるpostscriptFontName(例: MyFont-BoldCdIt)と混同しないように注意してください。
preferredFamilyNames(タイプグラフィック ファミリー名)
機能:
組版用(Typographic)ファミリー名、別名「推奨(Preferred)ファミリー名」を設定します。この名前は、OpenTypeフォントのnameテーブルにおけるID 16 (Typographic Family name) に対応します。
このパラメータを設定するのは、その名前が「フォント情報」で設定されたファミリー名 (ID 1) と異なる場合にのみ意味があります。もしこのpreferredFamilyName (ID 16) が設定されていない場合、アプリケーションはファミリー名 (ID 1) を組版用ファミリー名として扱います。
OpenTypeフォントには、ファミリー名を定義するIDが主に2つ存在します。
- ファミリー名 (ID 1):
- 「フォント情報」で設定される、基本的なファミリー名です。
- 歴史的な理由(特に古いWindows環境)と、スタイルリンク(Regular, Italic, Bold, Bold Italicの4スタイルをグループ化する機能)のために、このファミリーは4つのスタイルに制限されることがあります。
- 組版用ファミリー名 (ID 16):
- このpreferredFamilyNameパラメータで設定する名前です。
- ID 1のような4スタイル制限はありません。Light, Regular, Medium, Semibold, Bold, Blackなど、多数のスタイルを一つの大きなファミリーとしてグループ化するために使用されます。
デザイナーが4つ以上のスタイル(例: 複数のウェイトや字幅)を持つ大きなフォントファミリーを作成した場合、それらすべてをアプリケーションのフォントメニューで一つのファミリーとしてまとめたいと考えるのが自然です。一方、name ID 1で定義されるファミリーは、歴史的な理由とスタイルリンクを表現するために、4つのスタイルに制限されることがあります。その場合に、このpreferredFamilyNameを設定することで、4スタイル制限に縛られることなく、すべての関連スタイルをモダンなアプリケーション上で正しくグループ化させることができます。
使用例:
あるフォントファミリーに「Text」と「Display」の2つのサブファミリーがあるとします。
- ファミリー名 (ID 1): MyFont Text / MyFont Display (4スタイル制限のグループ)
- 推奨ファミリー名 (ID 16): MyFont (すべてのスタイルをまとめる大きなグループ)
このように設定することで、古い環境との互換性を保ちつつ、新しい環境ではすべてのスタイルが「MyFont」という一つのファミリーとして表示されるようになります。
preferredSubfamilyNames(タイポグラフィック サブファミリー名)
(※Glyphs上では「タイポグラフィック スタイル名」と表示されています)
機能:
組版用(Typographic)サブファミリー名、別名「推奨(Preferred)サブファミリー名」を設定します。この名前は、OpenTypeフォントのnameテーブルにおけるID 17 (Typographic Subfamily name) に対応します。
このパラメータは、preferredFamilyName (ID 16) が設定されている場合にのみ使用します。また、このパラメータを設定するのは、その名前がインスタンスの基本的なスタイル名 (ID 2) と異なる場合にのみ意味があります。preferredFamilyNameで定義された一つのファミリー内で、このpreferredSubfamilyNameはユニーク(一意)でなければなりません。もしこのpreferredSubfamilyName (ID 17) が設定されていない場合、アプリケーションはサブファミリー名 (ID 2) を組版用サブファミリー名として扱います。
OpenTypeフォントには、サブファミリー名を定義するIDが主に2つ存在します。
- サブファミリー名 (ID 2):
- 「フォント情報」→「インスタンス」で設定される、基本的なスタイル名(例: Bold Italic)です。
- name ID 1で定義される、4スタイル制限のファミリーグループ内で使用されます。
- 組版用サブファミリー名 (ID 17):
- このpreferredSubfamilyNameパラメータで設定する名前です。
- preferredFamilyName (ID 16) で定義された、大きな組版用ファミリーグループ内で、各スタイルを識別するために使用されます。
preferredFamilyNameを使って4スタイル以上の大きなファミリーを構築した場合、そのファミリー内での各スタイルの名前を、より柔軟に定義する必要が出てきます。このpreferredSubfamilyNameを使うことで、その大きなファミリー内でのスタイル名(例: SemiBold Condensed Italic)を明示的に指定できます。
使用例:
- 推奨ファミリー名 (ID 16): MyFont
- 推奨サブファミリー名 (ID 17): SemiBold Cn It
このように設定することで、モダンなアプリケーションのフォントメニューでは、「MyFont」というファミリーの中に「SemiBold Cn It」というスタイルとして表示されるようになります。
PreFilter(事前フィルタ)
値の型: 文字列
機能:
フォントの書き出し時に、グリフのアウトラインに対して指定したフィルタ処理を適用します。Filterカスタムパラメータと似ていますが、適用されるタイミングが異なります。コンポーネントが分解されてアウトラインの重なりが解消される「前」の、より早い段階で実行されます。
このフィルタが実行されるのは、アウトラインがまだ元の構造(コンポーネントや重なりを含む状態)を保っている段階です。そのため、コンポーネントが分解される前にコンポーネント自体にフィルタをかけたい場合や、重なり合った状態を意図的に利用してフィルタ処理を行いたい場合に役立ちます。通常のラウンド処理やオフセット処理などは、コンポーネントが分解された後に適用されるFilterパラメータを使用するのが一般的です。PreFilterは、より高度で特殊なワークフローを想定した上級者向けの機能です。
値のフィールドに、適用したいフィルタのコマンドをセミコロン(;)で区切って入力します。使用できるフィルタコマンドについては、Filterパラメータの項目を参照してください。
このパラメータは、静的フォント(Static Fonts)の書き出しにのみ適用されます。バリアブルフォント(Variable Fonts)の書き出しには効果がありません。
prep Table Assembly(prepテーブルのアセンブリコード)
値の型: 文字列
機能:
TrueTypeフォント(.ttf)のprep (Pre-Program) テーブルに書き込まれるアセンブリコードを保持します。prepテーブルには、フォント全体のヒンティングに影響を与えるグローバルなインストラクション(指示)が格納されます。
既存のTrueTypeフォント(.ttf)をGlyphsで開くと、そのフォントが元々持っていたprepテーブルのコードが、このカスタムパラメータに自動的に保存されます。これは、元のフォントに施されていた高度なTrueTypeヒンティング情報を失うことなく、そのままの状態で再書き出しするためのデータ保存機能です。この自動生成されたコードは非常に複雑であり、手動で編集することは想定されていません。
このパラメータの存在は、独自のTrueTypeヒンティングを行う上で非常に重要です。元のヒンティングを維持したい場合は、このパラメータには触れずに、そのままにしておきます。フォントを書き出すと、保存されていた元のprepコードが再利用されます。Glyphsで独自のTrueTypeヒントを付けたい場合は、必ずこのカスタムパラメータを削除してください。 これを削除しないと、古いprepテーブルのコードが優先されてしまい、Glyphsで新しく設定したヒンティングインストラクションが意図通りに機能しなかったり、予期せぬ競合を引き起こしたりする原因となります。
Prevent Name ID(Prevent Name ID)
値の型: 文字列(整数ID)
機能
フォントの書き出し時に、OpenTypeフォントのnameテーブルから、指定したIDを持つエントリを意図的に除外します。
nameテーブルには、フォント名、ファミリー名、著作権情報、バージョン情報など、さまざまな情報がID番号と共に格納されています。Glyphsは通常、これらの情報を自動的に生成・管理しますが、特定のワークフローや納品要件に対応するため、一部のnameエントリを意図的に書き出したくない場合があります。このパラメータは、そのような特殊なケースに対応するための高度な制御機能です。nameテーブルのエントリは、フォントがアプリケーションで正しく認識・表示されるために重要な役割を果たします。不適切な使用は、フォントの互換性問題を引き起こす可能性があります。
使用例:
あるフォントファミリーで、Glyphsが自動的に生成するpreferredFamilyName (ID 16) と preferredSubfamilyName (ID 17) を使用せず、古いスタイルのファミリー構造(ID 1とID 2のみ)を強制したい場合、ID 16と17を生成するのを防ぐために以下の2つのパラメータを設定します。
- Prevent Name ID パラメータを追加し、値に 16 を設定する。
- もう一つ Prevent Name ID パラメータを追加し、値に 17 を設定する。
複数のname IDの書き出しを防ぎたい場合は、その数だけこのパラメータを追加してください。
Preview Ascender(プレビュー用アセンダーハイト)
値の型: 浮動小数点数
機能:
Glyphsアプリ内のプレビュー表示(編集ビュー下部またはプレビューパネル)における、プレビュー用の仮想的なアセンダーラインの高さ(ベースラインからプレビュー領域の上端までの距離)をフォントユニット単位で設定します。
このパラメータは、編集ビューの下部に表示されるプレビューエリアや、独立したプレビューパネルの表示スケールを調整するためのものです。最終的に書き出されるフォントファイルには一切影響を与えません。
デフォルト値は1000であり、このときプレビューエリアは1000ユニットの高さを基準にスケーリングされています。しかし、アセンダーが非常に高いグリフ(例: 装飾的な大文字、一部のアラビア文字など)をデザインしていると、このデフォルトの領域では文字の上部が切れて表示されてしまうことがあります。そのような場合に、このPreview Ascenderパラメータの値をより大きな数値(例: 1200)に設定することで、プレビューエリアが拡大され、グリフ全体が正しく表示されるようになります。
Preview Descender(プレビュー用ディセンダーハイト)
値の型: 浮動小数点数
機能:
Preview Ascenderと同様に、Glyphsアプリ内のプレビュー表示における、プレビュー用の仮想的なディセンダーラインの高さ(ベースラインからプレビュー領域の下端までの距離)をフォントユニット単位で設定するマスターパラメータです。
このパラメータはPreview Ascenderと対になる設定で、編集ビューの下部やプレビューパネルの表示スケールを調整するためのものです。最終的に書き出されるフォントファイルには一切影響を与えません。
ディセンダーが非常に深いグリフ(例: g, yにスワッシュが付いた文字など)をデザインしていると、デフォルトのプレビュー領域では文字の下部が切れてしまうことがあります。そのような場合に、このPreview Descenderの値をより大きな負の数値(例: -400)に設定することで、プレビューエリアが下方向に拡大され、グリフ全体が正しく表示されるようになります。
このPreview Descenderが設定されていない場合、プレビュー領域の下端はまずwinDescentカスタムパラメータの値が参照されます(※原文のwinAscentと記載されているが誤記の可能性あり)。winDescentが存在しない場合は、「フォント情報」→「マスター」タブで設定されたディセンダーの値が使用されます。
Propagate Anchors(アンカーを自動複製)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
複合グリフ(コンポーネントで構成されるグリフ)において、topやbottomといったアンカーの自動複製機能を有効または無効にします。
Glyphsでは、例えばAグリフにtopアンカーが設定されている場合、そのAをベースにした複合グリフ(例: Aacute)を作成すると、AのtopアンカーがAacuteにも自動的に引き継がれます。これにより、Aacute自体に手動でアンカーを再配置しなくても、ダイアクリティカルマーク(例: acutecomb)を正しい位置に配置するためのmarkフィーチャー(マークのベースへの配置)やmkmk(マークのマークへの配置)が自動的に機能します。このアンカーが自動で引き継がれる挙動が、アンカーの自動複製(Propagate Anchors)機能です。
このパラメータは、デフォルトで有効(チェックがオン)になっています。この機能が有効な場合、コンポーネントのベースグリフに含まれるtopやbottomアンカーは、複合グリフ側にそのまま引き継がれます。 ただし、複合グリフ自体に同じ名前のアンカーがすでに手動で配置されている場合は、そちらが優先され、ベースグリフのアンカーは引き継がれません。
もし特定の複合グリフに対して、mark(マークのベースへの配置)やmkmk(マークのマークへの配置)フィーチャーのルールが自動生成されるのを抑制したい場合は、このパラメータをオフに設定します。そうするとアンカーの自動複製は行われなくなります。複合グリフにmarkフィーチャーなどを機能させたい場合は、すべてのアンカーを手動で配置する必要があります。これは、手動でより複雑な配置ルールを書きたい場合など、高度な制御を必要とする特殊なケースで使用されます。
Reencode Glyphs(グリフを再エンコード)
値の型: リスト
機能:
書き出し時に、指定したグリフに特定のUnicode値(符号位置)を割り当て直します。
指定したUnicode値が、すでに別のグリフに割り当てられている場合、その別のグリフのUnicode値は削除されます。 ただし、製造名(Production Name)などはそのまま維持されます。
使用例:
グリフ名=Unicode値 のペアをリストで指定します。
1. 単一のUnicode値を割り当てる
グリフ名=XXXX
- 例:
- smiley=E100 (smileyグリフに、私用領域のU+E100を割り当てる)
- logo=E101
2. 複数のUnicode値を割り当てる
グリフ名=XXXX,YYYY
カンマ(,)で区切って複数のUnicode値を指定できます。
- 例:
- hyphen=002D,2010 (hyphenグリフに、U+002DとU+2010の両方を割り当てる)
3. Unicode値を削除する
グリフ名=
等号(=)の後に何も記述しないと、そのグリフのUnicode値が削除されます。これは、本来Unicode値を持つべきではない合字(リガチャ)などに、誤ってUnicode値が割り当てられている場合に便利です。
- 例:
- f_f_i= (f_f_iグリフのUnicode値を削除する)
- f_f_j=
Remove Classes(クラスを除去)
値の型: リスト
機能:
フォントの書き出し時に、指定したOpenTypeクラスを最終的なフォントファイルから除外します。
このパラメータは、主にフォントをサブセット化(一部のグリフのみを書き出す)する際に、不要になったクラスをクリーンアップする目的で使用されます。
例えば、Remove Glyphsパラメータを使ってキリル文字をすべて削除したとします。しかし、「フォント情報」→「フィーチャー」タブで手動で定義したキリル文字用のクラス(例: @cyrillic_caps)は、そのままではフォント内に残ってしまいます。このような場合に、このRemove Classesパラメータを使って不要になった手動クラスを指定することで、フォントファイルをよりクリーンな状態に保つことができます。
Remove Features(フィーチャーを除去)
値の型: リスト
機能:
フォントの書き出し時に、指定したOpenTypeフィーチャーを最終的なフォントファイルから除外します。
Glyphsは、グリフ名の接尾辞(サフィックス)を認識して、多くのフィーチャーを自動で生成します(例: c_s_tグリフがあればcpspフィーチャー、A.smcpがあればsmcpフィーチャー)。しかし、これが意図しない挙動である場合、このパラメータを使って特定の自動生成フィーチャーを無効にすることができます。また、手動で記述したフィーチャーを、特定のインスタンスでのみ無効にしたい場合にも使用します。
自動生成されるフィーチャーは、そのフィーチャーをトリガーするグリフがフォント内からすべてなくなった場合(例: Remove Glyphsパラメータで削除された場合など)は、書き出し時に自動的に削除されます。このRemove Featuresパラメータは、トリガーとなるグリフは存在しているが、フィーチャーの機能自体を意図的に無効化したい場合に使用します。
Remove Glyphs(グリフを除去)
値の型: リスト
機能:
フォントの書き出し時に、リストに記載された条件に一致するグリフを最終的なフォントファイルから除外します。これは、サブセットフォント(特定の文字セットのみを含むフォント)を作成するための非常に強力で柔軟な機能です。
このパラメータでグリフが削除されると、自動生成されるOpenTypeフィーチャーもその変更を反映します。例えば、すべてのスモールキャップスグリフ (*.smcp) を削除すれば、smcpやc2scフィーチャーは自動的に生成されなくなります。
使用例:
値のフィールドに、1行につき1つの条件を入力します。複数の条件を組み合わせることで、複雑なサブセット化が可能です。
1. グリフ名による指定
- 直接指定:
フォントビューに表示されるグリフ名をそのまま入力します。- 例: A.alt, Eng
- ヒント: 複数のグリフを選択し、コンテキストメニューから「グリフ名をコピー」→「改行区切り」を選ぶと、リストを簡単に作成できます。
- ワイルドカード (*) による指定:
アスタリスク (*) を使って、名前に特定のパターンを持つグリフをまとめて指定します。- 例:
- *ogonek: Aogonek, aogonekなど、ogonekで終わるすべてのグリフ。
- K*: K, Kcommaaccent, K.ss01など、Kで始まるすべてのグリフ。
- H*.ss01: H.ss01, Hbar.ss01など、Hで始まり.ss01で終わるすべてのグリフ。
- 例:
2. プロパティによる動的指定
プロパティ名=値 の構文を使って、グリフの持つさまざまな情報に基づいて動的にグリフを指定します。
プロパティ | 説明 | 使用例 |
name | グリフ名。ワイルドカード使用可。上記のグリフ名による指定と同じです。 | name=*.ss01 |
unicode | グリフの最初のUnicode値。ワイルドカード使用可。 | unicode=03* (U+0300〜U+03FFのグリフを削除) |
note | グリフノートの内容。ワイルドカード使用可。 | note=*TODO* (ノートに”TODO”を含むグリフを削除) |
script | グリフに割り当てられた文字体系。大文字・小文字を区別します。 | script=thai (タイ文字を削除) |
category | グリフ情報パネルに表示されるカテゴリ(グループ)。 | category=Symbol (Symbolカテゴリのグリフを削除) |
subCategory | グリフ情報パネルに表示されるサブカテゴリ。 | subCategory=Lowercase (小文字グリフを削除) |
production | 書き出し時の製品用グリフ名。ワイルドカード使用可。 | production=uni0* |
leftMetricsKey | 左サイドベアリングのメトリクスキー。ワイルドカード使用可。 | leftMetricsKey==H |
rightMetricsKey | 右サイドベアリングのメトリクスキー。ワイルドカード使用可。 | rightMetricsKey==H |
widthMetricsKey | 幅のメトリクスキー。ワイルドカード使用可。 | widthMetricsKey=*.tf (テーブル用数字と幅が同期しているグリフを削除) |
leftKerningGroup | 左カーニンググループ名。 | leftKerningGroup=A |
rightKerningGroup | 右カーニンググループ名。 | rightKerningGroup=V |
colorIndex | カラーレイヤーに設定されたカラーパレットのインデックス。 | colorIndex=2 (パレットの2番目の色を持つレイヤーを削除) |
countOfLayers | グリフが持つレイヤーの総数。 | countOfLayers=4 (4つのレイヤーを持つグリフを削除) |
mastersCompatible | マスター間の補間互換性の有無 (1=互換, 0=非互換)。 | mastersCompatible=0 (互換性のないグリフを削除) |
export | グリフの書き出し設定 (1=書き出し, 0=書き出さない)。 | export=0 (書き出し対象外のグリフを削除) |
isAnyColorGlyph | いずれかのカラーグリフ形式かどうか (1=はい, 0=いいえ)。 | isAnyColorGlyph=1 (すべてのカラーグリフを削除) |
isAppleColorGlyph | Appleのsbix形式のカラーグリフかどうか (1=はい, 0=いいえ)。 | isAppleColorGlyph=1 |
hasSpecialLayers | ブラケットまたはブレースレイヤーの有無 (1=あり, 0=なし)。 | hasSpecialLayers=1 (特殊レイヤーを持つグリフを削除) |
Remove post names for webfonts(ウェブフォント向けにpost名を除去)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
Webフォント(.woff, .woff2)を書き出す際に、グリフ名情報をフォントファイルから削除します。
通常のデスクトップフォントには、各グリフを識別するための名前(例: A, g, acutecomb)が含まれています。しかし、Webフォントがブラウザで表示される際には、文字は主にUnicode値によってマッピングされるため、これらのグリフ名は必ずしも必要ではありません。
このパラメータを有効にすると、書き出しプロセス中にこれらのグリフ名がフォントファイルから取り除かれます。これにより、Webフォントのファイルサイズをさらに削減することができ、ウェブサイトの読み込み速度の向上に貢献します。
Remove Prefixes(プレフィックスを除去)
値の型: リスト
機能:
「フォント情報」→「フィーチャー」タブの「プレフィックス」セクションで定義されたOpenTypeフィーチャーのプレフィックス(Prefix)を、リストで指定して書き出しから除外します。
OpenTypeフィーチャーのプレフィックスは、複数のフィーチャーで共有されるルックアップ(Lookup)などをまとめて定義しておくための便利なセクションです。このパラメータを使用すると、特定のインスタンスを書き出す際に、指定したプレフィックスセクションのコードをまるごと無視させることができます。これにより、プレフィックス内のコードはコンパイルされず、最終的なフォントファイルには含まれなくなります。
Rename Glyphs(グリフ名を変更)
値の型: リスト
機能:
フォントの書き出し時に、指定した2つのグリフの名前を互いに入れ替えます。
この入れ替え処理に伴い、Glyphsは以下の関連情報を自動的に更新します。
- 複合グリフ: 入れ替え対象のグリフをコンポーネントとして使用しているグリフは、新しいグリフを参照するように更新されます。
- OpenTypeフィーチャー: 必要に応じて、自動生成されるフィーチャーコードが更新されます。
- 書き出し設定: 2つのグリフの「出力時に含める」設定(チェックボックスの状態)も入れ替わります。
使用例:
元の名前=新しい名前 の形式で、名前のペアをリストで指定します。
g.alt=g
上記の例では、単にg.altの名前がgに変わるだけではありません。以下のように、2つのグリフが完全に入れ替わります。
- 元々のg.altグリフ: 書き出し時には、gという名前で書き出されます。
- 元々のgグリフ: 書き出し時には、g.altという名前で書き出されます。
つまり、gとg.altの中身がそっくり入れ替わる、という挙動になります。
このパラメータは、デフォルトのグリフを異体字に差し替えて書き出す、といった場合に非常に便利です。しかし、「出力時に含める」のオンオフ設定も入れ替わる点に注意が必要です。例えば、元々gは書き出し対象(チェックオン)、g.altは書き出し対象外(チェックオフ)だった場合、このパラメータを適用すると、書き出されるg(中身は元のg.alt)は書き出し対象外に、書き出されるg.alt(中身は元のg)は書き出し対象になってしまいます。
入れ替え後にどちらか一方のグリフを確実に書き出したい、または書き出したくない場合は、Export Glyphsパラメータなどを併用して、書き出すグリフを明示的に制御することが推奨されます。
Replace Class(クラスを置き換え)
値の型: 文字列
機能:
手動で定義された既存のOpenTypeクラスの内容を、指定したコードで完全に置き換えます。
この機能は、フォントファイル全体の設定は変更せずに、特定のインスタンスだけでクラスの内容を柔軟に変更したい場合に役立ちます。
このパラメータは、「フォント情報」→「フィーチャー」タブに、指定したクラス名が既に存在する場合にのみ機能します。存在しないクラス名を指定しても、新しいクラスは作成されません。(新しいクラスを追加したい場合はAdd Classパラメータを使用します。)また、このパラメータが必要になるのは、ユーザーが手動で作成したクラスの場合のみです。Glyphsが自動で生成するクラス(カーニング用の@MMK_クラスなど)は、グリフの構成が変更されれば書き出し時に自動で更新されるため、このパラメータで置き換える必要は通常ありません。
Replace Classパラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開き、設定を簡単に行えます。
- クラス名の設定:
ダイアログの上段の入力欄に、置き換えたいクラスの名前(例: vowels)をリスト選択または手動で入力します。 - クラスコードの記述:
ダイアログの下段の入力欄に、新しいクラスコードを記述(クラスに含めるグリフ名をスペースで区切りで記述)します。 - 完了:
OKをクリックしてダイアログを閉じると、設定内容が クラス名; コード というテキスト形式で自動的に入力されます。
使用例:
OpenTypeクラスとしてすでに @vowels というクラスが a e i o u で定義されているとします。これを、特定のインスタンスでのみ a e i o u y に変更したい場合、値のフィールドが以下のような記述になるように設定します。
vowels;a e i o u y
Replace Feature(フィーチャーを置き換え)
値の型: 文字列
機能:
既存のOpenTypeフィーチャーの内容を、指定したコードで完全に置き換えます。
最初に4文字のフィーチャー名(ligaなど)、次にセミコロン(;)、その後に新しいフィーチャーコードを記述します。
この機能は、フォントファイル全体の設定は変更せずに、特定のインスタンスだけでフィーチャーの挙動を根本的に変更したい場合に非常に便利です。例えば、特定のウェイトでは合字のルールを変更したり、特定のインスタンスでは文脈依存のルールを完全に別のものに差し替えたりすることが可能です。
このパラメータは、指定したフィーチャータグが「フィーチャー」タブに既に存在する場合にのみ機能します。存在しないフィーチャータグを指定しても、新しいフィーチャーは作成されません。(新しいフィーチャーを追加したい場合はAdd Featureパラメータを使用します。)
Replace Featureパラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開き、設定を簡単に行えます。
- クラス名の設定:
ダイアログの上段の入力欄に、置き換えたいフィーチャーの名前(例: dlig)をリスト選択または手動で入力します。 - クラスコードの記述:
ダイアログの下段の入力欄に、新しいフィーチャーコードを記述します。 - 完了:
OKをクリックしてダイアログを閉じると、設定内容が フィーチャー名;コード というテキスト形式で自動的に入力されます。
使用例:
「フォント情報」にdlig(任意合字)フィーチャーが定義されているとします。これを、特定のインスタンスでのみ、より限定的な内容に差し替えたい場合、値のフィールドが以下のような記述になるように設定します。
dlig;sub c t by c_t
Replace Prefix(プレフィックスを置き換え)
値の型: 文字列
機能:
OpenTypeフィーチャーのプレフィックスの内容を、指定したコードで完全に置き換えます。
値は、「フィーチャー」に入力されているのと完全に一致するプレフィックス名で始まり、次にセミコロン(;)、その後に置き換え後のコードを記述します。
このパラメータは、指定したプレフィックス名が既に存在する場合にのみ機能します。存在しないプレフィックス名を指定しても、新しいプレフィックスは作成されません。(新しいプレフィックスを追加したい場合はAdd Prefixパラメータを使用します。)
Replace Prefixパラメータを追加すると、値のフィールドに「クリックして値を編集」と表示されます。これをクリックすると専用の編集ダイアログが開き、設定を簡単に行えます。
- クラス名の設定:
ダイアログの上段の入力欄に、置き換えたいプレフィックスの名前(「フィーチャー」に入力されているのと完全に一致するプレフィックス名)をリスト選択または手動で入力します。 - クラスコードの記述:
ダイアログの下段の入力欄に、新しいプレフィックスコードを記述します。 - 完了:
OKをクリックしてダイアログを閉じると、設定内容が プレフィックス名;コード というテキスト形式で自動的に入力されます。
使用例:
「フォント情報」のプレフィックスにMyLookupsという名前で複数のルックアップが定義されているとします。これを、特定のインスタンスでのみ全く別のルックアップ定義に差し替えたい場合、値のフィールドが以下のような記述になるように設定します。
MyLookups;lookup MyNewLookup { sub a by a.alt; };
ROS(ROS)
値の型: 文字列
機能:
CIDキー方式のフォント(主に日中韓などの大規模文字セットで使用されるcmapテーブルを持つフォント)に対して、文字コレクションを識別するためのROS情報 (Registry, Ordering, Supplement) を設定します。
ROSは、以下の3つの要素をハイフンで連結した識別子です。
- Registry (レジストリ):
文字コレクションの発行者(通常はAdobe)を識別します。 - Ordering (オーダリング):
特定の順序で並べられた文字コレクション(例: 日本語、簡体字中国語など)を識別します。 - Supplement (サプリメント):
ベースとなる文字コレクションに対する追加・変更のバージョン番号を示します。番号が大きいほど、より多くの文字が含まれます。
この3つの組み合わせにより、フォントがどの文字セットのどのバージョンに基づいているかが一意に定義されます。これは、プリンターなどのPostScript環境が、フォントデータを正しく解釈するために不可欠な情報です。
現在、GlyphsのROS設定では、以下の値が利用可能です。
- Adobe-CNS1-6
- Adobe-GB1-5
- Adobe-Japan1-3
- Adobe-Japan1-3+
- Adobe-Japan1-4
- Adobe-Japan1-5
- Adobe-Japan1-6
- Adobe-Japan1-7
- Adobe-Korea1-2
- Adobe-KR-1
- Adobe-KR-2
- Adobe-KR-3
- Adobe-KR-4
- Adobe-KR-5
- Adobe-KR-6
- Adobe-KR-7
- Adobe-KR-8
- Adobe-KR-9
- Adobe-ldentity-0
この設定は「Adobeの標準仕様に従うか、それとも独自の仕様でフォントを構築するか」を決定する重要なスイッチの役割を果たします。
Adobe-Japan1-6 などを選択した場合、Glyphsは、Adobeが提供する標準のCMap(文字コードからCIDへのマッピング情報)とGSUB(グリフ置換情報)リソースをフォントに組み込みます。これにより、Adobeが定義した標準的な縦書きなどの機能が実現されます。
Adobe-Identity-0 を選択した場合、GlyphsはAdobeの標準リソースを使用せず、ユーザーが「フォント情報」→「フィーチャー」タブで独自に定義したGSUBテーブル(OpenTypeフィーチャー)をフォントに組み込みます。独自の縦書きグリフやフィーチャーを実装したい場合に選択します。
sampleTexts(サンプルテキスト)
機能:
フォントのサンプルテキストを設定します。これはOpenTypeのnameテーブルにおけるID 19 (Sample text) に対応します。
フォント名そのものでもよいですし、デザイナーがそのフォントを最も良く見せるサンプルとして考える、任意のテキストでも構いません。このパラメータで設定したテキストは、AppleのFont Bookなどのフォント管理アプリケーションで、そのフォントがサンプルビュー(またはカスタムプレビュー)で選択された際に表示されます。
Save as TrueType(TrueTypeとして保存)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
このパラメータを有効にすると、そのインスタンスは「ファイル」→「出力…」ダイアログでの設定を無視し、強制的にTrueType形式(.ttf)で書き出されます。
TrueType形式で書き出したいインスタンスにこのパラメータを設定しておけば、書き出しダイアログで「.otf」を選択したとしても、そのインスタンスだけは自動的に.ttfとして書き出されるため、形式ごとに複数回書き出し作業を行う手間が省けます。
SBIX to SVG(SBIXをSVGへ)
値の型: 整数
機能:
Appleのカラーフォント形式であるsbix用に用意したビットマップ画像を、もう一つのカラーフォント形式であるSVGテーブルにも同時に書き出します。
カラーフォントには複数の形式が存在し、それぞれ対応するプラットフォームやアプリケーションが異なります。
- sbix: ビットマップ画像ベース。主にAppleのOSやブラウザでサポート。
- SVG: ベクターとビットマップの両方をサポート。Adobe製品やFirefoxなどでサポート。
このSBIX to SVGパラメータを使用すると、sbix用に作成したビットマップ画像データを、SVGテーブル内にもビットマップ画像として複製することができます。これにより、1つのフォントファイルに2つの形式のカラー情報を共存させることができ、より多くの環境でカラー表示が可能になるため、フォントの互換性を大幅に向上させることができます。
値のフィールドには、sbix画像の解像度(DPI/PPI)を整数で入力します(例: 144)。この値は、UPM(フォントの基本解像度)に対して画像がどれくらいの密度で描画されるかを指定するものです。
sbixとSVGの両方ではなく、SVGテーブルだけを書き出したい場合は、以下の2つのパラメータを組み合わせます。
- SBIX to SVG パラメータを追加し、解像度を設定する。
- Export sbix Tableパラメータを追加し、そのチェックボックスをオフにする。
これにより、sbixテーブルの書き出しは抑制され、sbix用のビットマップを流用したSVGテーブルのみがフォントに含まれるようになります。
Scale to UPM(UPM変更(デザイン拡大縮小))
値の型: 整数
機能:
フォント全体を、指定したUPM (Units Per Em) の値に合わせて拡大・縮小します。
値のフィールドに、書き出したいターゲットのUPM値を整数で入力(例: 2048)します。
UPMは、フォントデザインの基準となる仮想的な正方形のサイズ(解像度)です。Glyphsのデフォルトは1000ですが、書き出し先のフォーマットや要件によっては、異なるUPMが必要になる場合があります。このパラメータを設定すると、Glyphsは書き出し時に、すべてのアウトライン座標、メトリクス値(アセンダー、ディセンダー、サイドベアリングなど)、カーニング値などを、指定されたUPMに合わせて自動的に再計算します。
TrueTypeフォントでは、慣例的にUPMを2のべき乗(例: 1024, 2048、または16から16,384の間の2のべき乗)に設定することが推奨されています。このパラメータを使えば、UPM 1000でデザインしたフォントを、TrueType形式に最適な2048 UPMに簡単に変換して書き出すことができます。あるいは、デザイナーが制作の都合上、デフォルトの1000以外のUPM(例: 2000)でデザインを進めている場合に、最終的な製品版としてUPM 1000のフォントを書き出す、といったスケール調整にも使用できます。
shoulderHeight(ショルダーハイト)
値の型: 整数
機能:
主に中東系(アラビア文字、ヘブライ文字など)、南アジア系、東南アジア系のスクリプトで使用される、特徴的な高さを示すための垂直メトリクス値を設定します。
このパラメータが設定されたマスターにおいて、対象となるスクリプト(例: アラビア文字)のグリフを編集ビューで開くと、デフォルトのエックスハイトラインの代わりに、shoulderHeightで設定した高さに専用のメトリクスラインが表示されるようになります。これにより、デザインの一貫性を視覚的に確認しやすくなります。PostScriptヒンティングで使用されるアライメントゾーンを自動生成する際にも、GlyphsのアルゴリズムはこのshoulderHeightの値を考慮します。
smallCapHeight(スモールキャップハイト)
値の型: 整数
機能:
スモールキャップス(Small Caps)のデザイン基準となる高さを定義するための、専用の垂直メトリクス値を設定します。
このパラメータが設定されたマスターにおいて、スモールキャップスグリフ(例: A.sc, a.sc)を編集ビューで開くと、デフォルトのエックスハイトラインの代わりに、smallCapHeightで設定した高さに専用のメトリクスラインが表示されるようになります。これにより、すべてのスモールキャップスグリフの高さを視覚的に揃えやすくなり、デザインの一貫性を保つのに役立ちます。PostScriptヒンティングで使用されるアライメントゾーンを自動生成する際にも、GlyphsのアルゴリズムはこのsmallCapHeightの値を考慮します。
strikeoutPosition(打ち消し線の高さ)
値の型: 整数
機能:
テキストに引かれる打ち消し線(strikethrough / strikeout)の上辺の位置を、ベースラインからの距離で設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるyStrikeoutPositionフィールドに対応します。
正の値はベースラインより上の距離、負の値はベースラインより下の距離を表します。
このパラメータは、「打ち消し線」スタイルが適用された際に、線が描画される垂直位置をフォント側から指定するためのものです。一般的には、emダッシュ (emdash) の中心あたりに合わせることが提案されています。ただし、打ち消し線の位置はフォントの可読性を損なわないように配慮する必要があります。特に、大文字のHやE、小文字のtなどのクロスバー(横棒)と重ならないように、位置を慎重に調整することが重要です。
strikeoutSize(打ち消し線の太さ)
値の型: 整数
機能:
テキストに引かれる打ち消し線(strikethrough / strikeout)の太さを、フォントユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるyStrikeoutSizeフィールドに対応します。
このパラメータは、前項のstrikeoutPosition(打ち消し線の高さ)と対になる設定です。アプリケーションが打ち消し線を描画する際に、この値が線の太さとして参照されます。フォントデザインの一貫性を保つため、この値は一般的に下線 (underlineThickness) の太さおよびそのフォントのemダッシュ (emdash) の太さと一致させることが推奨されます。
Style Name as STAT entry(STATテーブル用スタイル名)
値の型: 文字列
機能:
バリアブルフォントのSTAT (Style Attributes) テーブルにおいて、そのインスタンスのスタイル名を、特定の1つの軸に対する表示名として定義します。
値のフィールドに、そのスタイル名が対応する軸の4文字のタグ(例: wght, wdth)を入力します。
STATテーブルは、バリアブルフォントの各インスタンス(名前付きの位置)が、デザインスペース内のどの軸のどの位置にあるかを定義し、アプリケーションに伝えます。これにより、アプリケーションは「ウェイト: Light」「幅: Condensed」といったスタイル名を正しく表示できます。通常、STATテーブルの各項目は、軸ごとに個別に設定されます(例: wght軸のLight、wdth軸のCondensedなど)。このStyle Name as STAT entryパラメータは、インスタントのスタイル名そのもの(例: Light)が、特定の1つの軸の値だけを表していることを明示するためのものです。
このパラメータは、以下の条件の両方を満たすインスタンスにのみ使用します。
- ある1つの軸においては、標準(Normal/Regular)ではない位置にある。
- それ以外のすべての軸においては、標準(Normal/Regular)の位置にある。
これは、STATテーブルにおいて、標準の位置(例: Weight=Regular, Width=Normal)の名前は「省略可能(Elidable)」とされ、通常はスタイル名に現れないためです。
使用例:
(Lightインスタンスの場合)
あるバリアブルフォントに、Weight (wght) 軸とWidth (wdth) 軸があるとします。
- Lightインスタンスの位置:
- wght軸: 300 (Regularではない → 非標準)
- wdth軸: 100 (Normalである → 標準)
このLightインスタンスは、wght軸上でのみ非標準であり、他の軸(この場合はwdth軸)では標準です。したがって、この条件に合致します。
この場合は、Lightインスタンスのカスタムパラメータに Style Name as STAT entry を追加し、値に wght と入力します。これにより、STATテーブルには「”Light”という名前は、wght軸上の値を表す表示名である」という情報が書き込まれ、アプリケーションがスタイル名を正しく解釈できるようになります。
一方で、「Light Condensed」のようなインスタンスは、wght軸とwdth軸の両方で非標準であるため、このパラメータの対象にはなりません。
styleMapFamilyNames(スタイルマップのファミリー名)
機能:
特定のインスタンス群を、スタイルリンクのための小さなファミリーグループとしてまとめるための、専用のファミリー名を設定します。
このパラメータは、RIBBI(Regular, Italic, Bold, Bold Italic) と呼ばれる、OSレベルの基本的なスタイルリンク機能のために使用されます。この機能により、アプリケーションの「B」(ボールド)や「I」(イタリック)ボタンが正しく機能します。
通常、一つのフォントファミリー全体で、このRIBBIの4スタイルが1セットとして扱われます。しかし、より大きなフォントファミリー(例: 多数のウェイトや字幅を持つスーパーファミリー)の場合、その中に複数のRIBBIセット、つまり「サブファミリー」を作成したい場合があります。
使用例:
MyFontという大きなファミリーの中に、「通常幅」と「コンデンス(長体)幅」の2つのサブファミリーを作りたいとします。
- 通常幅のインスタンス群:
- MyFont Regular
- MyFont Italic
- MyFont Bold
- MyFont Bold Italic
- これらは、通常のファミリー名 (MyFont) でリンクされます。
- コンデンス幅のインスタンス群:
- MyFont Condensed
- MyFont Condensed Italic
- MyFont Condensed Bold
- MyFont Condensed Bold Italic
- これらのインスタンスにstyleMapFamilyNameを追加し、値にMyFont Condensedと設定します。
このように設定すると、MyFont Condensedという名前で、独立したRIBBIのスタイルリンクグループが形成されます。アプリケーションで「MyFont Condensed」を選択した状態で「B」ボタンを押すと、「MyFont Condensed Bold」に切り替わる、といった挙動が実現できます。
このパラメータと、「フォント情報」→「出力スタイル」タブの「スタイルリンク」フィールドを組み合わせることで、Glyphsは各インスタンスを正しくリンクさせます。これにより、大規模なフォントファミリー内でも、直感的で正確なスタイル操作をユーザーに提供することが可能になります。
styleMapStyleNames(スタイルマップのスタイル名)
機能:
styleMapFamilyNameパラメータで設定された、アプリケーション内でのスタイルリンク制御のための仮想ファミリー定義において、特定の言語環境で表示されるローカライズ(翻訳)されたサブファミリー名(スタイル名)を設定します。これはOpenTypeのnameテーブルにおけるID 2 (Font Subfamily name) に対応します。
このパラメータは、styleMapFamilyNameとセットで使用することを前提としています。styleMapFamilyNameが大きなフォントファミリー内に「サブファミリー」を作成するのに対し、このstyleMapStyleNameは、そのサブファミリー内のスタイル名を設定する役割を担います。
styleNames(翻訳スタイル名)
機能:
特定の言語環境に対して、ローカライズ(翻訳)されたサブファミリー名(スタイル名)を設定します。これはOpenTypeのnameテーブルにおけるID 2 (Font Subfamily name) に対応します。
フォントサブファミリー名(name ID 2)は、フォントファミリー名(name ID 1)と組み合わせて、同じファミリーグループ内のフォントを区別するために使用されます。この名前は、Bold(ウェイト)やItalic(傾き)といった、スタイルのバリエーションを示すために使われます。
このstyleNamesパラメータは、主に特定の言語環境に対して、ローカライズ(翻訳)されたスタイル名を表示させたい場合に使用します。
subscriptXOffset(下付き文字の横方向オフセット)
値の型: 整数
機能:
アプリケーションが下付き文字をシミュレート(自動生成)する際の、水平方向のオフセット(字送り方向のズレ)を設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるySubscriptXOffsetフィールドに対応します。
このパラメータは、フォント内に専用の下付き文字グリフ(例: one.subs, two.subs)が存在しない場合に、アプリケーションが通常のグリフを縮小・移動して下付き文字を「シミュレート」する際の挙動を制御するためのものです。
下付き文字の原点が前の文字の送り幅の終点からどれだけ水平にずれるべきかの値を指定します。
- 直立したフォント(アップライト体)の場合:
通常、この値は0に設定します。特別なオフセットは不要です。 - 傾いたフォント(イタリック体やスラント(斜体))の場合:
フォントに傾きがある場合、縮小されたグリフをそのまま配置すると、視覚的に左に寄りすぎて見えてしまいます。このパラメータで正の値を設定することで、下付き文字全体を右にずらし、傾きを補正して視覚的に適切な位置に配置させることができます。
この設定は、subsフィーチャーなどによって専用グリフに置換される場合には影響を与えません。あくまで、アプリケーションによるシミュレーション(フォールバック処理)のための設定です。
subscriptXSize(下付き文字の横方向拡大率)
値の型: 整数
機能:
アプリケーションが下付き文字をシミュレート(自動生成)する際の、水平方向のemサイズ(想定される幅)をフォントユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるySubscriptXSizeフィールドに対応します。
このパラメータは、フォント内に専用の下付き文字グリフが存在しない場合に、アプリケーションが通常のグリフを縮小して下付き文字を「シミュレート」する際の、横方向のサイズを制御するためのものです。
値は、シミュレートされる下付き文字の「emサイズ(基準となるサイズ)」、つまり名目上の幅を指定します。アプリケーションはこの値とフォント自体のemサイズを比較して縮小率を計算します。もし、下付き文字にしたいグリフの種類(例: 数字とそれ以外の文字)によって推奨されるサイズが異なる場合は、数字用のサイズを基準にこの値を設定することが推奨されています。
使用例:
- フォントのemサイズ: 2048
- このパラメータ (subscriptXSize) の値: 205
この場合、アプリケーションは下付き文字を生成する際に、通常のグリフを水平方向に約10%(205 / 2048)のサイズに縮小します。
この値と、subscriptYSize(垂直方向の拡大率)、subscriptXOffset(横方向オフセット)、subscriptYOffset(縦方向オフセット)の4つのパラメータを組み合わせることで、フォントデザイナーはシミュレートされる下付き文字の最適なサイズと位置をアプリケーションに伝えることができます。
この設定は、subsフィーチャーなどによって専用グリフに置換される場合には影響を与えません。あくまで、アプリケーションによるシミュレーション(フォールバック処理)のための設定です。
subscriptYOffset(下付き文字の縦方向オフセット)
値の型: 整数
機能:
アプリケーションが下付き文字をシミュレート(自動生成)する際の、垂直方向のオフセット(ベースラインからの移動量)を設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるySubscriptYOffsetフィールドに対応します。
このパラメータは、フォント内に専用の下付き文字グリフが存在しない場合に、アプリケーションが通常のグリフを縮小して下付き文字を「シミュレート」する際の、垂直位置を制御するためのものです。
値は、シミュレートされる下付き文字のベースラインが、元のグリフのベースラインからどれだけ下に移動すべきかを指定します。下付き文字は通常ベースラインより下に配置されるため、この値は正の数で指定することが一般的です。
このパラメータは、subscriptXOffset(横方向オフセット)、subscriptXSize(横方向拡大率)、subscriptYSize(縦方向拡大率)と連携して機能し、フォントデザイナーが意図するシミュレートされた下付き文字の最適なスタイルをアプリケーションに伝える役割を果たします。
この設定は、subsフィーチャーなどによって専用グリフに置換される場合には影響を与えません。あくまで、アプリケーションによるシミュレーション(フォールバック処理)のための設定です。
subscriptYSize(下付き文字の縦方向拡大率)
値の型: 整数
機能:
アプリケーションが下付き文字をシミュレート(自動生成)する際の、垂直方向のスケール値をフォントユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるySubscriptYSizeフィールドに対応します。
詳細については、subscriptXSizeの項目を参照してください。
superscriptXOffset(上付き文字の横方向オフセット)
値の型: 整数
機能:
アプリケーションが上付き文字をシミュレート(自動生成)する際の、水平方向のオフセット(字送り方向のズレ)を設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるySuperscriptXOffsetフィールドに対応します。
このパラメータは、フォント内に専用の上付き文字グリフ(例: one.sups)が存在しない場合に、アプリケーションが通常のグリフを縮小・移動して上付き文字を「シミュレート」する際の挙動を制御するためのものです。
詳細については、subscriptXOffsetの項目を参照してください。
superscriptXSize(上付き文字の横方向拡大率)
値の型: 整数
機能:
アプリケーションが上付き文字をシミュレート(自動生成)する際の、水平方向のemサイズ(想定される幅)をフォントユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるsuperscriptXSizeフィールドに対応します。
詳細については、subscriptXSizeの項目を参照してください。
superscriptYOffset(上付き文字の縦方向オフセット)
値の型: 整数
機能:
アプリケーションが上付き文字をシミュレート(自動生成)する際の、垂直方向のオフセット(ベースラインからの移動量)を設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるsuperscriptYOffsetフィールドに対応します。
詳細については、subscriptYOffsetの項目を参照してください。
superscriptYSize(上付き文字の縦方向拡大率)
値の型: 整数
機能:
アプリケーションが上付き文字をシミュレート(自動生成)する際の、垂直方向のスケール値をフォントユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブル内にあるsuperscriptYSizeフィールドに対応します。
詳細については、subscriptYSize、ならびにsubscriptXSizeの項目を参照してください。
trademarks(商標)
機能:
フォントに関する商標情報を記述します。このテキストは、OpenTypeフォントのnameテーブルにおけるID 7 (Trademark) に対応します。
このフィールドは、フォントに関連する商標(®や™など)についての法的な告知や情報を格納するために使用されます。
- 著作権との違い: Microsoftの仕様書にもある通り、これは著作権(copyright / name ID 0)とは明確に区別されるものです。著作権は作品の創作に関する権利であり、商標はブランドや製品名を保護する権利です。
- 法的な助言: ここに記述する内容は法的な効力を持つ可能性があるため、必要に応じて専門家(弁護士や弁理士)からの助言に基づいた、正確な情報を記載することが推奨されます。
- ローカライズ: 複数の言語にローカライズした商標情報を設定することも可能です。
TrueType Curve Error(TrueTypeカーブエラー)
値の型: 浮動小数点数
機能:
rueTypeフォント(.ttf)を書き出す際に、元の三次ベジェ曲線(PostScript形式)を二次ベジェ曲線(TrueType形式)で近似する際の、最大許容誤差をフォントユニット単位で設定します。
デフォルト値は 0.6 です。このパラメータは、TrueTypeフォントのアウトライン品質とファイルサイズのバランスを調整するための重要な設定です。通常はデフォルト値の0.6で問題ありませんが、ファイルサイズを極限まで切り詰めたいWebフォントなどでは、値を少し大きくして効果を確認することがあります。逆に、曲線の滑らかさを最優先したい場合は、値を小さくすることを検討します。
- 値を大きくする(例: 1.0)
- 効果: より大きな誤差を許容するため、TrueTypeコンバーターはより少ない二次曲線セグメントで元の三次曲線を近似しようとします。
- メリット: アウトラインデータ(glyfテーブル)がシンプルになり、ファイルサイズが削減されます。
- デメリット: 元の曲線からのズレが大きくなるため、アウトラインの再現度が低下する可能性があります。
- 値を小さくする(例: 0.2)
- 効果: より小さな誤差しか許容しないため、TrueTypeコンバーターはより多くの二次曲線セグメントを使って、元の曲線に忠実に近似しようとします。
- メリット: 元の曲線に対する再現度が高まり、アウトラインの品質が向上します。
- デメリット: アウトラインデータが複雑になり、ファイルサイズが増加する傾向があります。
TrueType Keep GlyphOrder(TrueTypeグリフ順を維持)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
TrueTypeフォント(.ttf)を書き出す際に、Glyphsの標準的なグリフ自動並べ替え処理を抑制し、.glyphsファイル内のグリフ順序を可能な限り維持します。
通常、GlyphsはTrueTypeフォントの互換性を最大限に高めるため、書き出し時に先頭のグリフを以下の順序に自動で並べ替えます。
.notdef, NULL, CR, space
- .notdef と space: もしフォント内に存在しなければ、自動的に生成されてこの順序で配置されます。
- NULL と CR (キャリッジリターン): もしフォント内に存在する場合にのみ、この順序に並べ替えられます。
このパラメータを有効にすると、上記の自動並べ替えは行われず、.glyphsファイルで定義されたグリフの順序が維持されます。ただし、.notdefとspaceは、TrueTypeの仕様上常にフォントの先頭(グリフID 0と1)になければならないため、この2つは強制的に先頭に移動されます。
グリフの順序は、一部の古いシステムやソフトウェアでのフォントの挙動に影響を与える可能性があります。自分が何をしているのかを正確に理解している場合にのみ使用してください。 ほとんどの場合、このパラメータに触れる必要はなく、Glyphsのデフォルトの挙動に任せるのが安全です。
TTFAutohint binary path(TrueTypeバイナリーパス)
値の型: 文字列
機能:
TrueTypeフォント(.ttf)の自動ヒンティングを行う際に、Glyphsに内蔵されているTTFAutohintの代わりに、ユーザーが指定した外部のTTFAutohint実行ファイル(バイナリ)を使用するように設定します。
値のフィールドには、使用したいttfautohintの実行ファイルを絶対パスで指定します。
ttfautohintは、TrueTypeフォントに自動でヒンティング情報を付加し、Windows環境などでの低解像度表示を鮮明にするために、広く使われているオープンソースのツールです。Glyphsにはこのツールが内蔵されていますが、ユーザーが特定のバージョンを使い続けたい場合や、Glyphsの内蔵版がまだ最新版に更新されていない場合に最新バージョンを試したい場合などにこのパラメータが役立ちます。
TTFAutohint control instructions(TrueType制御コード)
値の型: 文字列
機能:
TrueTypeフォントの自動ヒンティングツールであるTTFAutohintの挙動を、制御命令(Control Instructions)を使って細かくカスタマイズします。
値のフィールドに、後述の構文に従った制御命令コードを記述します。複雑な命令はテキストエディタなどで記述・管理し、完成したコードをこのフィールドに貼り付けるのが効率的です。
TTFAutohintは、特定のグリフの特定のポイントに対して、特定のサイズ範囲で、どのようなヒンティング処理を行うかを詳細に指示できます。
基本構文: グリフ名 命令 ポイントID [引数] @ [サイズ範囲]
利用可能な命令:
- glyphnames left pointIDs offset
- glyphnames right pointIDs offset
- glyphnames nodir pointIDs
- glyphnames touch pointIDs xshift x yshift y @ PPMs
- glyphnames point pointIDs xshift x yshift y @ PPMs
命令 (省略形) | 説明 | 引数 |
left (l) | 指定したポイントを、左側のステムのエッジとして扱う。 | offset |
right (r) | 指定したポイントを、右側のステムのエッジとして扱う。 | offset |
nodir (n) | 指定したポイントに対して、水平・垂直方向のヒントを適用しない。 | なし |
touch (t) | 指定したポイントを、隣接するポイントに「接触」させる。 | xshift, yshift |
point (p) | ポイントを特定のピクセルグリッドにスナップさせる。 | xshift, yshift |
各要素の説明:
- グリフ名 (glyphnames):
対象となるグリフの名前を、製品用名(production name)で指定します。複数のグリフを指定する場合は、カンマ(,)で区切ります。(例: A,V,W) - ポイントID (pointIDs):
命令を適用したいポイントのインデックス番号を指定します。 - offset:
left/right命令で使用します。エッジからのオフセット量を指定します。省略可能で、デフォルトは0です。 - xshift, yshift:
touch/point命令で使用します。ピクセルグリッド内での微調整量を0.0~1.0の範囲で指定します。片方または両方を指定できます。 - サイズ範囲 (PPMs):
@記号の後に、この命令を適用したいピクセルサイズ(PPM)を指定します。- 単一サイズ: 12
- 範囲: 12-18
- 複数指定: 10, 12-18, 24
- コメント:
行頭にハッシュタグ(#)を付けると、その行はコメントとして無視されます。 - 省略形:
命令は、それぞれの最初の文字で省略できます。(例: right は r と書いてもOK)
コントロールファイルの構文の詳細は、TTFAutohintの公式文書を参照してください。
https://freetype.org/ttfautohint
TTFAutohint options(TTFAutohintオプション)
値の型: 文字列
機能:
TrueTypeフォントの自動ヒンティングツールであるttfautohintの、さまざまなコマンドラインオプションを設定します。これにより、ヒンティングの挙動を詳細にコントロールできます。
ダイアログシートを使用して設定を構成してください。

設定項目:
オプション | 説明 |
有効ピクセルサイズ下限 有効ピクセルサイズ上限 | ヒンティング命令(インストラクション)を最適化する対象となるPPM(pixels per em)の範囲を指定します。この範囲を広く設定すれば、より多くのフォントサイズで表示が最適化されますが、その分フォントに含まれるヒンティング情報が増加し、ファイルサイズが肥大化する可能性があるため注意が必要です。 |
デフォルト文字体系 | OpenTypeフィーチャーに適用される、デフォルトの文字体系(スクリプト)を指定します。 |
フォールバック文字体系 | フォント内のグリフ(文字)がどの文字体系(スクリプト)に属するかをttfautohintが自動で認識・マッピングできない場合に、デフォルトとして適用される標準の文字体系を指定するためのオプションです。これにより、どのスクリプトにも分類できない記号などのグリフがあった場合でも、このオプションで指定した文字体系のヒンティングルールが代わりに適用され、処理から漏れるのを防ぎます。 |
ヒンティング制限 | ヒンティングが完全に無効になるPPM(pixels per em)サイズを指定するオプションです。デフォルト値は200ピクセルで、この値は必ず「有効ピクセルサイズ上限」で設定した値よりも大きく設定する必要があります。「有効ピクセルサイズ上限」の値からこの「ヒンディング制限」で指定した値までのPPMサイズでは、ヒンティングが即座に無効になるのではなく、「有効ピクセルサイズ上限」の値に適用されるヒンティング設定が継続して使用され、「ヒンディング制限」で指定したPPMサイズを超えた時点ではじめて、ヒンティングが完全にオフになります。 |
xハイト増加の上限 | 小さいフォントサイズでの視認性を向上させるため、xハイトの切り上げ処理を制御するオプションです。通常、ttfautohintはxハイトをピクセルグリッドに合わせる際、わずかに切り上げる傾向がありますが、このオプションでPPMサイズの上限(デフォルトは14PPM)を設定すると、その値から6PPMまでの範囲において、xハイトがより積極的に切り上げられるようになります。小さい文字の可読性をさらに高めたい場合にこの値を調整し、逆にxハイトの切り上げを完全に無効にしたい場合は値を0に設定します。 |
xハイト吸着の例外 | 特定のPPM(pixels per em)サイズにおいて、xハイトのピクセルグリッドへの整列(スナッピング)を意図的に無効化するためのオプションです。設定は、スナッピングを解除したいPPMの値をカンマ区切りでリスト形式で指定し、範囲を指定する際はハイフンを使用します。例えば、「8, 10-13, 16」と入力すると、フォントサイズが8、10、11、12、13、16ピクセルの時にxハイトのスナッピングが適用されなくなります。何も指定しない(空欄にする)場合は例外なしとなり、ハイフン(-)のみを入力した場合は、すべてのサイズでスナッピングが無効になります。 |
フォールバックのステム幅 | ヒンティングの基準となる標準文字を持たない文字体系(スクリプト)に対して、水平ステム幅の値を手動で設定するためのオプションです。値は正の整数(フォントユニット)で指定する必要があります。設定されていない場合は、フォントのUPM(emあたりのユニット数)に応じて自動的に決定されるハードコードされたデフォルト値(2048UPMで50ユニット、その他のUPM値では線形にスケールされ、例えば1000UPMなら24ユニット)が使用されます。この機能は主に記号フォントなどで有効ですが、その場合は対象となるスクリプトを定義するために「フォールバック文字体系」オプションも併せて指定する必要があります。 |
サブグリフを調整 | ttfautohintによるオートヒンティング処理の前に、フォントに元々存在するTrueTypeヒンティングを適用するためのオプションです。一部のCJK(日中韓)フォントなどでは、ヒンティングが出力解像度に関係なく、デザインの一部としてサブグリフ(コンポーネント)の位置を移動させたり、大きさを調整したりするために利用されている場合があります。このオプションを有効にすると、まずフォントオリジナルのバイトコードによってグリフ形状が調整され、その調整後の形状に対してttfautohintがヒンティング処理を行います。これにより、既存のヒントによるサブグリフの意図的な配置を維持したままオートヒンティングをかけることができますが、このような特殊なヒンティングを含まないほとんどのフォントでは、このオプションを使用する必要はありません。 |
TTFヒント除去 | すべてのTTヒンティングを無効にします。他のすべてのオプションを上書きするため、テスト目的にのみ使用してください。 |
詳細な情報 | 有効にすると、ttfautohintのバージョンとコマンドライン情報を、フォントのnameテーブルのバージョン文字列(name ID 5)に追加します。このオプションは、「 「オートヒント情報なし」オプションとは相互に排他的です。どちらも設定されていない場合、文字列ttfautohint (vNNN)(NNNはttfAutohintのバージョン)がnameテーブルに追加されます。 |
コンポーネントにヒント処理 | 複合グリフ(複数のコンポーネントで構成されるグリフ)のヒンティング方法を変更する機能です。デフォルトでは、複合トグリフを構成するコンポーネントは個別にヒンティングされますが、このオプションを有効にすると、各コンポーネントのヒントは無視され、複合グリフ全体が直接ヒンティングされるようになります。これによりヒンティング結果が向上する可能性もありますが、通常はそうはならず、むしろバイトコードのサイズが大幅に肥大化するというデメリットになり得ます。また、このオプションを使用すると「.ttfautohint」というゴーストコンポーネントが全てのグリフに追加されます。フォントのcmapテーブルに.ttfautohintのエントリがないため、このコンポーネントは通常は表示されませんが、グリフ一覧などで誤って単独でレンダリングされてしまうと、フォント全体のヒンティングが正常に機能しなくなるという重大な副作用を引き起こす可能性があり、注意が必要です。 |
制限を無視 | ライセンスによって改変が制限されているフォントを処理するための機能です。デフォルトでは、フォントのOS/2テーブル内にあるfsTypeフィールドのビット1がセットされている場合、そのフォントは改変が許可されていないと見なされ、ttfautohintによる処理は拒否されます。しかし、フォントの法的な所有者から改変の許可を得ている場合に限り、このコマンドラインオプションを指定することで制限を無視し、処理を実行することが可能になります。 |
オートヒント情報なし | 有効にすると、ttfautohintのバージョンとコマンドライン情報がフォントのnameテーブルのバージョン文字列(name ID 5)に追加されるのを防ぎます。 |
記号フォント | 記号、ディングバット、数学記号など、ヒンティングの基準となる標準文字(例えばラテンスクリプトにおける’o’など)が含まれていないために通常ttfautohintが処理を拒否するフォントを、強制的にヒンティングするための機能です。標準文字が見つからない文字体系に対して、ttfautohintはそこからステム幅を導き出す代わりに、あらかじめ設定されたデフォルトのステム値を用いて処理を実行します。このオプションは、一般的に「フォールバック文字体系」や「フォールバックのステム幅」といった他のオプションと組み合わせて使用されますが、この方法で生成されたフォントは小さいサイズでのヒンティング品質が低下する可能性があります。 |
ttfa テーブル | 「ttfa table」オプションは、ttfautohintで使用した全てのパラメータ情報を「TTFA」という名前のOpenTypeテーブルとして出力フォントに追加する機能です。これは主にアーカイブ(記録保存)を目的としており、通常のnameテーブル情報には表示されないttfautohintのコントロール命令を含む、フォント生成に用いられた全設定をフォントファイル自体に埋め込むことができます。このTTFAテーブルはあらゆるTrueTypeレンダリングエンジンからは無視されるため、フォントの表示に影響を与えることはありません。将来的には、ttfautohintのフロントエンドがこのテーブルのデータを活用し、一度処理したフォントを後から全く同じパラメータで再処理できるようになることで、設定を保持したまま再編集・再出力を行う「ラウンドトリップ」が実現可能になります。 |
Windows 互換性 | Windows環境でフォントのアウトラインが部分的に切れて表示される(クリッピング)問題に対処するための機能です。このオプションを有効にすると、ttfAutohintはフォントのOS/2テーブルからwinAscentとwinDescentの値を読み取り、その位置に擬似的なブルーゾーンを2つ挿入します。Windowsではこの範囲を超えるグリフ(文字形状)は表示が切り取られてしまうため、この機能はヒンティングによって変形したグリフが範囲内に収まるよう補助する役割を果たします。本来はwinAscentとwinDescentの値を直接調整することが望ましいですが、それが不可能な場合にこのオプションを使用します。さらに、「xHeight Snapping Exceptions」の設定と組み合わせることで、文字の垂直方向への拡大が抑制され、ほとんどのクリッピングを防ぐ効果が期待できます。 |
水平ステム強調 (グレイスケール、GDI Cleartype、DW Cleartype) | 水平ステム(縦線)の幅とブルーゾーンの位置を計算するアルゴリズムを指定し、特定のレンダリング環境に合わせて表示を最適化します。このオプションを有効にすると、ステムの幅と位置が可能な限り整数のピクセル値にスナップ(吸着)されるようになり、高いコントラスト(ステムが白黒はっきり表示される効果)が得られます。ただし、その分、元のグリフ形状からの歪みは大きくなる可能性があります。逆に無効にすると、ステム幅は離散的な値に量子化され、コントラストは若干低下しますが、形状の歪みは少なくなります。例えば、ステム値50, 51, 72, 76, 100は、50, 74, 100(またはそれに類するもの)になります。最適化のターゲットとして、グレイスケール (Android)、GDI ClearType (古いWindowsバージョン、XPなど)、DW ClearType (Windows 7以降) の3つのレンダリング環境を選択できます。 |
ttfautohintの各オプションに関するより詳細な技術情報は、公式サイトのドキュメントを参照してください。
https://freetype.org/ttfautohint/doc/ttfautohint.html
TTFBlueFuzz(TTFBlueFuzz)
値の型: 整数
機能:
TrueTypeフォントのヒンティングにおいて、アライメントゾーンの範囲を上下両方向に拡張します。PostScriptのBlueFuzzパラメータと非常によく似た機能です。
TrueTypeヒンティングでは、アライメントゾーン(ベースライン、x-height、キャップハイトなどの重要な水平領域)を設定し、小さなサイズで表示された際にアウトラインの水平部分がそのゾーンに「スナップ」するように指示します。このTTFBlueFuzzは、そのゾーンに「ファズ(fuzz=あいまいさ、遊び)」を持たせ、範囲を広げる役割をします。
デフォルト値およびフォールバック値は 1 です。このパラメータは、TTFZonesカスタムパラメータを使って手動で定義されたゾーンにのみ効果があります。
TTFDontPreserveDiagonals(TTF斜めステムを維持しない)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
手動で行うTrueTypeヒンティングにおいて、斜めのステムの角度を維持しようとする自動補正機能を無効化します。
デフォルトのTrueTypeヒンティングでは、大文字のAのような斜めのステムを持つグリフをヒンティングすると、たとえ中央のクロスバー(横棒)によってアウトラインが分断されていても、左右の斜めステムが一直線に見えるように、その角度が自動的に補正・維持されます。これは、小さなサイズで表示された際に、ステムがガタガタに見えるのを防ぐための重要な機能です。
このパラメータを有効にすると、この角度を維持するための補正機能が無効になります。技術的には、ヒンティングインストラクションにおける「フリーダムベクターへの射影」という処理が抑制され、よりシンプルなヒンティングデータが生成されます。Webフォントの書き出しなどで、TrueTypeヒンティングのデータをより小さくするのに役立ちます。
TTFFamilyZonesThreshold(TTFFamilyZonesThreshold)
値の型: 整数
機能:
TrueTypeヒンティングにおいて、ファミリーアライメントゾーンが適用されるPPM(Pixels Per Em)サイズの上限(閾値)を設定します。
通常、アライメントゾーン(TTFZones)は各マスターに設定し、そのマスターの形状に最適化されます。一方ファミリーアライメントゾーンは、フォントファミリー全体で共通して使用されるアライメントゾーンです。これは、ファミリー内の異なるウェイト(例: Light, Regular, Bold)やスタイル間で、特に低解像度でのスクリーン表示における垂直方向の一貫性(x-heightやキャップハイトの揃い具合など)を高めるために使用されます。
このTTFFamilyZonesThresholdで指定したPPMサイズまでは、個々のマスターに設定されたゾーンではなく、ファミリー全体で共通のゾーンが優先的に参照されます。指定したPPMサイズを超えると、各マスター固有のゾーンが使われるようになります。
このパラメータを機能させるには、以下の設定が正しく行われている必要があります。
- ファミリーゾーンの定義:
「フォント情報」→「フォント」タブのカスタムパラメータにTTFZonesパラメータを追加して、ファミリー共通のゾーンを定義します。(「マスター」タブではありません) - マスターゾーンの定義:
「フォント情報」→「マスター」タブのカスタムパラメータにも、各マスター用のTTFZonesを定義します。 - ゾーン数の整合性:
ファミリーゾーンで定義したゾーンの数と、各マスターのゾーンで定義したゾーンの数が、必ず同じでなければなりません。 この数が一致していないと、ファミリーゾーンは正しく機能しません。
TTFMinimumDistance(TTF最小距離)
値の型: 浮動小数点数
機能:
TrueTypeフォントにおいて、ヒントが適用されたステムが描画される際の最小の太さをピクセル単位で設定します。
TrueTypeヒンティングは、小さなピクセルサイズでフォントを表示した際に、アウトラインがピクセルグリッドに沿ってきれいに表示されるように調整する技術です。しかし、非常に細いステム(文字の縦線や横線)を持つデザインの場合、計算上の丸め誤差によって、そのステムが細くなりすぎて画面上から消えてしまうことがあります。TTFMinimumDistanceパラメータは、この消失を防ぐためのセーフティネットとして機能します。
デフォルト値は 0.25 です。この場合、どのPPM(Pixels Per Em)サイズで表示されても、ヒントが適用されたステムは最低でも0.25ピクセル分の太さを確保するようになります。これにより、非常に細い部分でもその存在感が失われるのを防ぎ、表示の安定性を高めることができます。
TTFOvershootSuppressionBelowPPM(TTFオーバーシュート押し込み上限PPM)
値の型: 整数
機能:
TrueTypeフォントにおいて、オーバーシュート(ベースラインやx-heightなどからわずかにはみ出した部分)が強制的に平坦化(フラット化)されるPPM(Pixels Per Em)サイズの上限を設定します。
オーバーシュートは、デザインの視覚的なバランスを保つために重要な要素ですが、低解像度のスクリーン表示では、そのわずかなはみ出しが意図しないガタつきに見えることがあります。このパラメータは、その問題を解決するために、指定したPPMサイズまではオーバーシュートを強制的に抑制し、ベースラインやx-height、キャップハイトなどを完全に平らな線として描画させます。指定したPPMサイズを超えると、オーバーシュートは本来の形状で表示されるようになります。
このパラメータは、ユーザーが手動で行うTrueTypeヒンティングにのみ効果があります。 ttfAutohintを使用した自動ヒンティングには適用されません。
TTFStems(TTFステム)
値の型: リスト(ダイアログ)
機能:
手動で行うTrueTypeヒンティング専用の、ステム(線の太さ)定義リストを管理します。このパラメータで定義したステムは、TrueTypeヒンティングツール(I)でヒントを配置する際の基準となります。
値フィールドをクリックすると、ダイアログシートが表示されます。下部のボタンを使って、ステム定義を追加・削除したり、「フォント情報」→「マスター」の水平・垂直ステムフィールドから現在のPostScriptステムをインポート(Get PS Stems)したりできます。
各ステムの定義項目:
各ステムについて、向き、名前、幅を定義できます。メインマスター(または「Get Hints From Master」で指定されたマスター)では、さらにデルタとスコープを設定するためのボタン(デルタ記号と地球儀記号)が表示されます。
- 波矢印(向き):
波矢印のシンボルをクリックして、水平ステム(例: e, f, tのクロスバー)と垂直ステム(例: h, m, nの縦棒)を切り替えます。 - Stem Name(名前):
ステムを識別するためのユニークな任意の名前(例: uc_vstem, lc_hstem)を設定します。TrueTypeヒンティングツール(I)でステムヒントを選択した際(S)に、情報ボックス内のポップアップメニューにこの名前が表示されます。 - Size(幅):
ステムの平均的な太さをフォントユニットで指定します。ヒントが適用された際、この幅に丸められる基準となります。また、TrueTypeヒンティングツール(I)のコンテキストメニューの「「オートヒント」コマンドは、この幅に基づいてステムを識別します。 - Δ(デルタ):
【メインマスター限定】 PPM(ピクセルサイズ)およびインスタンスごとに、ステムが実際に表示されるピクセル上の太さを微調整します。各フィールドをクリックすることで、「変更なし(空白)」「サイズ増加(上矢印)」「サイズ減少(下矢印)」を切り替えられます。デルタは、最初のマスター、または「Get Hints From Master」パラメータで定義されたマスターでのみアクセス可能です。 - 🌐(フィルター(スコープ)):
【メインマスター限定】 このステム定義をどのグリフに適用するかを、論理フィルターで限定します。「グリフ名」「カテゴリ」「サブカテゴリ」「文字体系」といった条件を、AND/OR演算子で組み合わせて複雑なルールを作成できます。➕ボタンでフィルターを追加し、➖ボタンで削除します。➕ボタンをOptionを押しながらクリックすると、AND/OR演算子を追加できます。ここで設定した条件を満たすグリフでのみ、このステム定義が利用可能になります。スコープは、最初のマスター、または「Get Hints From Master」パラメータで定義されたマスターでのみアクセス可能です。
TTFZoneRoundingThreshold(TTFゾーンの四捨五入しきい値)
値の型: 浮動小数点数
機能:
TrueTypeヒンティングにおいて、正のゾーン(ベースラインより上のゾーン)が、ピクセルグリッド上で1ピクセル上に押し上げられやすくなるように、四捨五入の挙動を微調整します。
小さなピクセルサイズでフォントを表示する際、アライメントゾーン(xハイトやキャップハイトなど)の正確な位置は、計算上、小数を含むピクセル値になります(例: 6.45ピクセル)。最終的にどのピクセルラインにスナップするかは、この値の四捨五入によって決まります。
このパラメータは、その四捨五入が行われる前に、すべての正のゾーンの位置に指定した値を加算します。これにより、四捨五入の境界(例: 6.5)にわずかに届かなかった値を「押し上げ」、切り上げさせる確率を高めることができます。特に、「TTFZones」パラメータでxHeightと名付けられたxハイトゾーンには、この値が2倍されて加算されます。これにより、xハイトの高さが他のゾーンに比べて低くなりすぎるのを防ぐよう、より強力な補正がかかります。
このパラメータが設定されていない場合のデフォルト値は 0.09375 です。
具体例:
【前提】
あるフォントサイズで、計算上のゾーン位置が以下の数値だったとします。
- スモールキャップゾーン: 6.45 ピクセル
- xハイト: 5.25 ピクセル
【変更なしの場合】
- スモールキャップゾーン: 6.45 → 6 ピクセルにスナップ
- xハイト: 5.25 → 5 ピクセルにスナップ
【TTFZoneRoundingThresholdに 0.2 を設定した場合】
- スモールキャップゾーン:
- 計算: 6.45 + 0.2 = 6.65
- 結果: 6.65 → 7 ピクセルにスナップ (1ピクセル押し上げられる)
- xハイト:
- 計算: 5.25 + (2 × 0.2) = 5.65
- 結果: 5.65 → 6 ピクセルにスナップ (1ピクセル押し上げられる)
TTFZones(TTFゾーン)
値の型: リスト(ダイアログ)
機能:
手動で行うTrueTypeヒンティング専用の、水平方向のアライメントゾーン(重要な水平線とその周辺領域)のリストを定義します。
値フィールドをクリックすると、ダイアログシートが表示されます。下部のボタンを使って、ステム定義を追加・削除したり、「フォント情報」→「マスター」の水平・垂直ステムフィールドから現在のPostScriptアライメントゾーンをインポート(Get PS Zones)したりできます。
各ゾーンの定義項目:
各ゾーンについて、名前、位置、サイズ、アライメントを定義できます。メインマスター(または「Get Hints From Master」で指定されたマスター)では、さらにデルタとスコープを設定するためのボタン(デルタ記号と地球儀記号)が表示されます。
- Zone Name(名前):
ゾーンを識別するための、人間が読みやすいユニークな名前を付けます(例: xHeight, capHeight, descender)。この名前は、TrueTypeヒンティングツールでアラインメントヒントを選択した際に、情報ボックス内のポップアップメニューに表示され、どのゾーンにスナップさせるかを選択するのに使われます。 - Pos(位置):
ゾーンの基準となる平坦な部分の位置を、フォントユニット単位で指定します。これは、オーバーシュートする形状(例: oの曲線部分)の、平らな部分(例: xの天面)に相当します。PostScriptのアライメントゾーンの概念と似ています。 - Size(サイズ ):
平坦な部分(Position)から、オーバーシュートの最も外側の端までの距離をフォントユニットで指定します。トップゾーンには正の値、ボトムゾーンには負の値を使用します。特定のPPMサイズで、このサイズが半ピクセル未満と計算された場合、そのゾーンに達するヒントが適用された形状は、すべてオーバーシュートが抑制され、平坦に描画されます。 - Align(アライメント):
あるゾーンを別のゾーンにリンクさせ、低解像度での高さの揃い方を制御します。ゾーンが別のゾーンにアライメントされると、ゾーンの位置間の距離が丸められ、そのゾーンに適用されます。例えば、smallCapHeightをxHeightにアライメントすることで、両者の表示の一貫性を高めることができます。アライメントされたゾーンは、特定のPPMサイズでその高さの差が半ピクセル未満の場合は同じ高さに、半ピクセル以上の場合は少なくとも1ピクセル離れて表示されます。 - Δ(デルタ):
【メインマスター限定】 PPM(ピクセルサイズ)およびインスタンスごとに、ゾーンがスナップするピクセル位置を微調整します。各フィールドをクリックすることで、「変更なし(空白)」「上にシフト(上矢印)」「下にシフト(下矢印)」を切り替えられます。これは、特定のデバイスや解像度で、ゾーンの位置が意図しないピクセルにスナップしてしまう場合に、手動で補正するための強力な機能です。 - 🌐(フィルター(スコープ)):
【メインマスター限定】 このゾーン定義をどのグリフに適用するかを、論理フィルターで限定します。「グリフ名」「カテゴリ」「サブカテゴリ」「スクリプト」といった条件を、AND/OR演算子で組み合わせて複雑なルールを作成できます。➕ボタンでフィルターを追加し、➖ボタンで削除します。➕ボタンをOptionを押しながらクリックすると、AND/OR演算子を追加できます。例えば、「大文字のキリル文字にのみ適用されるキャップハイトゾーン」といった非常に具体的なルールを作成し、意図しないグリフに不適切なゾーン定義が適用されるのを防ぎます。
typoAscender(typoアセンダー)
値の型: 整数
機能:
フォントの組版用(Typographic)アセンダーの高さをユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブルにあるsTypoAscenderフィールドに対応します。
typoAscenderは、typoDescenderおよびtypoLineGapと共に、アプリケーションがプラットフォームに依存しない、一貫性のあるデフォルトの行間を計算するために使用する、最も重要な縦メトリクスの一つです。
歴史的に、hheaAscender(主にmacOS)やwinAscent(主にWindows)といった他の縦メトリクスは、プラットフォームごとに異なる解釈や後方互換性のための制約が存在し、クロスプラットフォームでの表示の一貫性を損なう原因となっていました。このtypo*系のメトリクスは、その問題を解決し、どの環境でも意図した通りの行間でテキストがレイアウトされるようにするために導入されました。これらのメトリクスはWindowsのAPIからアクセスされます。Macintoshアプリケーションは、OS/2テーブルからこのデータを抽出するためにsfntリソースにアクセスして解析できます。歴史的にmacOSはhheaテーブルの値を主に参照してきましたが、近年のシステムでは、特定の条件下(例:フォントにSTATテーブルがあり、「Use Typo Metrics」が有効な場合)でhheaよりもOS/2テーブルのtypo*系メトリクスを優先して使用します。
typoAscender、typoDescender、typoLineGapの各フィールドは、アプリケーションが組版的に正しく、かつポータブルな方法で文書をレイアウトできるようにすることを意図しています。現代のフォント制作では、このtypo*系のメトリクスを正しく設定し、Use Typo Metricsカスタムパラメータを有効にすることが強く推奨されます。Use Typo Metricsフラグ(fsSelectionのビット7)は、デフォルトの行メトリクスにsTypo*系の値とusWin*系の値のどちらを使用するかを選択するために使われます。
typoAscender – typoDescenderの値は、必ずしもUPM(Units Per Em)と一致する必要はありません。フォントが主に対応する言語にとって最適な、デフォルトの行間を提供するように設定するべきです。
CJKフォントに関する注意:
縦書きでの使用を想定したCJK(中国語、日本語、韓国語)フォントの場合、typoAscenderの値は特別な意味を持ちます。この場合、typoAscenderは表意文字emボックス(Ideographic Em-box)の上端を記述しなければなりません。
例えば、あるCJKフォントのUPMが1000で、そのemボックスがラテン文字のベースラインに対して下方向に120ユニットずれ、座標 (0, -120) から (1000, 880) までの1000×1000の仮想ボディを持つとします。この場合、typoAscenderの値は、emボックスの上端である880に設定する必要があります。この要件に従わないと、縦書きレイアウトが不正確になる可能性があります。
より詳細な縦メトリクスの仕組みについては、Glyphs公式サイトのVertical Metricsチュートリアルを参照してください。
typoDescender(typoディセンダー)
値の型: 整数
機能:
フォントの組版用(Typographic)ディセンダーの深さをユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブルにあるsTypoDescenderフィールドに対応します。負の整数で指定します。
typoDescenderは、typoAscenderおよびtypoLineGapと共に、アプリケーションがプラットフォームに依存しない、一貫性のあるデフォルトの行間を計算するために使用する、最も重要な縦メトリクスの一つです。
歴史的に、hheaDescender(主にmacOS)やwinDescent(主にWindows)といった他の縦メトリクスは、プラットフォームごとに異なる解釈や後方互換性のための制約が存在し、クロスプラットフォームでの表示の一貫性を損なう原因となっていました。このtypo*系のメトリクスは、その問題を解決し、どの環境でも意図した通りの行間でテキストがレイアウトされるようにするために導入されました。これらのメトリクスはWindowsのAPIからアクセスされます。Macintoshアプリケーションは、OS/2テーブルからこのデータを抽出するためにsfntリソースにアクセスして解析できます。歴史的にmacOSはhheaテーブルの値を主に参照してきましたが、近年のシステムでは、特定の条件下(例:フォントにSTATテーブルがあり、「Use Typo Metrics」が有効な場合)でhheaよりもOS/2テーブルのtypo*系メトリクスを優先して使用します。
現代のフォント制作では、このtypo*系のメトリクスを正しく設定し、Use Typo Metricsカスタムパラメータを有効にすることが強く推奨されます。
typoAscender – typoDescenderの値は、必ずしもUPM(Units Per Em)と一致する必要はありません。フォントが主に対応する言語にとって最適な、デフォルトの行間を提供するように設定するべきです。
CJKフォントに関する注意:
縦書きでの使用を想定したCJK(中国語、日本語、韓国語)フォントの場合、typoDescenderの値は特別な意味を持ちます。この場合、typoDescenderは表意文字emボックス(Ideographic Em-box)の下端を記述しなければなりません。
例えば、あるCJKフォントのUPMが1000で、そのemボックスがラテン文字のベースラインに対して下方向に120ユニットずれ、座標 (0, -120) から (1000, 880) までの1000×1000の仮想ボディを持つとします。この場合、typoDescenderの値は、emボックスの下端である-120に設定する必要があります。
この要件に従わないと、縦書きレイアウトが不正確になる可能性があります。
より詳細な縦メトリクスの仕組みについては、Glyphs公式サイトのVertical Metricsチュートリアルを参照してください。
typoLineGap(typo行間アキ)
値の型: 整数
機能:
テキストの行と行の間に確保されるべき推奨の余白(行間アキ)をフォントユニット単位で設定します。この値は、OpenTypeフォントのOS/2テーブルにあるsTypoLineGapフィールドに対応します。
typoLineGapは、typoAscenderとtypoDescenderと共に、アプリケーションがプラットフォームに依存しない、一貫性のあるデフォルトの行間を計算するために使用する、最も重要な縦メトリクスの一つです。
歴史的に、hheaLineGap(主にmacOS)やwin*系のメトリクス(主にWindows)は、プラットフォームごとに異なる解釈や後方互換性のための制約が存在しました。このtypo*系のメトリクスは、その問題を解決し、どの環境でもデザイナーが意図した通りの行間でテキストがレイアウトされるようにするために導入されました。
アプリケーションは、以下の式でデフォルトの行高を計算します。
行高 = typoAscender(※正の値) – typoDescender(※負の値) + typoLineGap
典型的な値は、UPM(Units Per Em)の7~10% 程度とされています。例えば、UPMが1000の場合、70~100が一般的な値となります。アセンダーが最も高いグリフと、次の行のディセンダーが最も深いグリフが接触しないように、十分な余白を確保するために設定します。
typo*系メトリクスの詳細については、typoAscenderおよびtypoDescenderの項目を参照してください。
underlinePosition(アンダーラインの高さ)
値の型: 整数または小数
機能:
テキストに下線(アンダーライン)が引かれる際の、推奨される垂直位置をフォントユニット単位で設定します。この値は、ベースラインから下線の上辺までの距離を負の値で示します。このパラメータは、フォント内のpostテーブルにあるunderlinePositionフィールドに対応します。
このパラメータが設定されていない場合のデフォルト値は -100 です。
underlineThickness(アンダーラインの太さ)
値の型: 整数(自然数)
機能:
テキストに下線(アンダーライン)が引かれる際の、推奨される太さをフォントユニット単位で設定します。この値は、フォント内のpostテーブルにあるunderlineThicknessフィールドに対応します。
フォントデザインの一貫性を保つため、下線の太さは、アンダースコア文字(U+005F)の線の太さおよびOS/2テーブルで定義される取り消し線(strikeout)の太さと一致させることが推奨されています。
このパラメータが設定されていない場合のデフォルト値は 50 です。
unicodeRanges(Unicode範囲)
値の型: リスト(ダイアログ)
機能:
このフォントがどのUnicode範囲の文字をサポートしているかを、OSに対して明示的に宣言します。この情報は、OpenTypeフォントのOS/2テーブルにあるulUnicodeRange1からulUnicodeRange4までのビットフィールドに対応します。
通常、Glyphsはフォントに含まれるグリフのUnicode値を解析し、この情報を自動的に設定します。このカスタムパラメータは、その自動設定を上書きし、手動で範囲を定義したい場合に使用します。これによりGlyphsの自動判定を上書きし、より正確な、あるいは意図的なサポート範囲を宣言することができます。
値のフィールド(「クリックして値を編集」)をクリックすると、Unicodeで定義されているすべての範囲のリストがダイアログで表示されますので、。このフォントがサポートしているUnicode範囲のチェックボックスをオンにします。ダイアログ上部の検索フィールドを使うと、目的の範囲を素早く見つけることができます。例えば、latinと入力すればラテン文字関連の範囲がフィルタリング表示されます。
このunicodeRanges情報は、OSやアプリケーションが、特定のスクリプトや言語を表示するために適切なフォントを選択する際の重要な手がかりとなります。例えば、ユーザーがキリル文字を含む文書を開いた際、OSはこの情報を参照して「キリル文字をサポートしている」と宣言しているフォントを優先的に選択しようとします。
OpenType仕様では、どの範囲を「機能している(functional)」と見なすかの最終的な判断はフォントデザイナーに委ねられています。とはいえ、文字セットを選択する際には、可能な限り、特定の文字セットのまとまりとして実用性が確保されるようにすべきです。
uniqueID(ユニークID)
値の型: 文字列
機能:
フォントのユニークな識別子(ID)を設定します。このパラメータで設定する値は、出力形式によって2つの異なるフィールドに影響します。
- OpenType nameテーブル ID 3 (Unique font identifier):
フォントファイルを一意に識別するための文字列IDです。通常、GlyphsはこのIDを自動的に生成・管理します(例: 1.000;UKWN;MyFont-Regular)。手動で設定する必要はほとんどありません。 - PostScript UniqueID:
PostScript言語レベル1で定義された、0から16777215までの整数IDです。かつては、フォントキャッシュ(ビットマップ)を管理するために使用されていましたが、この機能は現在では廃止(obsolete)されています。
Adobeは、特にCJKフォント以外のフォントでこのPostScript UniqueIDを使用しないよう、強く推奨しています。このパラメータは、その歴史的背景と技術的な意味を正確に理解しており、特定の互換性のためにどうしても必要としている場合にのみ使用してください。ほとんどの現代的なフォント制作において、このパラメータを手動で設定する必要はありません。
unitsPerEm(UPM変更(拡大縮小なし))
値の型: 整数(自然数)
機能:
書き出すフォントのUPM (Units Per Em/1emあたりのユニット数) の値を設定します。
デフォルト値は、PostScriptベースのOpenTypeフォント(.otf)で1000、TrueTypeベースのOpenTypeフォント(.ttf)で16から16,384の範囲内の2のべき乗(通常は2048)です。
このパラメータは、フォントファイルに記録されるUPMの数値を変更するだけであり、グリフのアウトライン(ノード座標)や、アセンダー、ディセンダーといった各種メトリクス値を拡大・縮小(スケーリング)するものではありません。
フォントのデザイン全体を、新しいUPMに合わせて拡大・縮小したい場合は、このパラメータではなくScale to UPMカスタムパラメータを使用してください。Scale to UPMは、UPMの値を変更すると同時に、すべてのアウトラインやメトリクス値も比例してスケーリングします。
使用例:
- 制作時のUPM: 1000
- このパラメータで設定したUPM: 2000
unitsPerEmを設定した場合、同じ12ポイントで表示しても、フォントの見た目の大きさは半分になります。なぜなら、12ポイント分の高さを表現するのに以前の倍のユニット数(2000ユニット)が必要になるため、相対的にグリフが小さく見えるからです。つまり、UPMの値を小さくするとフォントは大きく表示され、逆にUPMの値を大きくするとフォントは小さく表示されます。
Update Features(フィーチャーを更新)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
OpenTypeフィーチャーの自動生成および更新処理を、手動で制御します。
このパラメータは、チェックボックスの状態によって、正反対の2つの目的で使用されます。
- チェックをオンにする場合: 更新処理の強制
通常、Glyphsはフィーチャーコードを効率的にキャッシュしています。しかし、グリフセットが頻繁に変わる制作段階などでは、まれにキャッシュが古くなり、フィーチャーが正しく更新されないことがあります。このパラメータをオンにすると、書き出し時にキャッシュを無視し、すべての自動生成フィーチャーコード(kern, liga, smcpなど)を強制的に再スキャン・再生成させることができます。これにより、常に最新のグリフセットに基づいた、正確なフィーチャーコードが保証されます。 - チェックをオフにする場合: 自動生成の抑制
逆に、このパラメータを明示的にオフにすると、Glyphsが行うすべてのフィーチャー自動生成処理を抑制します。これは、DisableAllAutomaticBehaviourパラメータのように広範囲に影響を与えるのではなく、フィーチャーの自動生成だけに的を絞って無効化したい場合に便利です。
Use Arabic Presentation Form Unicodes(Use Arabic Presentation Form Unicodes)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
アラビア文字のグリフに対して、レガシー(古い)なプレゼンテーションフォームのUnicode値を割り当てます。す。
現代のテキストエンジンやアプリケーションでは、アラビア文字の字形変化(語頭形、語中形、語末形、独立形)は、フォントが持つOpenTypeフィーチャー(init, medi, fina, isolなど)によって文脈に応じて自動的に処理されます。ユーザーが入力するのは、各文字の基本的なUnicode値のみです。
Unicodeには、これらの各字形に個別の符号位置を割り当てた「アラビア文字表示形(Arabic Presentation Forms)」というブロックが存在します。これは、OpenTypeの合字機能が普及する以前の、古いシステムとの後方互換性のために用意されたものです。このパラメータを有効にすると、Glyphsはain.finaのようなグリフに対し、基本的なainのUnicode値ではなく、語末形(fina)に対応するプレゼンテーションフォームのUnicode値を割り当てるようになります。
これは、非常に古いシステムや特殊な環境との互換性を確保する必要がある場合にのみ使用する、レガシー機能です。ほとんどの現代的なフォント制作において、このパラメータを有効にする必要はありません。
Use Extension Kerning(カーニング容量拡張)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
カーニングペアを格納するためのOpenTypeルックアップに、GPOS拡張ルックアップ(Lookup Type 9)を使用します。これにより、フォントが格納できるカーニングペアの総数が大幅に増加します。
OpenTypeフォントのGPOSテーブルには、カーニング情報などを格納する各サブテーブルの位置を指し示す「オフセット」という値があります。標準的なオフセットは16ビットであり、これは格納できるデータ量に上限があることを意味します(約64KB)。非常に多くのカーニングペア(特に、グループカーニングに対する例外ペア)を持つフォントではこの上限を超えてしまい、書き出し時に「オフセットオーバーフロー」エラーが発生することがあります。
このパラメータを有効にすると、カーニング情報を格納するサブテーブルの位置を、16ビットではなく32ビットのオフセットで指し示す「拡張ルックアップ」が使用されます。これにより、膨大な数のカーニングペアをフォントに含めることが可能になります。
このパラメータは、フォントの書き出し時に「オフセットオーバーフロー」エラーが発生し、かつ、品質維持のためにカーニングペアを削減することができない、またはしたくない場合の最終手段として使用します。Adobe CCやMicrosoft Officeなどの近年の主要なアプリケーションはこの拡張カーニングをサポートしていますが、非常に古いソフトウェアや一部の特殊な環境では、この拡張ルックアップが正しく解釈されず、カーニングが全く機能しなくなる可能性があります。このパラメータを使用する際は、ターゲットとなる環境でのテストが推奨されます。
Use Line Breaks(改行を使用)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
.glyphsファイルにOpenTypeフィーチャーコードを保存する際の、改行の扱い方を制御します。
このパラメータは、フィーチャーコードの可読性と、バージョン管理システム(例: Git)との親和性のどちらを優先するかに応じて設定します。
- チェックをオンにした場合(デフォルトに近い挙動)
「フォント情報」→「フィーチャー」タブで入力したフィーチャーコード内の改行は、そのまま改行文字として.glyphsファイルに保存されます。.glyphsファイルをテキストエディタで直接開いた際に、フィーチャーコードが人間にとって読みやすい形式で表示されます。 - チェックをオフにした場合:
フィーチャーコード内の改行は、エスケープシーケンス(\012)に置き換えられ、フィーチャー全体が1行の長い文字列として.glyphsファイルに保存されます。これはバージョン管理(特にGit)において非常に有利になります。フィーチャーコードの変更箇所が、たとえ複数行にまたがる修正であっても、差分(diff)としては1行の変更として記録されます。これにより、変更履歴の追跡や比較(マージなど)が格段に容易になります。
個人での制作などでバージョン管理を使用しない場合は、オンでもオフでも大きな問題はありません。Gitなどを使ってチームで共同作業をする場合は、オフに設定することでフィーチャーコードの変更に関するコンフリクト(競合)を減らし、スムーズなワークフローを構築できます。
Use Typo Metrics(typo系メトリクスを使用)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
アプリケーションに対して「デフォルトの行間計算には、win*系ではなくtypo*系の縦メトリクスを優先的に使用してください」という指示を送ります。これは、OS/2テーブルのfsSelectionフィールドにあるビット7(Winラインメトリクスを使用しない)に対応します。
デフォルト値はオフです。
フォントの縦メトリクスには、主に以下の3系統が存在し、歴史的にプラットフォームごとに異なるものが参照されてきました。
- hhea*系: 主にmacOS
- win*系: 主にWindows
- typo*系: プラットフォーム非依存のモダンな標準
この差異が、WindowsとMacで文書を開いた際に行間がずれるといった、クロスプラットフォームでのレイアウト崩れ(リフロー)の主な原因でした。この問題を解決するため、Use Typo Metricsフラグが導入されました。
Microsoft Office 2007以降をはじめとする現代の多くのアプリケーションは、このフラグがオンになっている場合、プラットフォーム固有のwin*系メトリクスを無視し、より一貫性のあるtypo*系メトリクス(typoAscender, typoDescender, typoLineGap)を行間計算に用います。
静的フォントでは、クロスプラットフォームでの表示の一貫性を最大限に高めるため、このパラメータを有効(オン)にすることが強く推奨されます。 その際、typo*系、hhea*系、win*系の各縦メトリクスパラメータを適切に設定することが重要です。
バリアブルフォントでは、このパラメータを有効(オン)にすることが必須とされています。Microsoftの仕様では、以下の設定が推奨されています。
- Use Typo Metricsをオンにする。
- typoAscender, typoDescender, typoLineGapを正しく設定する。
- hheaAscender, hheaDescender, hheaLineGapを、上記のtypo*系の値と同じ値に設定する。
- winAscent, winDescentは、行間計算のためではなく、文字が欠けずに表示されるための推奨クリッピング領域として設定する。
AdobeのMakeOTF User Guideによれば、「このビットは、Microsoftがすべてのフォントの挙動を変更した場合よりも、文書の再フロー(レイアウト崩れ)が起こりにくくなるように導入されました。」と記載されています。
またMicrosoftは、このビットが設定されている場合、アプリケーションはデフォルトの行間として typoAscender − typoDescender + typoLineGap を使用することを強く推奨しています。
Variable Font Family Name(バリアブルフォントのファミリー名)
値の型: 文字列
機能:
バリアブルフォントとして書き出す場合にのみ使用されるファミリー名を設定します。
通常、フォントのファミリー名は「フォント情報」→「フォント」タブで設定します。このパラメータは、その設定をバリアブルフォントの書き出し時にのみ上書きするためのものです。静的なインスタンス(例: Regular, Bold)を書き出す際にはこのパラメータは無視されます。
この機能が特に役立つのは、同じデザインの静的フォントとバリアブルフォントを、ユーザーが同時にインストールする可能性があるケースです。もし両者が同じファミリー名(例: MyFont)を持っていると、アプリケーションのフォントメニューでどちらがどちらか分からなくなったり、システム内で競合を起こしたりする可能性があります。そこで、このパラメータを使ってバリアブルフォントに固有の名前(例: MyFont VF, MyFont Variable)を付けておくことで、ユーザーは両者を明確に区別でき、意図した方のフォントを正しく選択できるようになり、フォントメニューでの混乱や予期せぬフォントの競合を防ぐことができます。
Variable Font File Name(バリアブルフォントのファイル名)
値の型: 文字列
機能:
バリアブルフォントとして書き出す場合にのみ使用されるファイル名を設定します。
通常、Glyphsはバリアブルフォントを書き出す際に、ファミリー名にVFという接尾辞を付けたものをデフォルトのファイル名として使用します。このパラメータは、そのデフォルトの命名規則を上書きし、完全にカスタムのファイル名を指定したい場合に使用します。
Variable Font Optimize Deltas(Variable Font Optimize Deltas)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
バリアブルフォントの書き出し時に、マスター間の動きが非常に微細なアウトラインの差分データ(デルタ)を削除することで、ファイルサイズを最適化します。
このパラメータは、デフォルトで有効(チェックがオン)になっています。
バリアブルフォントは、マスター間の形状の差分(デルタ)をデータとして保存することで、中間的なウェイトやスタイルを生成し、同時にファイルサイズを削減しています。このパラメータが有効な場合、Glyphsは書き出し時に各アウトライン(コンツアー/contour)をチェックします。もし、あるアウトライン上のどのノードもマスター間で0.5ユニット以上動いていない場合、その動きは視覚的にほとんど影響しない微細なものと判断され、そのアウトラインのデルタデータは最終的なフォントファイルから破棄されます。これにより、不要なデータを削減し、ファイルサイズをさらに圧縮することができます。
このパラメータを無効(チェックをオフ)にするとこの最適化は行われなくなり、たとえ0.5ユニット未満の非常に小さな動きであっても、すべてのデルタが保持されるようになります。これによりデザイナーが意図したごくわずかなディテールの変化も確実にフォントに反映させることができますが、ファイルサイズはわずかに増加する可能性があります。
(このVariable Font Optimize Deltasパラメータは、Optimize Variable Deltasパラメータと全く同じ機能を持ちます。どちらか一方を使用すれば問題ありません。)
Variable Font Origin(バリアブルフォントの基準マスター)
値の型: 文字列
機能:
バリアブルフォントファイルに格納される、基準となるアウトラインセットとして使用するマスターを指定します。
バリアブルフォントは、一つの「基準となるアウトラインセット」を持ち、他のすべてのスタイル(マスターやインスタンス)は、その基準アウトラインの各ポイントがどれだけ移動するかという差分データ(デルタ)の集まりとして表現されます。このVariable Font Originパラメータは、その「基準となるアウトラインセット」として、どのマスターを使用するかを明示的に指定するためのものです。デザインプロセス上の中心となるマスターや、最も基本的なスタイルを原点として指定したい場合に使用します。
このパラメータが設定されていない場合、Glyphsは通常、ファミリーの中で「Regular」やそれに最も近いとされるマスターを自動的に原点として選択します。理論上、デザインスペースの中心に近いマスター(例: LightとBlackの中間にあたるRegularやMedium)を原点にすると、各マスターへのデルタの総量が最小になり、ファイルサイズが最も効率的になる傾向があります。
Variable Font Style Name(バリアブルフォントのスタイル名)
値の型: 文字列
機能:
バリアブルフォントとして書き出す際のスタイル名を設定します。
バリアブルフォントの原点(Origin)マスターのスタイル名を設定します。これは、書き出されるバリアブルフォントに格納される、デフォルトのアウトラインのスタイル名となります。
(公式Handbookではこの項に「Variable Font Family Name」と同じ説明が書かれていますが、正確には「Variable SubfamilyName」の項に書かれているスタイル名の設定についての説明がこの項の説明に該当するかと思われます。)
参考:Glyphs Forum: Glyphs 3 Handbook Errata
Variable SubfamilyName(バリアブルフォントのサブファミリー名)
値の型: 文字列
機能:
バリアブルフォントとして書き出す場合にのみ使用される、サブファミリー名を設定します。
(公式Handbookではこの項に「Variable Font Style Name」と思われる説明が書かれています。)
variablePostscriptFontName(variablePostscriptFontName)
機能:
バリアブルフォント内の名前付きインスタンス(Named Instance)のPostScript名を設定します。これは、バリアブルフォントの中の特定のスタイル地点(例: Bold, Light Condensed)を指し示すための、内部的な識別名です。
このパラメータで設定した名前は、以下の2つの場所に対応します。
- OpenType nameテーブルの ID 6 (PostScript name)
- OpenType fvarテーブルの名前付きインスタンス (NamedInstance) エントリの postscriptName
このvariablePostscriptFontNameは、ユーザーが見るpostscriptFullName(スペースあり)とは異なる、内部的な識別子です。混同しないように注意してください。
命名規則:
- 文字種: ASCII文字のみ使用可能です。
- 空白: スペースは使用禁止です。
- 書式: 一般的に「ファミリー名-スタイル属性」の形式で記述します(例: MyFontVF-
BoldCondensedItalic
)。
このvariablePostscriptFontNameは、同じデザインの静的フォントのpostscriptFontNameと絶対に重複してはいけません。もし両者が同じ名前(例: MyFont-Bold)を持つと、ユーザーが静的フォントとバリアブルフォントの両方をインストールした際に、深刻なフォント競合を引き起こし、どちらか一方が正しく機能しなくなる可能性があります。
この競合を体系的に避けるため、OpenType仕様では「バリエーションPostScript名プレフィックス – スタイル名」の命名規則が推奨されています。
- バリエーションPostScript名プレフィックス:
これはnameテーブルのID 25で、通常はバリアブルフォントのファミリー名に接尾辞を付けたもの(例: MyFontVF)になります。Glyphsではこれが自動的に管理されます。 - スタイル名:
インスタンスのスタイル名を、ASCII文字・スペースなしで記述します。
例:
- 静的BoldのPostScript名: MyFont-Bold
- バリアブルフォント内のBoldインスタンスのPostScript名: MyFontVF-Bold
このようにバリアブルフォント用のプレフィックスを付けることで、名前の衝突を確実に防ぐことができます。
variableStyleName
(このパラメーターは現在使用されていません。)
参考: Glyphs Forum: Variable Style Names Custom Parameter
variableStyleNames(バリアブルスタイル名)
機能:
バリアブルフォント内の名前付きインスタンス(Named Instance)にスタイル名を設定します。これは、静的なフォントファミリー構造とは異なる、バリアブルフォント内でのみ有効なスタイル名です。
このパラメータは、複雑なファミリー構造を持つフォントを一つのバリアブルフォントにまとめる際に発生する可能性のある、名前の重複(コンフリクト)を解決するために使用されます。
なぜこのパラメータが必要か?
静的なフォントファミリーでは、異なるファミリー名のもとで同じスタイル名が再利用されることがあります。
- ファミリー名: MyFont → スタイル名: Bold
- ファミリー名: MyFont Condensed → スタイル名: Bold
この2つの「Bold」は、静的フォントとしては別々のものとして扱われます。しかし、これらを一つのバリアブルフォントにまとめようとすると、fvarテーブル(バリアブルフォントの名前付きインスタンスを定義するテーブル)内に「Bold」という名前のエントリが2つ存在することになります。これは仕様上禁止されています。
このパラメータの役割:
このような場合に、このvariableStyleNameパラメータを使って、片方または両方のインスタンスに、バリアブルフォント内でのみ有効な、ユニークなスタイル名を割り当てます。
設定例:
- MyFontファミリーのBoldインスタンス:
- (パラメータなし、または variableStyleName: Bold)
- MyFont CondensedファミリーのBoldインスタンス:
- variableStyleName: Bold Condensed
これにより、fvarテーブル内ではBoldとBold Condensedという異なる名前で登録され、名前の重複が回避されます。ユーザーはバリアブルフォントのスライダーで「Bold Condensed」の地点を選択できるようになり、意図した通りのスタイル構造が実現できます。
Variation Font Origin(バリアブルフォントの基準マスター)
値の型: 文字列
機能:
(このパラメータは Variable Font Origin と同じ機能です。)
variationsPostScriptNamePrefix(バリアブル用PostScript名プレフィックス)
値の型: 文字列
機能:
バリアブルフォント内の、内部的に自動計算されるPostScript名に使用されるプレフィックス(接頭辞)を明示的に指定します。この値は、OpenTypeフォントのnameテーブルにおけるID 25 (Variations PostScript Name Prefix) に対応します。
バリアブルフォントの特定のスタイル(デザイン空間上のある地点)がPDFなどで処理される際、そのスタイルを識別するためのPostScript名が、ファミリー名、軸のタグ、軸の座標値に基づいて内部的に自動計算されます。このパラメータは、その自動計算されるPostScript名の先頭部分(プレフィックス)を、手動で制御するためのものです。
このパラメータが未設定の場合、preferredFamilyName (ID 16) の文字列から、ASCIIの英数字以外の文字(アクセント記号、スペースなど)を除去したものがプレフィックスとして自動的に使用されます。
このパラメータは、主に以下の2つの問題を解決するために使用します。
- PostScript名の文字数制限の回避:
自動生成されるPostScript名全体は127文字を超えることができません。ファミリー名が非常に長い場合、この上限を超えてしまう可能性があります。このパラメータで短いプレフィックス(例: MyFamVF) を指定することで、名前全体の長さを抑えることができます。 - 自動設定されるファミリー名の重複の解消:
デフォルトの挙動ではアクセント記号などが除去されるため、本来は異なるファミリー名が同じプレフィックスとして扱われてしまう可能性があります。
Adobeによる例:
André SansとAndró Sansという2つのファミリー名は、どちらも自動的にAndrSansというプレフィックスになってしまい、区別がつきません。このパラメータで、それぞれAndreSansとAndroSansというプレフィックスを明示的に指定することで、この曖昧さを解消できます。
値の書式と制約:
プレフィックスに使用できるのはASCIIの英大文字、英小文字、数字のみです。また、一つのフォントファイル内で、このパラメータで指定するすべてのプレフィックスは、ASCIIに変換した際に同一でなければなりません(通常はフォントレベルで1つだけ設定します)。
vendorID(ベンダーID)
値の型: 文字列
機能:
フォントの制作者または販売元(ベンダー)を識別するための、4文字のIDコードを指定します。このIDは、OpenTypeフォントのOS/2テーブルにあるachVendIDフィールドに対応します。
このIDコードは、印字可能なASCII文字(U+0020からU+007Eまで)のみで構成される、4文字の文字列です。このパラメータが設定されていない場合、GlyphsはデフォルトでUKWN(Unknown/不明)をベンダーIDとして使用します。(このフィールドは、空欄(4つのスペース文字で構成されるタグ)にすることも可能です。)
ベンダーIDは、元のデザインの権利者ではなく、そのフォントファイルを市場に供給し、販売する責任を持つ企業(ベンダー)を識別するためのものです。ベンダーIDの入力は必須ではありません。
例えば、同じITC Zapf Dingbatsという名前のフォントでも、複数のベンダーから販売されていることがあります。あるベンダーはカーニングペアを豊富に含み、別のベンダーは手作業でヒンティングを施しているかもしれません。ベンダーIDは、こうした品質の異なるフォントファイルを区別し、ユーザーが意図したベンダーのフォントを確実に使用できるようにするために役立ちます。
IDの登録について:
MicrosoftはベンダーIDの登録制度を管理しています。
- 登録済みID: 各ベンダーに固有のIDが割り当てられます。
- 未登録ID: 登録されていないIDも使用できますが、他のベンダーとIDが衝突するリスクがあるため、Microsoftへの登録が推奨されています。 登録することで、フォント内に記載された連絡先のWebサイトが変更された場合でも、ユーザーはフォント制作者に連絡を取ることができます。
登録済みのベンダーIDのリストは以下のURLで公開されています。
https://learn.microsoft.com/ja-jp/typography/vendors/
versionMajor(versionMajor)
値の型: 整数
機能:
フォントのバージョン番号のメジャー番号(整数の部分)を、特定のインスタンスの書き出し時にのみ上書きします。
通常、フォントのバージョン番号(例: Version 2.005)は、→「フォント情報」→「フォント」タブで一元管理されます。このversionMajorパラメータは、その設定を特定のインスタンスを書き出す際にのみ、部分的に上書きするためのものです。versionMinorパラメータと組み合わせて使用することで、インスタンスごとに完全に独立したバージョン番号を設定できます。
このパラメータは、フォントのバージョン管理を複雑にする可能性があります。何をしているのかを正確に理解しており、明確な目的がある場合にのみ使用してください。 通常は、「フォント情報」のバージョン設定でファミリー全体のバージョンを管理することが推奨されます。
versionMinor(versionMinor)
値の型: 整数
機能:
フォントのバージョン番号のマイナー番号(小数点以下の部分)を、特定のインスタンスの書き出し時にのみ上書きします。
通常、フォントのバージョン番号(例: Version 2.005)は、「フォント情報」→「フォント」タブで一元管理されます。このversionMinorパラメータは、その設定を特定のインスタンスを書き出す際にのみ、部分的に上書きするためのものです。versionMajorパラメータと組み合わせて使用することで、インスタンスごとに完全に独立したバージョン番号を設定できます。
このパラメータは、フォントのバージョン管理を複雑にする可能性があります。何をしているのかを正確に理解しており、明確な目的がある場合にのみ使用してください。 通常は、「フォント情報」のバージョン設定でファミリー全体のバージョンを管理することが推奨されます。
versionString(バージョン)
値の型: 文字列
機能:
フォントのバージョンを識別するための文字列を設定します。この情報は、OpenTypeフォントのnameテーブルにおけるID 5 (Version string) に書き込まれ、OSやアプリケーションがフォントのバージョンを識別・比較するために使用します。
通常、Glyphsは「フォント情報」で設定されたバージョン番号を基に、この文字列を自動的に生成します。このカスタムパラメータは、その自動生成される文字列を上書きし、より詳細な情報を加えたい場合に使用します。
このパラメータは、静的な文字列だけでなく、「フォント情報」で設定したバージョン番号を自動的に挿入するテンプレートとしても機能します。
Version %d.%03d
プレースホルダーの解説:
- %d: 「フォント情報」のメジャーバージョン番号(例: 2)に置き換えられます。
- %03d: マイナーバージョン番号が3桁のゼロ埋めで表示されます(例: 5 → 005)。
技術的な要件と注意点:
- 一部のフォントインストーラーとの互換性を保つため、文字列はVersion(最後にスペース)で始めることが強く推奨されます。
- 文字列のどこかには、メジャー番号.マイナー番号の形式(例: 1.008)が必ず含まれている必要があります。OSやフォント管理ソフトは、この部分を正規表現で抽出してバージョンの新旧を比較します。
- メジャー番号とマイナー番号はそれぞれ65535未満の数値でなければなりません。
- マイナー番号は、数字以外の文字(; やスペースなど)が現れた時点で終了と見なされます。
- バージョン番号の後にセミコロン(;)を使い、ビルド情報などの追加情報を加えることができます。この追加情報は、バージョンの比較には影響しません。
例: Version %d.%03d; Release Candidate → Version 2.005; Release Candidate
技術的な要件と注意点
- “Version “で始める:
一部のインストーラーとの互換性を保つため、文字列は Version (最後にスペース)で始めることが強く推奨されます。 - 必須のバージョン番号形式:
文字列のどこかには、メジャー番号.マイナー番号 の形式(例: 1.008)が含まれている必要があります。OSやフォント管理ソフトは、この部分を抽出してバージョンの新旧を比較します。- 各番号は65,535未満の数値でなければなりません。
- マイナー番号は、数字以外の文字(; やスペースなど)が現れた時点で終了と見なされます。
- 追加情報の付与:
バージョン番号の後にセミコロン(;)を使い、ビルド情報などの追加情報を加えることができます。- 例: Version %d.%03d; Release Candidate
vheaVertAscender(vhea縦アセンダー)
値の型: 整数
機能:
縦書き組版における、組版上のアセンダー値を設定します。この値は、OpenTypeフォントのvhea (Vertical Header) テーブルにあるvertTypoAscenderフィールドに対応します。
このパラメータは、縦書きレイアウトにおいて、文字の垂直方向の位置揃えの基準となる重要な値です。日本語フォントなどで使われる「仮想ボディ(Ideographic Em-box)」の垂直方向の中心を基準線(センターライン)としたとき、そこから仮想ボディの右端までの距離をフォントユニット単位で指定します。
この値は、通常 UPM ÷ 2 に設定されます(例: フォントのUPMが1000の場合は500、UPMが2048の場合は1024)。
この値をvheaVertDescenderと対になるように正しく設定することで、縦書き時に各文字が意図した通りの中心線で揃えられ、安定した組版が可能になります。主にCJK(中国語、日本語、韓国語)フォントなど、縦書きをサポートするフォントで必要となるパラメータです。
vheaVertDescender(vhea縦ディセンダー)
値の型: 整数
機能:
縦書き組版における、組版上のディセンダー値を設定します。この値は、OpenTypeフォントのvhea (Vertical Header) テーブルにあるvertTypoDescenderフィールドに対応します。
通常は負の整数で指定します。
このパラメータは、縦書きレイアウトにおいて、文字の垂直方向の位置揃えの基準となる重要な値で、vheaVertAscenderと対になる設定です。
日本語フォントなどで使われる「仮想ボディ(Ideographic Em-box)」の垂直方向の中心を基準線(センターライン)としたとき、そこから仮想ボディの左端までの距離をフォントユニット単位で指定します。
この値は、通常 – ( UPM ÷ 2 ) に設定されます(例: フォントのUPMが1000の場合は-500、UPMが2048の場合は-1024)。
この値をvheaVertAscenderと対になるように正しく設定することで、縦書き時に各文字が意図した通りの中心線で揃えられ、安定した組版が可能になります。主にCJK(中国語、日本語、韓国語)フォントなど、縦書きをサポートするフォントで必要となるパラメータです。
vheaVertLineGap(vhea縦行間アキ)
値の型: 整数
機能:
縦書き組版における、行と行の間に確保されるべき推奨の余白(行間アキ)をフォントユニット単位で設定します。この値は、OpenTypeフォントのvhea (Vertical Header) テーブルにあるvertTypoLineGapフィールドに対応します。
このパラメータは、縦書きレイアウトにおいて、アプリケーションがデフォルトの行送り量を計算するために使用されます。
アプリケーションは、以下の式で縦書きの推奨行送り量を算出できます。
推奨行送り量 = 仮想ボディの幅 + vheaVertLineGap
- 仮想ボディの幅:
通常、これはUPM(Units Per Em)と同じ値になります(例: 1000)。 - vheaVertLineGap:
このパラメータで設定する値です。文字自体の幅に加えて、行と行の間にどれだけの余白を追加するかを定義します。0に設定すると、余白なしがデフォルトになります。
この値を適切に設定することで、縦書き時の行間の見た目をコントロールし、デザイナーが意図した通りの読みやすい組版を実現できます。主にCJK(中国語、日本語、韓国語)フォントなど、縦書きをサポートするフォントで必要となるパラメータです。
解説:
これは、縦書き用のタイポグラフィック・ギャップ(推奨される行間の余白)を指定する値です。アプリケーションは、この値を用いて、縦書きの標準的な行送り量を以下の式で算出できます。
推奨行送り量 = 仮想ボディ幅 + vheaVertLineGap
つまり、このパラメータは文字自体の幅(仮想ボディ幅)に加えて、行と行の間にどれだけの余白を追加するかを定義します。
Virtual Master(仮想マスター)
機能:
バリアブルフォントのデザインスペースを、個々のグリフの形状(ブレースレイヤー)に基づいて拡張するための、仮想的なマスターを定義します。
通常のマスターと仮想マスターの違い:
「フォント情報」→「マスター」で定義する通常のマスター(リアルマスター)とは異なり、仮想マスターは、個々のグリフ内に「ブレースレイヤー(Brace Layer)」として描画することでのみ作成できます。ブレースレイヤーとは、波括弧 {} で囲まれたデザインスペース座標(例: {100, 300})を名前に持つ、特殊なグリフのレイヤーのことです。
【通常のマスター】
- 「フォント情報」→「マスター」で定義します。
- ファミリー内のすべてのグリフに対して、互換性のあるアウトラインを持つレイヤーが必要です。
- 新しいマスターを追加すると、すべてのグリフを描き、すべてのカーニングペアを再設定する必要があるため、多大な労力がかかります。
【仮想マスター】
- 実体は、個々のグリフ内に存在する「ブレースレイヤー」の集合体です。
- 影響を与えたいグリフにだけブレースレイヤーを追加すればよく、他のグリフは無視できます。
- フォント全体の構造に影響を与えないため、作業量が劇的に削減されます。
この機能は、一部のグリフにしか影響しないデザイン軸を作成する場合に、特に絶大な威力を発揮します(例:「A, E, F, H」といった文字の、中央のバーの高さだけを制御するCrossbar Heightという軸を追加したい場合など)。仮想マスターはカーニングペアの行列に影響を与えないため、新しいマスターを追加した時のように、ファミリー全体のカーニングを再設定する必要がありません。
Webfont Formats(強制ウェブフォント形式)
値の型: リスト
機能:
このパラメータを設定したインスタンスでは、書き出しダイアログでの選択内容に関わらず、ここで指定したWebフォント形式のみが書き出されるようになります。
指定できる値:
非圧縮、WOFF、WOFF2
※Handbookには選択肢としてEOTの記載がありますが、現在はEOTの出力は非対応となっています。
参考URL: https://forum.glyphsapp.com/t/eot-export-in-webfont-formats-parameter-not-working/24773
Webfont Only(ウェブフォントのみ)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
生成されるWebフォントから、デスクトップフォントとして使用するために必要な情報の一部を意図的に削除します。
このパラメータは、Webフォントの不正利用(ダウンロード後のローカルインストールなど)を抑止するための簡易的な保護機能です。フォントライセンスでWebフォントとしての使用のみを許可している場合に、そのライセンス条件を技術的に補強するためのオプションです。このオプションを有効にすると、Glyphsは書き出し時にフォントファイル内の特定のテーブルやフィールドを削除または破損させます。これによって生成されたフォントは、WindowsやmacOSにデスクトップフォントとしてインストールしようとしても、OSがフォントファイルを破損していると認識し、インストールが失敗する可能性が高くなります。
このパラメータは、意図的に「破損した」フォントを生成しますが、この「破損」はブラウザがWebフォントとしてレンダリングするのに必要な情報には影響を与えないように調整されています。そのため、デスクトップ環境ではフォントとして認識されにくくなりますが、ブラウザ上ではWebフォントとして問題なく機能します。
winAscent(winアセント)
値の型: 整数(自然数)
機能:
Windows環境におけるフォントのレンダリング領域の上限(高さ)を定義する正の整数です。この値を超えたグリフの上部は、画面上で表示が欠ける(クリッピングされる)可能性があります。この値は、OpenTypeフォントのOS/2テーブルにあるusWinAscentフィールドに対応します。
winAscentの最も重要な役割は、WindowsのGDI(グラフィックデバイスインターフェイス)がグリフを描画するためのビットマップサーフェスの高さを決定することです。この値がフォントの実際の高さよりも低いと、アクセント記号付きの大文字(例: Á)や、マークが上に付いた文字など、背の高いグリフの上部が切れて表示されてしまいます(クリッピング)。クリッピングを確実に防ぐためには、このwinAscentの値を、フォントに含まれるすべてのグリフの最も高い部分(yMax)以上に設定する必要があります。(このyMaxは、GPOSテーブル(カーニングやマーク位置調整など)が適用される前の、グリフのデフォルト位置におけるyMaxを指します。)
かつて一部の古いアプリケーションでは、このwinAscentとwinDescentの値がデフォルトの行間を計算するためにも使用されていました。win*系メトリクスを行間計算に使用する方法は、プラットフォーム間の表示の不一致や、予期せぬレイアウトの崩れを引き起こすため、現在では強く非推奨とされています。
現代のフォント設計においては、行間制御の役割はtypoAscender, typoDescender, typoLineGapの各パラメータが担います。これらとUse Typo Metricsフラグを有効にすることで、クロスプラットフォームで一貫した行間を実現できます。Use Typo Metricsフラグの役割は、アプリケーションに対して「行間計算にはwin*系とtypo*系のどちらを使うか」を指示するスイッチとして機能します。これにより、古い文書との互換性を保ちつつ、新しいフォントではより優れたレイアウトを実現するという、柔軟な対応が可能になります。
しかし、typo*系メトリクスを行間計算に使用する現代のアプリケーションであっても、winAscentは依然として重要です。純粋にクリッピングを防ぐための描画領域を指定する値として扱われるほか、テキスト編集時にどの範囲の表示を再描画するかを決定したり、テキスト選択時のハイライト(選択矩形)をどれくらいの大きさで描画するかを決定したりするために、このクリッピング領域の情報が使用されることがあります。
値の決定方法については、かつてはWindows ANSI文字セット内のグリフ(ASCII や Windows 1252 に含まれる範囲の文字)のyMaxとして計算することが推奨されていましたが、現在ではフォントがサポートするように設計されている主要な言語に基づいた上で、背の高いグリフや、ダイアクリティカルマークがスタックされた際の追加の高さなどを十分に考慮に入れて値を決定することが推奨されています。
垂直メトリクスに関するより詳しい解説は、Glyphsの「Vertical Metrics」チュートリアルを参照してください。
winDescent(winディセント)
値の型: 整数
機能:
Windows環境におけるフォントのレンダリング領域の下限(深さ)を正の整数で定義します。この値がフォントの実際のディセンダーよりも小さいと、g, p, q, yのような文字の下部が切れて表示される(クリッピングされる)可能性があります。この値は、OpenTypeフォントのOS/2テーブルにあるusWinDescentフィールドに対応します。
通常、ディセンダーは座標上では負の値(例: -250)で表されますが、このwinDescentはベースラインからの深さを正の数で指定するという点に注意が必要です。
winDescentの最も重要な役割は、winAscentと対になり、Windows環境でのクリッピングを防ぐことです。この値がフォントの実際のディセンダーの深さよりも小さいと、g, p, q, yのような文字や、文字の下に付加されるマークの下部が切れて表示されてしまいます。このクリッピングを確実に防ぐためには、このwinDescentの値を、フォントに含まれるすべてのグリフの最も低いy座標(yMin)の絶対値以上に設定する必要があります。
winAscentと同様に、かつて一部の古いアプリケーションでは、このwinDescentもデフォルトの行間計算に使用されていました。しかし、この方法は現在では強く非推奨です。現代のフォント設計においては、行間制御の役割はtypo*系のメトリクスが担い、winDescentは純粋にクリッピングを防ぐための描画領域を指定する値として扱われます。
かつては、この値をWindows ANSI文字セット内(ASCII や Windows 1252 に含まれる範囲の文字)のグリフの-yMin(最も低いy座標の符号を反転させたもの)として計算することが推奨されていましたが、現在のフォント設計では、フォントがサポートするように設計されている主要な言語に基づいた上で、単純なgやpのディセンダーだけでなく、文字の下に付加される結合記号(マーク)なども考慮に入れ、十分なマージンを確保することが推奨されています。
Write DisplayStrings(タブの内容を保存)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
Glyphsの各編集タブに入力されたテキスト(技術的にはDisplayStringsと呼ばれます)を、.glyphsファイルに保存するかどうかを制御します。
このパラメータは、デフォルトで有効(オン)になっています。
このパラメータの主な目的は、バージョン管理システム(GitやSVNなど)を利用した制作ワークフローを円滑にすることです。通常、編集タブのテスト用文字列を少し変更しただけでも、Gitなどのバージョン管理システムはそのファイルを「変更あり」として認識してしまいます。これは、フォント本体とは関係のない些細な変更まで追跡することになり、コミットログが煩雑になる原因となります。このオプションを無効(オフ)にすると、編集タブのテキストはファイルに保存されなくなるため、アウトライン、メトリクス、カーニングといったフォントの本質的な変更のみを効率的に追跡・管理できるようになります。これにより、変更履歴(コミットログ)がクリーンに保たれ、チームでの共同作業がよりスムーズになります。
- パラメータが有効(オン)の場合(デフォルトの挙動):
Glyphsを終了して再度開いたときに編集タブの内容が復元されるよう、タブに入力したテスト用の文字列が.glyphsファイルに保存されます。 - パラメータが無効(オフ)の場合:
編集タブに入力したテキストは.glyphsファイルに保存されなくなります。
Write lastChange(グリフ最終更新日を保存)
値の型: ブーリアン (チェックボックスでオン/オフを切り替え)
機能:
ファイルの最終変更日時(lastChange)の情報を、.glyphsファイルに書き込むかどうかを制御します。
このパラメータは、デフォルトで有効(オン)になっています。
このパラメータの主な目的は、バージョン管理システム(GitやSVNなど)を利用した制作ワークフローを円滑にすることです。通常、フォントの内容に一切変更を加えていない状態でファイルを開いて保存した場合でも、最終変更日時が更新されるため、Gitなどのバージョン管理システムはそのファイルを「変更あり」として認識してしまいます。これは、フォントの本体とは関係のない無意味な変更まで追跡することになり、コミットログが煩雑になる原因となります。
このオプションを無効(オフ)にすると、日時の情報がファイルに書き込まれなくなるため、アウトライン、メトリクス、カーニングといったフォントの本質的な変更のみを効率的に追跡・管理できるようになります。これにより、変更履歴(コミットログ)がクリーンに保たれ、チームでの共同作業がよりスムーズになります。
- パラメータが有効(オン)の場合(デフォルトの挙動):
ファイルが保存されるたびに、その日時が.glyphsファイル内に記録されます。 - パラメータが無効(オフ)の場合:
最終変更日時の情報は、.glyphsファイルに書き込まれなくなります。
WWSFamilyName(WWSファミリー名)
値の型: 文字列
機能:
WWS (Weight, Width, Slope) モデルに準拠した、特別なファミリー名を設定します。このパラメータは、OpenTypeフォントのnameテーブルにおけるID 21 (WWS Family Name) に対応します。
多くのアプリケーション(特にWindows環境)は、フォントメニューを整理するために、フォントを「太さ (Weight)」「幅 (Width)」「傾き (Slope)」という3つの軸でグループ化しようとします。これをWWSモデルと呼びます。しかし、フォントファミリーにオプティカルサイズ(例: Display, Text, Caption)のような、WWSの3要素以外の属性が含まれていると、このグループ化がうまく機能しないことがあります。このWWSFamilyNameパラメータは、そのような場合に、オプティカルサイズなどを含むより具体的なファミリー名(例: MyFont Display)を定義することで、この問題を解決します。これにより、アプリケーションは、まずこのWWSFamilyNameで定義されたグループを認識し、その中でWWSモデル(Bold, Italicなど)に基づいてスタイルを正しく分類できるようになります。
「WWSファミリー名 (ID 21)」を使用する場合、OS/2テーブルの「WWS対応フラグ (fsSelection ビット8)」は必ずオフにしてください。なぜなら、このフラグは「通常のファミリー名 (ID 16)」がWWSルールに準拠していることを示すためのものだからです。ID 21は、そのID 16がルールに準拠していない場合の代替手段として機能するため、両者の役割は互いに排他的です。両方を同時に有効にすると、システムがどちらの名前を優先すべきか判断できず、意図しない表示を引き起こす可能性があります。
使用例:
Minion Proというフォントファミリーに、CaptionやDisplayといったオプティカルサイズのバリエーションがあるとします。
- preferredFamilyName(通常のファミリー名) (ID 16): Minion Pro
- WWSFamilyName (ID 21): Minion Pro Caption
- WWSSubfamilyName (ID 22): Bold Italic
このように設定することで、アプリケーションのフォントメニューが Minion Pro Caption > Bold Italic のように、意図通りに正しく構成されるようになります。
WWSSubfamilyName(WWSサブファミリー名)
値の型: 文字列
機能:
WWS (Weight, Width, Slope) モデルに準拠したサブファミリー名(スタイル名)を設定します。このパラメータは、WWSFamilyName (ID 21) と必ず組み合わせて使用されます。OpenTypeフォントのnameテーブルにおけるID 22 (WWS Subfamily Name) に対応します。
preferredSubfamilyName (ID 17) に、WWSの3要素以外の情報(例: オプティカルサイズを示すDisplayやCaption)が含まれていると、WWSモデルに基づいてフォントを分類しようとするアプリケーションが、そのスタイルを正しく認識できなくなります。このような場合は、WWSFamilyName (ID 21) でオプティカルサイズなどを含めた具体的なファミリー名(例: MyFont Display)を定義し、このWWSSubfamilyNameパラメータ (ID 22) に、それらの付加的な情報(Displayなど)を取り除いた、純粋な「太さ・幅・傾き」のみを示すスタイル名を指定します。これにより、アプリケーションは、WWSFamilyName (ID 21) で定義されたファミリーグループの中で、このWWSSubfamilyName (ID 22) を使ってスタイルを正しく認識・分類できるようになります。
このパラメータ (ID 22) を使用する場合、WWSFamilyName (ID 21) も必ず設定されている必要があります。また、OS/2テーブルのfsSelectionフィールドにあるビット8(WWS対応フラグ)はオフ(設定しない)にする必要があります。
使用例:
あるインスタンスの完全なスタイルが「セミボールド・イタリックのキャプション用」だとします。
- preferredFamilyName (ID 16): MyFont
- preferredSubfamilyName (ID 17): Semibold Italic Caption
- WWSFamilyName (ID 21): MyFont Caption
- WWSSubfamilyName (ID 22): Semibold Italic
このように、ID 17には完全な情報を、ID 22にはWWSモデルに準拠した情報を分けることで、ユーザーの利便性とアプリケーションの互換性の両立を図ります。
コメント