- 追加された行はこの色です。
- 削除された行はこの色です。
[[TeX/Font/MakeFont]]
*ls-grml [#xfd1b059]
最近は三日月型シグマ(lunate sigma)で組まれた校訂本も増えてきています。LaTeX 用に配布されているフォントには三日月型シグマを含んだものはあまりありません。ドイツの Teubner 社の古典叢書(Bibliotheca Teubneriana)で伝統的に使われてきたフォントを模した、grml フォントに三日月型シグマを追加してみることにしました。
最近は三日月型シグマ(lunate sigma)で組まれた校訂本も増えてきています。LaTeX 用に配布されているフォントには三日月型シグマを含んだものはあまりありません(ibycus4 フォントくらいでしょう)。ドイツの Teubner 社の古典叢書(Bibliotheca Teubneriana)で伝統的に使われてきたフォントを模した、grml フォントに三日月型シグマを追加してみることにしました。
**三日月型シグマの作成 [#jcb5841a]
$ cp /path/to/grml1000.pfb ./ls-grml1000.pfb
$ fontforge ls-grml1000.pfb
FontForge が起動したら、後で修正するときのことを考えて「ファイル」-「別名で保存」で ls-grml1000.sfd というファイル名で保存しておきます。大文字・小文字ともオミクロンをベースにするのが簡単でしょう。FontForge 上で大文字・小文字のシグマの位置にコピーしておきます。他の字形(グリフ)は不要なので削除しておきます。なお、オミクロンを半分に割っただけでは文字幅が狭く感じますので、両端を引き伸ばすようにするとよいようです。
**.pfb, .tfm ファイルの出力 [#u1f7f722]
「ファイル」-「フォントを出力」で .pfb, .tfm, .enc ファイルを出力します。できた ls-grml1000.tfm を読める形に変換します。
$ tftopl ls-grml1000.tfm ls-grml1000
次のような記述があります。後で使います(*)。
(CHARACTER C S
(CHARWD R 0.66) <- 後で使う
(CHARHT R 0.705999) <- 後で使う
(CHARDP R 0.021363) <- 後で使う
)
(CHARACTER C s
(CHARWD R 0.403) <- 後で使う
(CHARHT R 0.441271) <- 後で使う
(CHARDP R 0.012545) <- 後で使う
)
**仮想フォントの作成 [#rd354afb]
仮想フォントを作ります。grml1000.tfm を読める形に変換します。
$ cp /path/to/grml1000.tfm ./
$ tftopl grml1000.tfm ls-grml.vpl
ls-grml.vpl ファイルの最初の方に FONTDIMEN というセクションがありますので、その下に次のような記述を加えます。
(MAPFONT D 0
(FONTNAME grml1000)
(FONTAT R 1.0)
(FONTDSIZE R 10.0)
)
(MAPFONT D 1
(FONTNAME ls-grml1000)
(FONTAT R 1.0)
(FONTDSIZE R 10.0)
)
次に、CHARACTER C S という記述を探します。(*)で控えた行で置き換え、MAP セクションを加えます。
(CHARACTER C S
(CHARWD R 0.66) <- 置き換え
(CHARHT R 0.705999) <- 置き換え
(CHARDP R 0.021363) <- 置き換え
(MAP <- 追加
(SELECTFONT D 1) <- 追加
(SETCHAR C S) <- 追加
) <- 追加
. . .
)
同様に CHARACTER C c, CHARACTER C s に対して小文字のシグマの記述を行います。
仮想フォントを作成します。
$ vptovf ls-grml.vpl ls-grml
**.fd, .map ファイルの作成 [#c5f67458]
ot1ls-grml.fd ファイルを作成します。
¥DeclareFontFamily{OT1}{ls-grml}{}
¥DeclareFontShape{OT1}{ls-grml}{m}{n}{ <-> ls-grml }{}
¥DeclareFontShape{OT1}{ls-grml}{bx}{n}{ <-> sub ls-grml/m/n }{}
¥DeclareFontShape{OT1}{ls-grml}{b}{n}{ <-> sub ls-grml/m/n }{}
¥DeclareFontShape{OT1}{ls-grml}{m}{sl}{ <-> sub ls-grml/m/n }{}
¥DeclareFontShape{OT1}{ls-grml}{m}{it}{ <-> sub ls-grml/m/n }{}
¥endinput
これらに加えて ot1 を t1, lgr に変えたもの(t1ls-grml.fd, lgrls-grml.fd)も作っておきます。
ls-grml.map ファイルは次のようになります。
grml1000 grml1000 "" <grml1000.pfb
ls-grml1000 ls-grml1000 "" <ls-grml1000.pfb
**テスト1 [#hd9c8827]
$ tex testfont
. . .
*¥table¥bye
$ dvipdfmx -f ls-grml.map testfont
**テスト2 [#kebadc6c]
次のような test.tex を作成します。
¥documentclass{article}
¥usepackage[greek,english]{babel}
¥languageattribute{greek}{polutoniko}
¥begin{document}
{¥usefont{LGR}{ls-grml}{m}{n} Test, test}
¥end{document}
次のように処理します。
$ latex test
$ dvipdfmx -f ls-grml.map test
**インストール [#eec70c1e]
必要なファイルをインストールします。.map ファイルの登録は次のようにします。
$ updmap(-sys) --enable Map=ls-grml.map
**.sty ファイル [#s6c17dd7]
必要に応じて ls-grml.sty ファイルを作成してインストールします。
**見本 [#ff130fba]
以下に見本が添付されています。
-ilias_1_1_ls-grml.pdf (Lipsiakos)
-ilias_1_1_ls-grxl.pdf (Bold Lipsiakos)
-ilias_1_1_ls-grmn.pdf (Didot)
-ilias_1_1_ls-grxn.pdf (Bold Didot)