FontForgeでフォントに「文脈依存の置換(conditional features)」を設定する


FontForgeでフォントに「文脈依存の置換(conditional features)」を設定する手順を解説します。
文脈依存の置換は、前の文字によって次の文字を異字体に置き換える機能です。
筆記体(Script)書体にはぜひ必要な機能です。文字間の線を滑らかに繋げるために、前の文字に合わせて字形を変えなければならないからです。
Conditional Feature in my font.
caltにより設定された条件により、aaltによる置換を呼び出すものと思われます。 わたしも本設定を試している途中なので詳細はまだ不明です。
 
なお、本手順中でLookupとSubtableの名称は、FontForgeが自動生成するデフォルトのものを使用しました。
FontForgeは、日本語環境では日本語の設定名を生成します。
今回は、LANG=Cを頭に付けたコマンドライン呼び出しにより、英語ロケールとUIで作業を行いました。
英語のリファレンスを検索しやすい、などの利点もあるので、英語ロケールで作業することをおすすめします。


References:
チュートリアル (その 7)』による条件付き機能による置換を使用します。英語版『Tutorial #7 (Conditional Features )』も、日本語版が少し古くなっているので、必要に応じて参考にしました。
しかし、この英語版も説明が丁寧ではないので(あるいは英語版も古くなっているので) 、既存の条件付き置換を使用したフォントをFontForgeで開いて設定を読んだりしました。

This sample setting:
letter "b" を前の文字によって "b.high" に置き換えます。
"b.high"には適当なコードポイントを割り当てました。これがテストであるためです。本当はフォント固有の異字体を置くためのコードポイントが定義されているので、その領域を使うべきです。

## Create "b.high" letter




適当なコードポイントに"b.high"を作成します。
デフォルト設定では、一部の文字を覗いてユニコードコードポイントによる"uniXXXX"といった名前が付いています。エディタ上部の名前入力欄か、MenuのElement>GlyphInfo(グリフ情報)から、グリフの名称を"b.high"に変更します。

Setting lookup aalt(Access All Alternates)

Lookup aalt

Menu "Element" > "Font Info"
エレメント > フォント情報

"Lookup"/"GSUB" tab > "Add Lookup" button
 Lookups タブの "add lookup"

Type: "Single Substitution" > Feature: "Access All Alternates" (aalt)
種類:単純置換 > 機能:すべての異字体へのアクセス

どれがaaltなのかわからない場合は、種類:単純置換 > 機能:必須の機能 で出てくる RQDを指定してから、直接"aalt"とタイプして書き換えることができます。

Select GSUB Lookup features.

# Subtable aalt

Selected target aalt lookup.
"Add Subtable" button
Base Glyph Name: "b" / Replacement Glyph Name: "b.high"



aalt setting.

## Setting lookup calt(Contextual Alternates)

# Lookup calt

"Lookup"/"GSUB" tab > "Add Lookup" button
Type: "Contextual Chaining Substitution" > Feature: "Contextual Alternates" (calt)
種類:文脈連鎖依存の置換 > 機能:文脈依存の異字体

GSUB add lookup.

注意:この時、Type: "Contextual Substitution"を選んでもcaltを作成することができますが、
こちらは同じcaltでも、目的である文脈連鎖による異字体の設定ができません。
必ず、Type: "Contextual Chaining Substitution" を選択してください。



# Subtable calt

Edit Cahining Substitution "By Classes" / Dialog Type:"simple"
"クラスで指定" / Dialog Type:"シンプル"

以下は日本語環境でも同じ
Match Classes(1) Name:"hight-after" Glyphs in the class:"v"
Match Classes(2) Name:"letters" Glyphs in the class:"a b c d e f g"
Matching rules based on a list of classes:
"high-after | letters @<'aalt' Access All Alternates in Latin lookup 0> |"


select match type and dialog type.


edit calt features.

# Check setting conditional features.

Menu: Window > New Metric Window
Menu:ウィンドウ > メトリックウィンドウを開く
write: "abvb"

Conditional Feature (Metric Window).

この記事は「FontForge conditional features (calt/aalt)」の日本語版です。


by MichinariNukazawa(ja) @ Project daisy bell(product freefont/font)

Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換する

 Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換することができるが、上手く変換されない場合がある。   以前作った魔法陣イラスト素材をイラスト素材ストックサイトへ登録しようと思い立ち、改めて素材用にラスタライズ変換をかけようとした。   ラスタライズ変換...