next up previous
Next: 多言語その他の利用方法について Up: LATEX 多言語環境の構築 Previous: 多言語環境の構築

ロシア語その他 TEX 用各種フォントの作成

TEX のフォントには通常、組版の際に利用するメトリック情報 (字幅や高さ・深さなどの数値)をもった tfm フォントと、実際の 印字に使われるビットマップ形式の pk フォントがあります。 多言語環境の実現のためには METAFONT とよばれるフォント生成システムを 利用してフォント・ソースからフォントを生成しなければなりません。

pk フォントは利用するプリンタの機種・解像度に合わせて作成します。 ここでは、Canon 製の 360dpi インクジェット・プリンタ用の pk フォントを作成する方法を例として示します。

1.
フォント作成スクリプトの準備
    これがあるとフォントの作成が簡単で、あとあとも使えます。 Mule で次のようなファイル(ファイル名は makefont にしましょう)を 編集し$TEXMF/fonts/makefont に セーブします。
    ``bjtenex''というのがプリンタの指示で、 ``modes.mf''というファイルのなかを漁って自分のプリンタと 同じ仕様(解像度・メーカなど)のものをみつけて試してみるのが よいでしょう。
    ``magstepX''は 1 ずつ増えるにしたがい1.2倍の大きさの グリフができ、ここでは、0 から 5 まですべて作成することにしていますが、 ディスクの空き容量やフォント・サイズの利用頻度によっては magstep0のみでよいでしょう。
 

#!/bin/sh
#       METAFONT makefont script
#       magstep0 360
for i in *[0-9].mf ; do
mf "\mode=bjtenex; mag=magstep0; \nonstopmode; input $i"; done
for i in *360gf ; do gftopk $i; done
#       magstep0.5 394
for i in *[0-9].mf ; do
mf "\mode=bjtenex; mag=magstep0.5; \nonstopmode; input $i"; done
for i in *394gf ; do gftopk $i; done
#       magstep1 432
for i in *[0-9].mf ; do
mf "\mode=bjtenex; mag=magstep1; \nonstopmode; input $i"; done
for i in *432gf ; do gftopk $i; done
#       magstep2 518
for i in *[0-9].mf ; do
mf "\mode=bjtenex; mag=magstep2; \nonstopmode; input $i"; done
for i in *518gf ; do gftopk $i; done
#       magstep3 622
for i in *[0-9].mf ; do
mf "\mode=bjtenex; mag=magstep3; \nonstopmode; input $i"; done
for i in *622gf ; do gftopk $i; done
#       magstep4 746
for i in *[0-9].mf ; do
mf "\mode=bjtenex; mag=magstep4; \nonstopmode; input $i"; done
for i in *746gf ; do gftopk $i; done
#       magstep5 896
for i in *[0-9].mf ; do 
mf "\mode=bjtenex; mag=magstep5; \nonstopmode; input $i"; done
for i in *896gf ; do gftopk $i; done
exit

 

2.
LH フォントの作成
    CTAN のフォント集から LH キリル文字フォント・パッケージを 入手し、$TEXMF/fonts/LH にコピーします。
 

# cd $TEXMF/fonts
# mount /cdrom
(CTAN CD-ROM のマウント)
# cp -R /cdrom/fonts/LH ./LH
# cd LH/src

 

    LH フォントはそのままでは ALT エンコーディングのため、BABEL パッケージでは利用できません。 このためエンコーディングをワシントン大学キリル・ エンコーディングに変換する必要があります。 BABEL パッケージの説明には変換のための perl スクリプト例が掲載されています。 次に、これを利用してスクリプトを作成し (``cyrcnv.pl''としています)、実行許可を付与します。
    その後このエンコーディング変換スクリプト及び前段で作成したフォント 生成スクリプトを実行します。しばらくかかります。
    終了したら、tfm ファイルと pk ファイルをそれぞれ TEXと dviware が参照できる場所に移動します。
    pkファイルは $TEXMF/fonts/pk に格納するものとします。

 


# chmod +x cyrcnv.pl
(実行許可付与)
# cyrcnv.pl
# sh $TEXMF/fonts/makefont
# rm -f *gf
# mv *.tfm ../tfm
# mv *pk $TEXMF/fonts/pk/

 

 
    エンコーディング変換スクリプト (cyrcnv.pl):
 


#!/usr/local/bin/perl
$|=1;
$command = "ls lh*.mf";
open (LIST, "$command |");
while (<LIST>) {
  chop;
  $lhname = $wnname=$_;
  $wnname =~ s/lh/wn/;
  print $wnname, "\n";
  open (FILE, ">$wnname");
  print FILE "wncoding:=1;\ninput $lhname;\n";
  close (FILE);
}

 

3.
ギリシア語/発声記号フォントの作成
    CTAN のフォント集からそれぞれのフォント・パッケージを入手し、 $TEXMF/fonts にコピーします。
    その後 makefont を実行し、終了後ファイルを移動します。
 

# mount /cdrom
(CTAN CD-ROM のマウント)
# cd $TEXMF/fonts
# mkdir -p levy/{src,tfm}
# cp /cdrom/fonts/greek/levy/*.mf levy/src
# cd levy/src
# sh $TEXMF/fonts/makefont
# rm -f *gf
# mv *.tfm ../tfm; mv *pk $TEXMF/fonts/pk
# cd $TEXMF/fonts
# mkdir -p wsuipa/{src,tfm}
# cp /cdrom/fonts/wsuipa/*.mf ./wsuipa/src
# cd wsuipa/src
# sh $TEXMF/fonts/makefont
# rm -f *gf *.log
# mv *.tfm ../tfm; mv *pk $TEXMF/fonts/pk
# sync; rehash

 

4.
ECフォントの作成
    LATEX は通常コンピュータモダーンフォント (cm) を利用 しますが、これは、アクセント付文字をアクセントと親文字の合成で 出力します。 しかし、ヨーロッパの活字ではアクセント付文字は、単純合成でできる 文字とは微妙にデザインが異なるわけで、ヨーロッパ文学の引用を多用する のであれば、こうした文字もプロパーデザインで作成した EC フォントを 利用するほうがよいのではないでしょうか。 また扱える特殊文字やアクセントの種類が拡張されます。
    EC フォントは LATEX パッケージに標準で添付 されていますが pk フォントがないので表示・印刷ができません。 これについても pk フォント・ファイルを作成しましょう。
    $TEXMF/fonts/public/ec などにすでにソース ファイル(フォントのネタ)があると思われます。 インストールのドキュメントにしたがってまずソースを展開します。 次に makefont を実行し、終了後ファイルを移動して完了です。
    makefont で非常に時間がかかるので注意してください。
 

# cd $TEXMF/fonts/public/ec/src
# tex ecstdedt
# tex tcstdedt
# sh $TEXMF/fonts/makefont
(非常に時間がかかります)
# rm -f *gf *.log
# mv *.tfm ../tfm; mv *pk $TEXMF/fonts/pk
# sync; rehash

 
5.
texmf.cnf修正
    作成した フォントを TEX や dviware がアクセスできるように するためには $TEXMF/web2c/texmf.cnf にパスの定義を記述します。
 

TFMFONTS = .:/usr/local/share/fonts/vf-a2bk//:$TEXMF/fonts//tfm//
VFFONTS = .:/usr/local/share/fonts/vf-a2bk//:$TEXMF/fonts//vf//
PKFONTS = .:$TEXMF/fonts/pk//:/usr/local/lib/fonts/pk360//

 



| ホームに戻る | もくじに戻る |