TeX/Font/MakeFont

TeX 用ギリシア語フォントの作成

さまざまなアクセントの組み合わせがあるので、非常に面倒です。lcdf-typetools を使えばある程度自動化できるのでしょうが、TrueType flavoured な OpenType フォントの場合はうまくできない場合があったりします。

そんなときは自分で .tfm ファイルを書き換える必要があります。

作業例

.tfm の書き換え

.tfm はバイナリなので、人間の読めるように変換します。

$ tftopl greekfont.tfm greekfont

次のポイントに従って作業していきます。ただし、CB.enc に沿ったエンコーディングであるとします。

注意

.pl に書き込むときはかっこの対応やスペースの数に注意します。また、同じ文字に対する LABEL が2つ以上あるとエラーになります。(STOP) の対応にも気をつけます。

hyphen, en dash, emdash

   (LABEL O 0)
   (LIG O 55 O 177)
   (STOP)
   (LABEL O 55)
   (LIG O 55 O 0)
   (STOP)

アクセント等

アクセント・気息記号・分離記号・イオタサブスクリプトについて行います。

小文字については約120個の合字(リガチャ)を定義します。

   (LABEL O 47)
   (LIG O 42 O 43)
   (LIG O 47 O 35)
   (LIG O 74 C V)
   (LIG O 76 O 136)
   (LIG C a O 210)
   (LIG C h O 240)
   (LIG C w O 270)
   (LIG C e O 350)
   (LIG C o O 354)
   (LIG C i O 320)
   (LIG C u O 324)
   . . .
   (STOP)

大文字についてはカーニングを調整します。

   . . .
   (KRN C A R -0.25)
   (KRN C E R -0.05)
   (KRN C H R -0.05)
   (KRN C I R -0.05)
   (KRN C O R -0.15)
   (KRN C U R -0.03)
   (KRN C W R -0.15)
   . . .

ギュメ

   (LABEL O 50)
   (LIG O 50 O 173)
   (STOP)
   (LABEL O 51)
   (LIG O 51 O 175)
   (STOP)

アポストロフィ・コーテーション

   (LABEL O 47)
   . . .
   (LIG O 47 O 35)
   . . .
   (STOP)
   . . .
   (LABEL O 140)
   . . .
   (LIG O 140 O 34)
   . . .
   (STOP)

boundary char の追加

8進数で375を boundary char とします。

(BOUNDARYCHAR O 375)

シグマの処理

   (LABEL C s)
   (LIG/ O 56 C c)
   (LIG/ O 54 C c)
   (LIG/ O 73 C c)
   (LIG/ O 72 C c)
   (LIG/ O 77 C c)
   (LIG/ O 41 C c)
   (LIG/ O 51 C c)
   (LIG/ O 57 C c)
   (LIG/ O 135 C c)
   (LIG/ O 375 C c)
   (LIG/ O 52 C c)
   (LIG/ O 35 C c)
   (STOP)

見えない文字 v の処理

(CHARACTER C v が定義されていなければ、先に定義しておきます。

   (LABEL C v)
   (LIG C v C v)
   (LIG C A C A)
   (LIG C B C B)
   (LIG C G C G)
   (LIG C D C D)
   (LIG C E C E)
   (LIG C Z C Z)
   (LIG C H C H)
   (LIG C J C J)
   (LIG C I C I)
   (LIG C K C K)
   (LIG C L C L)
   (LIG C M C M)
   (LIG C N C N)
   (LIG C X C X)
   (LIG C O C O)
   (LIG C P C P)
   (LIG C R C R)
   (LIG C S C S)
   (LIG C T C T)
   (LIG C U C U)
   (LIG C F C F)
   (LIG C Q C Q)
   (LIG C Y C Y)
   (LIG C W C W)
   (STOP)

stigma

ある種のフォントでは標準で stigma を用います。

   (LABEL C s)
   . . .
   (LIG C t O 6)
   . . .
   (STOP)

stigma を使わないものもあった方が(普通は)よいので、greekfont.tfm と greekfontst.tfm の2つを作るとよいでしょう。.enc, .pfb は同じものが使えます(.tfm, .map, .fd は別に用意します)。

他の作業

を参考にしてください。

参考

以上については、永田氏の s-dayroman に関する文書が大変参考になります。

フォントの機構に関する一般的な解説は、ページ・エンタープライゼズ、『LaTeX2ε マクロ&クラスプログラミング基礎解説』(技術評論社、2002)、203--269 にあります。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS