TrueType Fontの設定

X Window SystemでのTrueTypeフォントの設定をします。ちゃんと設定すればWindowsに負けない綺麗な画面になります。

Defoma(Debian Font Manager)のインストール

まず、Debianのフォント管理システムであるDefomaをインストールします。これは既にインストールされているかもしれません。また、必要となる他のパッケージもインストールしておきましょう。

[plain toolbar=false gutter=false highlight_lines=”1″]
# apt-get install defoma libft-perl

x-ttcidfont-confの設定

これは多分インストールされているので、dpkg-reconfigureコマンドを使って再設定します。

2項目質問されますので、1個めは必ず「xtt」を選びましょう。2個めはどちらでもいいです。高速なマシンを持っているなら「YES」(CPUを食うけど高品位)、CPUが遅いなら「NO」(軽いけど品質落ちるかも)を選択すればよいでしょう。

[plain toolbar=false gutter=false highlight_lines=”1″]
# dpkg-reconfigure x-ttcidfont-conf
[/plain]

TrueTypeフォントのインストール

DebianにはいくつかTrueTypeフォントのパッケージがあります。私は下記のフォントパッケージをインストールしています。

ttf-kochi-gothic-naga10
東風フォントと呼ばれる、日本語TrueTypeフォント(ゴシック体)です。
ttf-kochi-mincho-naga10
東風フォントと呼ばれる、日本語TrueTypeフォント(明朝体)です。
msttcorefonts
Microsoft社が配布しているTrueTypeフォントのインストーラです。Arial, Courier等の多くのフォントを自動的にダウンロードしてインストールします。
ttf-thryomanes
こちらもフリーのフォント集です(日本語フォントではありません)。

その他にも中国語・韓国語などたくさんありますので興味ある人は入れてみてください。下記コマンドで一覧が表示されます。

[plain toolbar=false gutter=false highlight_lines=”1,2″]
# apt-get update
# apt-cache search truetype | grep ^ttf
[/plain]

さて、インストールするフォントが決まったらapt-getコマンドでインストールします。ちなみに、私はttf-watanabe-minchoとttf-wadalab-gothicと言うフォントがインストールされていましたがこれは不要なのでアンインストールしました。途中で「What directory holds MS fonts」等を聞かれると思いますが、すべて空欄のままリターンキーを押しておきましょう。フォントのダウンロードにしばらく時間がかかりますが、じっと待ちましょう。

[plain toolbar=false gutter=false highlight_lines=”1,2,3″]
# apt-get update
# apt-get install ttf-kochi-mincho-naga10 ttf-kochi-gothic-naga10 msttcorefonts ttf-thryomanes
# apt-get remove ttf-watanabe-mincho ttf-wadalab-gothic
[/plain]

各TrueTypeフォントパッケージのインストールが開始されると下記のような出力がたくさんされると思います。これはdefomaによって、TrueTypeフォントがX Window Systemで使えるように設定されているところです。

[plain toolbar=false gutter=false]
/usr/bin/defoma-font -vt reregister-all /etc/defoma/hints/ttf-kochi-mincho-naga10.hints
Registering /usr/share/fonts/truetype/kochi/kochi-mincho.ttf..
Registering -kochi-mincho-medium-r-normal–0-0-0-0-c-0-iso8859-1..
Registering -kochi-mincho-bold-r-normal–0-0-0-0-c-0-iso8859-1..
Registering -kochi-mincho-medium-i-normal–0-0-0-0-c-0-iso8859-1..
Registering -kochi-mincho-bold-i-normal–0-0-0-0-c-0-iso8859-1..
Registering -kochi-mincho-medium-r-normal–0-0-0-0-c-0-jisx0201.1976-0..
Registering -kochi-mincho-bold-r-normal–0-0-0-0-c-0-jisx0201.1976-0..
Registering -kochi-mincho-medium-i-normal–0-0-0-0-c-0-jisx0201.1976-0..
Registering -kochi-mincho-bold-i-normal–0-0-0-0-c-0-jisx0201.1976-0..
Registering -kochi-mincho-medium-r-normal–0-0-0-0-c-0-jisx0208.1983-0..
Registering -kochi-mincho-bold-r-normal–0-0-0-0-c-0-jisx0208.1983-0..
Registering -kochi-mincho-medium-i-normal–0-0-0-0-c-0-jisx0208.1983-0..
Registering -kochi-mincho-bold-i-normal–0-0-0-0-c-0-jisx0208.1983-0..
[/plain]

xfs-xttのインストールと設定

XFS(X Font Server)は、XFSが動いているマシンのフォントデータを、他のマシンで動いているX Window Systemから使えるようにする機能です(もちろん、自分自身でも使えます)。xfs-xttは、XFSにTrueTypeフォントを使用できるように機能拡張したバージョンのパッケージです。

X Window Systemでは、xttモジュールを組み込むことによって、TrueTypeフォントを直接利用できるのでxfs-xttは実質不要です。もし、ネットワーク上にTrueTypeフォントが使用できないX Window Systemが会ったり、何か理由があってxttモジュールを組み込まない場合などはxfs-xttをインストールしておきましょう。インストールはいつものapt-getコマンドです(もしかしたら既にインストールされているかもしれません)。

[plain toolbar=false gutter=false highlight_lines=”1″]
# apt-get install xfs-xtt
[/plain]

xfs-xttの設定ファイルは/etc/X11/fs-xtt/configです。基本的に変更することはないのですが、xfs-xttに他のマシンから接続したい場合は、13行目あたりの「no-listen = tcp」という行を「#no-listen = tcp」とコメントアウトしておきましょう。

また、「catalogue」のところに「/var/lib/defoma/x-ttcidfont-conf.d/dir/TrueType」が含まれていることを確認しておいてください。

X Window Systemの設定

まず、xttモジュールを組み込んでいるかどうかを確認してください。「Section "Modules"」のところに「"xtt"」があればOKです。ない場合は、「dpkg-reconfigure xserver-xfree86」を実行して、X Windows Systemを再設定しましょう。詳しくは「X Window Systemの設定」を見てください。

次に/etc/X11/XF86Config-4を変更します。これが重要です。

変更するポイントは「Section "Files"」の部分です。「FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"」と「FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dir/TrueType"」を追加します。

また、xfs-xttを利用する場合は「FontPath "unix/:7110"」を追加します。なお、xfs-xttの設定のところで「no-listen = tcp」をコメントアウトした場合は、ここのところは「FontPath "tcp/localhost:7110"」になります。

私は、xfs-xttは使わないので以下のような感じになります。

[plain toolbar=false]
Section “Files”
# FontPath “unix/:7100” # local font server
# FontPath “unix/:7110” # local font server
# if the local font server has problems, we can fall back on these
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID”
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
FontPath “/usr/lib/X11/fonts/misc”
FontPath “/usr/lib/X11/fonts/cyrillic”
FontPath “/usr/lib/X11/fonts/100dpi/:unscaled”
FontPath “/usr/lib/X11/fonts/75dpi/:unscaled”
FontPath “/usr/lib/X11/fonts/Type1”
FontPath “/usr/lib/X11/fonts/Speedo”
FontPath “/usr/lib/X11/fonts/100dpi”
FontPath “/usr/lib/X11/fonts/75dpi”
[/plain]

XF86Config-4を書き換えたら、X Window Systemを再起動させましょう。gdmを使っている場合は以下のコマンドを実行します。

[plain toolbar=false gutter=false highlight_lines=”1″]
# /etc/init.d/gdm restart
[/plain]

とりあえずの確認

ここまでの設定がうまくいっているかどうかを確認しましょう。X Window Systemを起動して(xdm or gdmからログインして)xfontselを実行しましょう。

「fndry」を「kochi」、「fmly」を「gothic」、「wght」を「medium」、「slant」を「r」、「rgstry」を「jisx0208.1983」に変更してみて下のような日本語が表示されればOKです。もし、「fndry」で「kochi」を選べないような状況である場合は、おそらく設定ミスです。XF86Config-4に追加したFontPathが間違っているか、余分なFontPathが含まれているなどが考えられます。

xfontsel-1

msttcorefontsのフォント情報の生成

最初の方でmsttcorefontsパッケージをインストールしましたが、実はこれはダウンロードするだけで、そのままではこれらのフォントはX Window Systemで使用できません。そこで、これらを使用できるようにします。

Arialフォントの設定

まず、以下のコマンドでArialフォントのdefoma用情報ファイル(ヒントファイル)を生成します。

[plain toolbar=false gutter=false highlight_lines=”1″]
# defoma-hints -c truetype /usr/share/fonts/truetype/Arial*.ttf > /etc/defoma/hints/ttf-arial.hints
[/plain]

たくさん聞かれますので、次のように応えてください。

まずは、Arial.ttf。これは普通(非太字、非斜体)のフォントです。

  • Choose the Family of Arial.ttf → Arial
  • Choose the Subfamily of Arial.ttf → Regular
  • Choose the PostScript FontName of Arial.ttf → Arial-Regular
  • Foundry of Arial.ttf is Monotype → そのままでリターン
  • Mark the Location of Arial.ttf → そのままでリターン
  • Modify the Location if necessary → そのままでリターン
  • No Standard Charset for Vietname … → そのままでリターン
  • No Standard Charset for Catalan … → そのままでリターン
  • No Standard Charset for Basque … → そのままでリターン
  • Standard Charset of Arial.ttf is: … → そのままでリターン
  • Choose the GeneraryFamily of Arial.ttf → SansSerif
  • Choose the Weight of Arial.ttf → Medium
  • Choose the Width of Arial.ttf → Variable
  • Choose the Shapes of Arial.ttf → NoSerif, Upright
  • Add the Shapes of the font → そのままでリターン
  • Input the Alias(es) … → そのままでリターン
  • Input the Priority of … → 50

次は、Arial_Black.ttf。これは極太字(非斜体)のフォントです。長いので、重要なところだけ書いていきます。かかれていないところは、Arial.ttfと同じと考えてよいです。

  • Choose the Family of Arial_Black.ttf → Arial
  • Choose the Subfamily of Arial_Black.ttf → Regular
  • Choose the PostScript FontName of Arial_Black.ttf → Arial-Regular
  • Choose the GeneraryFamily of Arial_Black.ttf → SansSerif
  • Choose the Weight of Arial_Black.ttf → Demibold
  • Choose the Width of Arial_Black.ttf → Variable
  • Choose the Shapes of Arial_Black.ttf → NoSerif, Upright
  • Input the Priority of … → 50

次は、Arial_Bold.ttf。これは太字(非斜体)のフォントです。

  • Choose the Family of Arial_Bold.ttf → Arial
  • Choose the Subfamily of Arial_Bold.ttf → Bold
  • Choose the PostScript FontName of Arial_Bold.ttf → Arial-Bold
  • Choose the GeneraryFamily of Arial_Bold.ttf → SansSerif
  • Choose the Weight of Arial_Bold.ttf → Bold
  • Choose the Width of Arial_Bold.ttf → Variable
  • Choose the Shapes of Arial_Bold.ttf → NoSerif, Upright
  • Input the Priority of … → 50

次は、Arial_Bold_Italic.ttf。これは斜体・太字のフォントです。

  • Choose the Family of Arial_Bold.ttf → Arial
  • Choose the Subfamily of Arial_Bold.ttf → Bold.Italic
  • Choose the PostScript FontName of Arial_Bold.ttf → Arial-BoldItalic
  • Choose the GeneraryFamily of Arial_Bold.ttf → SansSerif
  • Choose the Weight of Arial_Bold.ttf → Bold
  • Choose the Width of Arial_Bold.ttf → Variable
  • Choose the Shapes of Arial_Bold.ttf → NoSerif, Italic
  • Input the Priority of … → 50

次は、Arial_Italic.ttf。これは斜体フォント(非太字)です。

  • Choose the Family of Arial_Bold.ttf → Arial
  • Choose the Subfamily of Arial_Bold.ttf → Italic
  • Choose the PostScript FontName of Arial_Bold.ttf → Arial-Italic
  • Choose the GeneraryFamily of Arial_Bold.ttf → SansSerif
  • Choose the Weight of Arial_Bold.ttf → Medium
  • Choose the Width of Arial_Bold.ttf → Variable
  • Choose the Shapes of Arial_Bold.ttf → NoSerif, Italic
  • Input the Priority of … → 50

以上で、ヒントファイル(ttf-arial.hints)が生成されるはずです。更にこれにちょっと編集して細工します。

ヒントファイルの中身は、各TryeTypeフォントファイルについて、begin~endで囲まれた範囲で各種設定が記載されています。ここに、「X-Foundry」「X-Family」「X-Weight」「X-Slant」を追加します、これらはX Window System上で認識されるフォントの種類に対応します。更に、xttモジュールの動作を制御をするための「TTCap」を追加します。詳しくは「サンプル」を見てください。

Times New Romanフォントの設定

同様にしてTimes New Romanのヒントファイルを生成します。

[plain toolbar=false gutter=false highlight_lines=”1″]
# defoma-hints -c truetype /usr/share/fonts/truetype/Times_New_Roman*.ttf > /etc/defoma/hints/ttf-roman.hints
[/plain]

これも、Arialの場合と同様に応えていきますが、「Generarl Famiry」をSansSerifではなく「Roman」にする、「Shapes」のNoSerifを「Serif」にする点に注意します。

ヒントファイルができたら、これも細工します。詳しくは「サンプル」を見てください。

Courier Newフォントの設定

同様にしてCourier Newのヒントファイルを生成します。

[plain toolbar=false gutter=false highlight_lines=”1″]
# defoma-hints -c truetype /usr/share/fonts/truetype/Courier_New*.ttf > /etc/defoma/hints/ttf-courier.hints
[/plain]

これも、Arialの場合と同様に応えていきますが、「Generarl Famiry」をSansSerifではなく「Typewriter」にする、「Width」のVariableを「Fixed」にする、「Shapes」のNoSerifを選択しない点に注意します。

ヒントファイルができたら、これも細工します。詳しくは「サンプル」を見てください。

その他のフォントの設定

msttcorefontsパッケージには他にもたくさんフォントがあるのですが、Arial, Times New Roman, Courier Newの3つがあれば大丈夫だと思います。必要ならば同様にしてヒントファイルを生成しましょう。

サンプル

なお、今回生成したファイルは下記のとおりです。Webサーバの都合上、htmlファイルにしているので、必要な方はコピペして使ってください。

msttcorefontsの登録

さて、生成したフォント情報を登録して、X Window Systemで使えるようにしましょう。登録は次のコマンドで行います。

[plain toolbar=false gutter=false highlight_lines=”1,2,3″]
# defoma-font -vt register-all /etc/defoma/hints/ttf-arial.hints
# defoma-font -vt register-all /etc/defoma/hints/ttf-roman.hints
# defoma-font -vt register-all /etc/defoma/hints/ttf-courier.hints
[/plain]

ちなみにフォント削除する場合は下記のようにします。ヒントファイルを変更する場合は、変更する前に一旦削除してから変更した方が良いようです。

[plain toolbar=false gutter=false highlight_lines=”1″]
# defoma-font -vt unregister-all 登録したときのヒントファイル
[/plain]

さて、登録ができたら下記のコマンドで確認しましょう。

[plain toolbar=false gutter=false highlight_lines=”1″]
# xset fp rehash
# xfontsel
[/plain]

下図のようにフォントがちゃんと表示されればOKです。

xfontsel-2

市販日本語フォントの登録

defomaを使えば、市販の日本語フォントも登録することができます。まずは、debianで使用したいフォントを/usr/local/share/fonts/truetypeにでもコピーしておきましょう。

そしてヒントファイルを生成しますが、TrueTypeフォントファイルの拡張子がttfとttcの場合で処理が異なります。

拡張子がttfの場合は簡単です、上記のmsttcorefontsの場合と同様に行ってください。ヒントファイルが生成されたら、「Transform = Slant Boldize」という行と、「TTCap = halfwidth-bw=0.5 italic-angle=0.2 no-ritalic no-oblique no-roblique」という行を付け加えてください。これにより、xttモジュールによって太字と斜体が生成されて使用することができます。

拡張子がttcの場合はちょっと異なります。ttcの場合は、一つのファイルに複数のTrueTypeフォントデータ(Face)が入っています。
例えば、リコーのttcファイルの場合は、固定幅フォントと可変幅フォントの2種類が入っています。まずはじめに、それぞれのFaceに付いて設定するかどうかを聞かれるので、YESを選択しておきましょう。

質問には適当に答えていきますが、固定幅フォントの場合にはWidthでFixedを選択し、可変幅フォントの場合にはVariableを選択するのを間違えないようにしましょう。

詳しくは下記のファイルを見てください。

ヒントファイルができたらこれもdefoma-fontコマンドで登録しましょう。

フォローする