TrueType Fonts in Debian mini-HOWTO

Bear Giles, bgiles@coyotesong.com

v0.3, 10 January 2000

中野武雄 nakano@apm.seikei.ac.jp

v0.3j, February 2000?


この文書では、 Debian システムで表示・印刷に TrueType フォントを 利用するための設定について説明します。この文書の最新版は、 http://www.dimensional.com/~bgiles/debian-tt.html から HTML フォーマットで参照できます。 【訳者注: この文書は xtt を扱っていませんので、 そのまま使うと日本語が出なくなったりするかもしれません。 at your own risk でご利用ください。】

1. はじめに

2. ディスプレイ (誰も言わなかったこと)

3. ディスプレイ (X とフォントサーバー)

4. 印刷 (ghostscript)

5. アプリケーション用の設定

6. 未解決の問題

7. TrueType フォントの取得

8. 法的条項


1. はじめに

Linux をインストールすると、フォント・フォントメトリックのセットが それぞれ別個にいくつかインストールされてしまうことが良くあります。 例えば私のシステムをざっと見てみると、フォントやフォントメトリックは 以下のようなディレクトリに分散しています。

いうまでもないですが、これらのフォントは統合されていません。

TrueType フォントは、同じフォントファイルで表示も印刷も行えるようにして、 この問題を解決するためにデザインされました。この HOWTO では、 Debian GNU/Linux システムで TrueType フォントを ディスプレイ・印刷・文書作成に利用する方法について説明するつもりです。

1.1 免責

この文書の情報は、私の知るかぎりでは正しいものです。 しかしこの文書はまだ若い版ですし、私の環境で動作するものが あなたのところでもそうであるとは限りません。 この文書が役に立たなくても許してください。 私はプロのテクニカルライターじゃないですし、 大事な問題の上辺だけを取り繕っていたこともあるんです。

ですから、試すときには気をつけてください。 バックアップも忘れずに。

1.2 謝辞

Created by Bear Giles, <bgiles@coyotesong.com>

Thanks go to:

1.3 Additional links

These links don't directly discuss Debian systems or packages, but they may still be interesting to readers of this mini-HOWTO.

1.4 変更履歴

1.5 フィードバック

コメント・修正・追加・批判などは常に歓迎します。 私に連絡するには bgiles@coyotesong.com を使ってください。

1.6 関連プロジェクト

FreeType http://www.freetype.org/

FreeType エンジンはフリーで可搬性のある TrueType フォントの レンダリングエンジンです。コードは「クリーンルーム」で実装されており、 Apple や Microsoft の実装とは完全に独立しています (しかし最近 Apple の特許に関連した問題が浮上しています)。 FreeType はライブラリで、フォントサーバや完全なテキストレンダリング ライブラリではありません。

1.7 配布

これは最初のドラフトで、公開後には多くの重要な変更がなされる ことと思います。できれば http://www.dimensional.com/~bgiles/debian-tt.html にある最新のバージョンを参照してください。 この文書の落ち着き先として、 http://www.coyotesong.com/ も予定しています。


2. ディスプレイ (誰も言わなかったこと)

X での TrueType フォントの設定に乗り込む前に、 まずポイント (point) とピクセル (pixel) の違いについて、 そしてその違いがなぜ問題になるかについて、 振り返ってみることにしましょう。

表示されたフォントは ポイント 単位で測長されます。 1 インチは正確に 72 ポイントになります。なぜ 72 かって? おそらく理由の一つはメカニカルな植字機械の寸法の限界であり、 また他の理由としては、 72 が 2, 3, 4, 6, 8, 9, 12, 18, 24 のいずれによっても割ることができるから、ということもあるのでしょう。 ここで PostScript のデフォルトの単位が 1 ポイントであることも知っておいて損はないでしょう。

(歴史的なメモ: いま私は嘘をつきました。 PostScript が導入されるまでは、 1 インチは正確には 72.27 ポイントでした。 しかしこのポイントサイズが決められたのは、 金属の活字で印字するメカニカルなプリンタの時代で、 標準サイズの種類があまり必要とされなかったからでした。 コンピュータディスプレイとレーザープリンターでは、 あらゆるサイズのフォントが簡単に使えますから、 72 が上記の理由に照らしてずっと重要になったのです。)

一般的なルールとしては、テキストのほとんどは 7 から 12 ポイント の間で表示すべきです。 6 ポイント以下のものは、「細字」としての 扱いになります。ラインプリンターは 9 または 12 ポイントの活字 (それぞれ 8 行/インチ、 6 行/インチ) を使います。

一方これとは対称的に、ビデオドライバはフォントを必ず ピクセル単位で測ります。ビデオドライバにとっては、 スクリーンは 1024x800 ピクセルなものであり、 10x8 インチや 720x576 ポイントといったものではないのです。

ポイント (フォントサイズの指定に用いる) をピクセル (ビデオメモリの範囲指定に用いる) に変換するには、スクリーンの 解像度を知らなければなりません。この値は通常 "dot per inch (dpi)" 単位で測定されます。実際には pixcel per inch なんですけど。 これらは XFree86 に含まれている二種類のビットマップフォントの 単位に用いられています。 fonts-75 は ローエンドのディスプレイ (だいたい 75dpi) で用いるためのもので、 fonts-100 は中クラスの 100dpi 程度のディスプレイで用いる ものです。 120dpi 以上の解像度を持つ、ハイエンドディスプレイ用の ビットマップフォントは、存在しません。

具体的な例を挙げましょう。対角 13" のスクリーン (11.1" が利用可) が 640x480 ピクセルの画像を表示すると、解像度は 72.0 dpi になります。 これは偶然の一致ではありません。実は、ほとんどの web ページ (と Microsoft のアプリケーション) は、解像度がちょうど 72 dpi の ディスプレイを標準としてデザインされているのです。 XFree86 の デフォルト設定は、ディスプレイの解像度を 75dpi と仮定しています。

現実の世界に戻ると、もはや 640x480 のビデオを使っている人はいません。 対角 13" のスクリーンもありません。ビデオカードのほうが ビデオモニタよりも速く進歩したので、以下の私のような設定もあまり 珍しくなくなりました: 19" 対角のスクリーン (17+" 利用可)、 1600x1200 ピクセル、分解能 117 dpi。

もし私が X をデフォルトの設定で動かすと、全てのフォントは意図していた もののおよそ 2/3 のサイズになります。 全てのフォントがひとサイズ切り下げられた状態、といっても過言でない状況 です。 large フォント (12ポ) は medium (9ポ) に見えますし、 medium フォント (9ポ) は small (6ポ) に見えるわけです。

この状態をなおす方法は三つあります。一つめは、 X サーバーに実際のスクリーン解像度を知らせる方法です。

/etc/X11/xdm/Xservers
#:0 local /usr/X11R6/bin/X -bpp 16
:0 local /usr/X11R6/bin/X -bpp 16 -dpi 120

二つめは、 100 dpi のビットマップフォントを 75 dpi のフォントよりも 優先して使うようにする方法です。

/etc/X11/XF86Config
Section "Files"
    RgbPath    "/usr/X11R6/lib/X11/rgb"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
EndSection

最後の方法として、ビットマップフォントにサイズが合わないものがある場合、 X サーバは似たフォントをピクセル置き換えによって「スケール (拡大・縮小)」 しようとします。結果は決して快適に利用できるものではありません。 もし十分高速なシステムを使っているなら、 スケーラブルなフォントをデフォルトで使い、 次に正確にサイズの合ったビットマップを使い、 それでもダメならスケールしたビットマップフォントを 使うようにさせるといいでしょう。

/etc/X11/XF86Config
Section "Files"
    RgbPath    "/usr/X11R6/lib/X11/rgb"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection

2.1 XFree86 4.0 の先取り情報

たった今知らされたところによると、ビデオとモニターが DDC 通信を サポートしていれば、 XFree86 でも DCC 通信を使えるようになるようです。 DDC 通信を使うと、 X サーバーはモニターに物理的な寸法を問い合わせ、 自動的に DPI 設定を計算することができるようになります。

ただし、 font path への適切な変更は依然必要となるでしょう。 あなたが明示的に設定したものを、 サーバが適当に代えてくれるなんてことはありえませんから。

2.2 注意: X 設定ファイルを変更する前にやっておくべきこと

X11 の設定ファイルに変更を施す前には、 ファイルの先頭付近に exit 0 を入れて、 XDM を無効にしておくと良いでしょう (というかそうしましょう)。 これを行わないと、何らかの理由で X が起動できなくなった場合、 XDM はシステムをクソったれな busy ループに陥れてしまいます。 これを修正するのはもう口にできないほど大変です。 いいですか、警告しましたからね。後で泣き言を言わないように。


3. ディスプレイ (X とフォントサーバー)

厳密にいうと、 X サーバーで TrueType フォントを使うには フォントサーバーの設定が絶対に必要、というわけではありません。 お望みならフォントサーバーの代わりにスタティックなファイルを使うことも できるのです。 ghostscript で TrueType を利用するための 設定を説明している部分をみてください。

3.1 xfs フォントサーバーをセットアップする

話をはじめる前提として、動作する /etc/X11/XF86Config ファイルが手元にあり、 そこでは FontPath でフォントをロードする それぞれのディレクトリを明示的に指定しているものとします。 我々はこの部分を xfs フォントサーバーを利用するように 書き換えることになります。

XFS をインストールする

まだしていなければ、main/binary-*/x11/xfs_*.deb をインストールしてください。

XFS を設定する

/etc/X11/xfs/config を編集し、 catalogue にあなたの FontList が 含まれるように変更してください。 default-resolutions の値も変更するといいかもしれません。

/etc/X11/xfs/config
# paths to search for fonts
catalogue = 
    /usr/X11R6/lib/X11/fonts/100dpi/:unscaled,
    /usr/X11R6/lib/X11/fonts/75dpi/:unscaled,
    /usr/X11R6/lib/X11/fonts/misc/,
    /usr/X11R6/lib/X11/fonts/Speedo/,
    /usr/X11R6/lib/X11/fonts/Type1/,
    /usr/X11R6/lib/X11/fonts/100dpi/,
    /usr/X11R6/lib/X11/fonts/75dpi/
# x1,y1,x2,y2,...
default-resolutions = 100,100,75,75

XFS を再起動する

XFS を通常の Debian の作法に従って再起動します。

root shell
# /etc/init.d/xfs restart

XFS の動作を確認する

XF86Config を変更する前に、 xfs サーバーが 動作しているかどうかを、フォントサーバーからのリストを取って 確認してみましょう。

user shell
$ fslsfonts -server unix/:7100
-adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1
....

xfs を使うように /etc/X11/XF86Config を変更する

さて、 X サーバーに xfs フォントサーバーを使うように させる準備ができました。 xfs に問題があったときのための備えとして、 スタティックなフォントパスも残しておくことにしましょう ("misc" を残します。ここにはデフォルトのフォントである fixed が 入っているからです。)

/etc/X11/XF86Config
Section "Files"
    FontPath   "unix/:7100"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
EndSection

X を再起動する

デンジャラスな人生がお好みでなければ、 Xstartx によって再起動します。 もし危険がお好きな方は、 あなたの巨額な生命保険の証書の受取人に私の名前を書いて、 xdm を再起動してください。

XFS フォントが見えるか確認する

X セッションが確立されたら、サーバーが xfs のフォント すべてを見ることができているか確認しましょう。 X サーバーを通してフォントをリストします。

user shell
$ xlsfonts
-adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1
....

3.2 xfstt フォントサーバーをセットアップし、 TrueType フォントをインストールする

ここまでで、 xfs フォントサーバーは動作したものとします。 では xfstt によって TrueType のサポートを追加しましょう。

XFSTT をインストールする

まだしていなければ、main/binary-*/x11/xfstt_*.deb をインストールしてください。

TrueType フォントをインストールする

お手元の TrueType フォントを /usr/share/fonts/truetype ディレクトリにコピーします。これらのファイルは通常 .ttf という 拡張子になっています。パーミッションは 0444 にしましょう。

XFSTT フォントサーバーを再起動する

force-reload フラグを付けて xfstt サーバーを再起動します。

root shell
# /etc/init.d/xfstt force-reload

XFSTT の動作を確認する

XF86Config を変更する前に、 xfstt サーバーが 動作しているかどうかを確認しましょう。

重要: Debian の xfstt サーバーはポート 7100 ではなく 7101 を使います。またデフォルトでは、 この問い合わせには root 権限が必要になっています

user and root shells
$ fslsfonts -server unix/:7101
_FSTransSocketUNIXConnect: Can't connect: errno = 111
fslsfonts:  unable to open server "unix/:7101"

# fslsfonts -server unix/:7101
-ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1

xfstt を使うように /etc/X11/XF86Config を変更する

さて、 X サーバーに xfs フォントサーバーを使うように させる準備ができました。 TrueType フォントを他のすべてに優先して使うようにします。

/etc/X11/XF86Config
Section "Files"
    FontPath   "unix/:7101"
    FontPath   "unix/:7100"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
EndSection

XFSTT フォントが見えるか確認する

X セッションが確立されたら、 サーバーがすべての TrueType フォントを見ることができているか、 リストを取って確認しましょう。


$ xlsfonts | grep ttf
-ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1
....

3.3 TrueType フォントを使う

ここまでで、 TrueType フォントを GIMP, Netscape, StarOffice などのアプリケーションで利用できるようになったはずです。 ほとんどの TrueType フォントは等幅フォントではありませんので、 xterm では使わないほうがいいでしょう。この手のプログラムでは 文字セルの最大サイズに合わせて等幅に文字を表示します。

3.4 TrueType フォントを追加インストールする

xfstt フォントサーバーを使っている場合は、 TrueType フォントの追加は簡単です。

3.5 国際化 (Internationalization)

xfstt には複数のフォントエンコーディングを生成する機能があります。 ただしその TrueType フォントに必要なグリフが含まれている必要があります。 iso8859-1/unicode-1 以外のフォントを利用するには、 /etc/init.d/xfstt スクリプトを手で編集する必要があります。

/etc/init.d/xfstt
- start-stop-daemon --start --quiet --exec $XFSTT -- \
      --port $portno --daemon 
+ start-stop-daemon --start --quiet --exec $XFSTT -- \
      --port $portno --encoding iso8859-1,koi8-r,windows-1252,symbol-0 \
      --daemon 

Debian 2.1 で認識されているエンコーディングは以下の通りです:

iso8859-x エンコーディングの最初の 128 文字は常に ASCII です。 windows- には "smart quotes" のような追加文字が含まれており、 iso8859-1 を拡張しています。 (これら "smart quotes" のような 拡張は iso8859-1 には含まれていないため、これらの文字は クエスチョンマークにレンダリングされます。)

文字セットのエンコーディングに関するより詳しい情報を得るには、 以下のすばらしいサイトを訪ねてください。

3.6 セキュリティの問題

上記では Unix ソケットを用いましたが、標準的な Debian パッケージでは、 xfsxfstt とに、それぞれ TCP/IP ポート 7100 と 7101 を使わせるようにすることもできます。これらのポートへの アクセスは /etc/X11/xfs/configtrusted-clients フィールドによってコントロールしておくべきですが、 このオプションは XFree86 3.3.2.3a では実装されていません。

これはすなわち、誰でも、どこからでも、あなたのフォントサーバーに アクセスできてしまうことを意味します。 xfs (おそらく xfstt も) は多くのユーザーを処理するために "clone" しますので、 これらのシステムには明らかに利用不能攻撃 (DoS attack) の危険性が存在します。フォントサーバーを ダイヤルアップ回線で使っている場合には (あなたはその場にいるでしょうから) おそらく安全でしょうが、 DSL やケーブルモデムの利用者はファイアウォールを使うべきでしょう。


4. 印刷 (ghostscript)

バージョン 4 から、 ghostscript は TrueType フォントのサポートを コンパイル時のオプションに指定できるようになりました。 Debian には ghostscript のパッケージが二つあります。

どちらのバージョンでも TrueType フォントは使えます。

4.1 TrueType フォントを使うように Ghostscript を設定する

すでに動作している xfstt サーバーがあれば、 ghostscript に TrueType フォントを使わせるようにする設定は 簡単です。次のコマンドを実行するだけです:


# xfstt --gslist --sync >> /etc/gs.Fontmap

実際には、 xfstt が生成したフォント定義にいくつか 小さな変更をすると良いことがわかりました。まず、 フォントの名前にスペースが入っていない場合には、 その名前を通常の記法に変更しました。フォントにスペースが 入っている場合には、すべてのスペースをダッシュに置き換え、 元の (スペースを含んだ) 名前は新しい名前のエイリアスとして 追加しました。

そして、すべてのフォントの名前に TTF- (あるいは MS-) を前置しました。すでに存在しているフォントと TrueType フォントの 名前が同一だった場合に生じる問題を避けるためです。

したがって、


(Arial)               (/usr/share/fonts/truetype/arial.ttf)   ;
(Arial Bold Italic)   (/usr/share/fonts/truetype/arialbi.ttf) ;

が、以下のようになります。


/MS-Arial             (/usr/share/fonts/truetype/arial.ttf)   ;
/MS-Arial-Bold-Italic (/usr/share/fonts/truetype/arialbi.ttf) ;
(Arial Bold Italic)   /MS-Arial-Bold-Italic                   ;
/Arial                /MS-Arial                               ;

エイリアスによって、 ghostscriptxfstt は 共通の名前で同じフォントを使うことが依然可能になっています。

さらに重要なことですが、このフォント名の変更によって、 shostscript に TrueType フォントを標準フォントの代わりに 使用させる事ができるのです。ドキュメントには 括弧を使った記法によってもこれが可能だと書いてありますが、 私の場合はうまくいきませんでした。

例えば、以下のような内容を /etc/gs.Fontmap ファイルに 追加すれば、 Helvetica フォントの代わりに Microsoft の フリーな Arial フォントを ghostscript に使わせることができます。


/Helvetica               /MS-Arial              ;
/Helvetica-Oblique       /MS-Arial-Italic       ;
/Helvetica-Bold          /MS-Arial-Bold         ;
/Helvetica-BoldOblique   /MS-Arial-Bold-Italic  ;

同様のエイリアスは他の標準フォントに対しても定義できます。 これらのエイリアスは Windows クライアントにサービスを提供している samba プリンタで用いると非常に便利でしょう。

4.2 TrueType フォントの見本を印刷する

ghostscript が正しく TrueType フォントを利用するように 設定されたかを調べるには、フォントの見本ページを印刷するのが 最も良いでしょう。 ghostscript 5.50 を動かしていて、 これがデフォルトのプリントキューならば、 すべての TrueType フォントを以下のコマンドで印字できます。


# xfstt --gslist --sync | printfont

ここで printfont は以下のシェルスクリプトです。


#!/bin/sh

set -e
IFS= ')'

while read fontname rest
do
    cat << EOM | lpr
%!PS
(/usr/lib/ghostscript/5.50/prfont.ps) run
$fontname) DoFont
EOM
done

2, 3 のフォントだけを印刷したい場合は、 以下のスクリプトのほうが簡単でしょう。


#!/bin/sh

set -e
while read -p "Font name, or ^D to exit: " fontname
do
    cat << EOM | lpr
%!PS
(/usr/lib/ghostscript/5.50/prfont.ps) run
$fontname DoFont
EOM
done


5. アプリケーション用の設定

5.1 AFM フォントメトリックの生成

AFM フォントメトリックファイルは、すでに存在しているファイルを TrueType フォントで表示する際には必要ありませんが、新しく ファイルをつくるときに必要です。 ghostscript のプログラム /usr/lib/ghostscript/5.50/printafm.ps によって、 これらのメトリックファイルを生成することができます。 しかし tetex-bin パッケージにある ttf2afm プログラムの方が、より使い方が簡単でしょう。

以下のスクリプトは、ディレクトリにある全ての TrueType フォントに対して、対応する afm ファイルを生成します。


#!/bin/sh

set -e

for i in *.TTF
do
    /usr/bin/ttf2afm $i > ${i%TTF}afm
done

for i in *.ttf
do
    /usr/bin/ttf2afm $i > ${i%ttf}afm
done

ttf2afm には一つ些細な問題があります。 アプリケーションのなかには、 afm ファイルの先頭に StartFontMetrics タグがあると想定しているものがあるのですが、 ttf2afm の作るファイルはコメントで始まるのです。 この「問題」は、それぞれのファイルをテキストエディタで 修正してやれば簡単に回避できます。

5.2 font.map ファイルを生成する

afm ファイルができたら、システムにその場所を 教えてやる必要があります。これには通常 font.map ファイルが用いられます。

このファイルのフォーマットに関するドキュメントを、 私は見つけることができていません。 mkfontdir プログラムが生成する fonts.dir, fonts.scale, fonts.alias などのドキュメントはあるんですけど。 しかしもっとも簡単なフォーマットは極めて単純です。

複数のエントリを書くことによってエイリアスも使えるようです。 ファイル名の拡張子は小文字で書く必要があります。

5.3 画像の操作: GIMP

GIMP は Gnu Image Manipulation and Paint プログラムです。 gimp には特に TrueType に関して変更を行う必要はありませんでした。

5.4 ASCII → PostScript 変換: enscript

enscript は ASCII を PostScript に変換するプログラムです。 同様の目的に使える他のプログラムには、 a2psmpage があります [訳注: a2ps には日本語化された a2ps-ja があります]。 enscript には、ページを 90 度回転させて 2 ページを 1 枚に 収めたり、透かし、ヘッダ、 キーワードベースのシンタックスを用いた色づけなどの機能があります。 テキストの再フォーマットはしません。 もっぱらソースコートの印刷に用いられています。

enscript で TrueType フォントを使うには、 二つの作業が必要になります。

詳細は enscript のドキュメントを読んでください。

私の場合は、これらの変更によって問題なく TrueType フォントが 使えるようになりました。

5.5 テキストの整形と組版: groff

groff は GNU 版の nroff/troff 文書整形システムに対する フロントエンドプログラムです。 groff の威力は、 man ページで最も良くわかるでしょう。

user shell
$ zcat /usr/man/man1/groff.1.gz | groff -man | lpr

man ページ以外にも、ちょっと想像もできないような量の Unix 文書が troffms マクロ (一部は me マクロ) を使っています。 例えば Debian の xbooks パッケージには、 troffms マクロを使っているファイルが 43 もあります。 groff を使うと、非常に見栄えの良い印刷出力が得られます。

groff は非常にパワフルなシステムですが、 これは 1960 年代に印刷物を組版していたプログラムの孫 (あるいは曽孫) なので、 groff のフォント対応はそれらを受け継いでいます。 それまでの roff システムとは異なり、 groff は デフォルトの出力フォーマットに PostScript を用いるので、 先程行った ghostscript の作業で問題の半ばは解決しています -- groff は TrueType フォントファイルを読む必要はないのです。 必要なのは、正確なフォントメトリックです。ですのでこの節では groff に必要な以下のファイルを生成する方法について説明します。

groff の Postscript 記述ファイル
/usr/share/groff/font/devps/DESC

デバイス記述ファイル

/usr/share/groff/font/devps/text.enc

テキストフォントに用いられるエンコーディング

/usr/share/groff/font/devps/generate/textmap

標準のマッピング

/usr/share/groff/font/devps/generate/Makefile

標準の Makefile

Makefile を編集します。

/usr/share/groff/font/devps/generate/Makefile
- afmdir=/usr/local/afm
+ afmdir=/usr/share/fonts/truetype

フォントの名前を TrueType の代替品に変更します (例えば Microsoft のフリーな TrueType フォントを使うなら、 HelveticaArial にします)。そして TEXTFONTS などを変更し、レンダリングするフォントだけが 含まれるようにします。

/usr/share/groff/font/devps/generate/afmname も編集し、 TrueType フォント名や afm ファイルをつかわせるようにします。 そして awk"-e" フラグを削除します。

これらがすべて終わったら、以下のコマンドによって groff のテーブルを再ビルドします。

user shell
$ cd /usr/share/groff/font/devps
$ make -f generate/Makefile

いつものように、変更を確認する良い方法は、見た目で違いのわかる フォントを使うことです。例えば Microsoft のフリーな TrueType フォントを使うなら、 TRMistral を使ってみるといいでしょう。

(次のエイプリル・フールには、旧字フォントで マニュアルページを印刷するようにシステムを変更したひとから ロイヤリティがとれるな!)

5.6 テキストの整形と組版: TeX

TeX は GNU/Linux システムのほとんどで良く用いられている、 もう一つのテキスト整形・組版プログラムです。

TeX のフォントは mktexmf によって生成できます。 しかし実際の手順については、現在は私はあまり知りません。 より詳しい情報は近いうちに掲載したいと思います。


6. 未解決の問題

アプリケーション

未解決の問題のうち最大のものは、netscape communicator でも ghostscript でも TrueType フォントを使えるのに、 なぜ netscape で印刷したページは画面表示と 全然違ってしまうのか、ということでしょう。

短く答えると、 netscape が生成する PostScript 出力では、 標準のフォント (Helvetica と Times-Roman) が使われ、 ユーザーまたは HTML で指定されているフォントは使われないからなのです。 長く答えると、私は netscape がなぜこのような動作を強いているのか、 あるいはそうさせないようにする方法があるのか、全然、まったくわかりません。


7. TrueType フォントの取得

TrueType フォントを探しているひとに、 探すと良さそうなところをいくつか紹介します:

7.1 Microsoft のフリーな TrueType フォントの利用に関するコメント

Microsoft のフリーな TrueType フォントに対するコメントを抜きにしては、 Linux における TrueType サポートに関する文書は完全なものとはいえません。 まず Microsoft のフリーな core フォントを用いることに関する 法的な義務に関してです:

http://www.microsoft.com/typography/faq/faq8.htm
Q. What can I do with these fonts?
   · Anyone can download and install these fonts for 
     their own use.
   · [Web page] designers can specify the fonts within 
     their own Web pages.
   ...

Q. これらのフォントはどのように利用して良いですか?
   · 個人の利用なら、誰でもこれらのフォントをダウンロード・
     インストールできます。
   · [Web ページ] デザイナーは、これらのフォントを自分の
     Web ページに指定できます。
   ...

明らかに Linux ユーザーがこれらのフォントをダウンロード・ インストールすることは合法かつ妥当です。私はこれを許可してくれた Microsoft に感謝したいと思います。

他の条項で、「商用製品に付加価値を与えるかたちでの (in any form taht adds value to commercial products)」再配布は禁止されているので、 これらのフォントが近いうちに main にパッケージングされることは 期待できません。 (インストーラーパッケージのかたちで non-free に入れることは可能かも...?)

二つめの宣言はちょっとわかりにくいので、 ちょっと注意してください。 Microsoft は、 web ページの作成者には Microsoft フォントをページに指定するよう、 また HTML エディターには明示的にフォント名を指定するよう、 積極的に勧めています。

標準の Netscape/Linux でみると、結果が、 良く言っても... なんとか読める、程度のサイトがたくさんあります。 まったく読めないものすらあります。偶然の一致ではなく、 その、「なんとか読める」サイトは、 web ページでフォント情報を 明示的に宣言しているサイトなのです。

これらのフォントをインストールすると、これらの問題のあったサイトが ずっと魅力的になることに私は気付きました。 大方のサイトは依然としてだいぶ Windows びいきではありますが、少なくとも これらのページをロードするたびにぎょっとするようなことはなくなりました。

私のお薦めは、Microsoft のフリーな TrueType フォントを ブラウザにインストールする、です。これらのフォントを指定した web ページを作ったり、 ghostscript を設定して これらを利用させるようにする必要はないでしょう。


8. 法的条項

[訳注: 先に原文を示します.]

Copyright © 1999 by Bear Giles.

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed whole or in part, in any medium physical or electronic, as long as this copyright notice is retained in all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may produce a derivative work from a HOWTO and impose additional restrictions on distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO cordinator for more information.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would very much like to be notified of any plans to redistribute the HOWTOs, this one in particular! Web page authors are free to link to this HOWTO without restriction, though the author would appreciate an email informing him of this, just so he can boost his ego by knowing who else reads and links to this document.

Many of the terms mentioned in this document are trade names. Unless otherwise stated, all trademarks are property of their respectve owners.

(日本語訳)
Copyright © 1999 by Bear Giles.

特に断りがない限り、 Linux HOWTO 文書の著作権は それぞれの著者が保有しています。 Linux HOWTO 文書の全体あるいは一部は、物理的電子的を問わず、 あらゆるメディアで自由に複写・配布することができます。 ただしその際にはこの著作宣言を全てのコピーに付加する必要があります。 商業的な配布も許可し、また奨励します。 しかしその際には著者にお知らせくだされば幸いです。

Linux HOWTO の文書を含んだ翻訳、修正および編集作業の成果は、 全てこの著作権条項に従う必要があります。 すなわちこの HOWTO を修正した後に、 配布条件に追加条項を加えることはできません。 但し適当と認められた場合は例外とすることもできます。 詳細は Linux HOWTO の管理者に連絡してください。

要するに我々は、これらの情報を可能な限りの方法で広めたいと思っているのです。 しかし我々は HOWTO 文書に関する著作権は保持し続けたいと望んでいます。 また HOWTO を再配布する計画については知らせてほしいと思っています (特にこちら!)。 Web ページの作成者は、この HOWTO へのリンクを 何ら制限なく自由に張ることができます。しかしそのことを電子メールで 筆者に知らせていただければ嬉しく思います。誰がこの文書を読み、 誰がリンクしているかを知れば、自分のエゴを満足させることができますから。

この文書で挙げた多くの用語は商標です。 特に断りがない限り、それぞれの商標は各々の保有者に所属します。


sgml21html conversion date: Mon Feb 18 02:50:23 JST 2002