bgiles@coyotesong.com
http://www.dimensional.com/~bgiles/debian-tt.html
から HTML フォーマットで参照できます。
【訳者注: この文書は xtt を扱っていませんので、
そのまま使うと日本語が出なくなったりするかもしれません。
at your own risk でご利用ください。】
X
とフォントサーバー)xfs
フォントサーバーをセットアップする
xfstt
フォントサーバーをセットアップし、
ghostscript
)
AFM
フォントメトリックの生成
font.map
ファイルを生成する
GIMP
enscript
groff
TeX
Linux をインストールすると、フォント・フォントメトリックのセットが それぞれ別個にいくつかインストールされてしまうことが良くあります。 例えば私のシステムをざっと見てみると、フォントやフォントメトリックは 以下のようなディレクトリに分散しています。
XFree86
のフォントは /usr/X11R6/lib/X11/fonts/
にありますGhostscript
のフォントは /usr/lib/ghostscript/fonts/
にありますTeX
のフォントは /usr/lib/texmf/fonts/
にありますkbd
パッケージが使うフォントは
/usr/share/consolefonts/
にありますgroff
のフォントメトリックは /usr/share/font/devps/
にありますEnscript
(ASCII → PostScript コンバータ) のフォントメトリックは
/usr/share/enscript/*.afm
にありますいうまでもないですが、これらのフォントは統合されていません。
TrueType フォントは、同じフォントファイルで表示も印刷も行えるようにして、 この問題を解決するためにデザインされました。この HOWTO では、 Debian GNU/Linux システムで TrueType フォントを ディスプレイ・印刷・文書作成に利用する方法について説明するつもりです。
この文書の情報は、私の知るかぎりでは正しいものです。 しかしこの文書はまだ若い版ですし、私の環境で動作するものが あなたのところでもそうであるとは限りません。 この文書が役に立たなくても許してください。 私はプロのテクニカルライターじゃないですし、 大事な問題の上辺だけを取り繕っていたこともあるんです。
ですから、試すときには気をつけてください。 バックアップも忘れずに。
Created by Bear Giles,
<bgiles@coyotesong.com>
Thanks go to:
<brion@pobox.com>
, who
wrote the
(preliminary) TrueType HOW-TO (http://pobox.com/~brion/linux/TrueType-HOWTO.html)
<meldroc@frii.com>
,
who wrote the
XFree86 Font Deuglification HOW-TO (http://www.frii.com/~meldroc/Font-Deuglification.html)
These links don't directly discuss Debian systems or packages, but they may still be interesting to readers of this mini-HOWTO.
(http://www.kegel.com/linux/tt.html)
(http://www.hex.net/~cbbrowne/xfonts.html)
(http://king.ccrc.wustl.edu/~zubin/fonts.html)
(http://www.mindspring.net/~john_mcl/adding_fonts.html)
コメント・修正・追加・批判などは常に歓迎します。 私に連絡するには bgiles@coyotesong.com を使ってください。
FreeType エンジンはフリーで可搬性のある TrueType フォントの レンダリングエンジンです。コードは「クリーンルーム」で実装されており、 Apple や Microsoft の実装とは完全に独立しています (しかし最近 Apple の特許に関連した問題が浮上しています)。 FreeType はライブラリで、フォントサーバや完全なテキストレンダリング ライブラリではありません。
これは最初のドラフトで、公開後には多くの重要な変更がなされる
ことと思います。できれば
http://www.dimensional.com/~bgiles/debian-tt.html
にある最新のバージョンを参照してください。
この文書の落ち着き先として、
http://www.coyotesong.com/
も予定しています。
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
たった今知らされたところによると、ビデオとモニターが DDC 通信を サポートしていれば、 XFree86 でも DCC 通信を使えるようになるようです。 DDC 通信を使うと、 X サーバーはモニターに物理的な寸法を問い合わせ、 自動的に DPI 設定を計算することができるようになります。
ただし、 font path への適切な変更は依然必要となるでしょう。 あなたが明示的に設定したものを、 サーバが適当に代えてくれるなんてことはありえませんから。
X
設定ファイルを変更する前にやっておくべきこと
X11 の設定ファイルに変更を施す前には、
ファイルの先頭付近に exit 0
を入れて、
XDM
を無効にしておくと良いでしょう (というかそうしましょう)。
これを行わないと、何らかの理由で X
が起動できなくなった場合、
XDM
はシステムをクソったれな busy ループに陥れてしまいます。
これを修正するのはもう口にできないほど大変です。
いいですか、警告しましたからね。後で泣き言を言わないように。
X
とフォントサーバー)厳密にいうと、 X
サーバーで TrueType フォントを使うには
フォントサーバーの設定が絶対に必要、というわけではありません。
お望みならフォントサーバーの代わりにスタティックなファイルを使うことも
できるのです。 ghostscript
で TrueType を利用するための
設定を説明している部分をみてください。
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
を再起動するデンジャラスな人生がお好みでなければ、
X
を startx
によって再起動します。
もし危険がお好きな方は、
あなたの巨額な生命保険の証書の受取人に私の名前を書いて、
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
....
xfstt
フォントサーバーをセットアップし、
TrueType フォントをインストールするここまでで、 xfs
フォントサーバーは動作したものとします。
では xfstt
によって TrueType のサポートを追加しましょう。
XFSTT
をインストールするまだしていなければ、main/binary-*/x11/xfstt_*.deb
をインストールしてください。
お手元の 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
....
ここまでで、 TrueType フォントを GIMP
, Netscape
,
StarOffice
などのアプリケーションで利用できるようになったはずです。
ほとんどの TrueType フォントは等幅フォントではありませんので、
xterm
では使わないほうがいいでしょう。この手のプログラムでは
文字セルの最大サイズに合わせて等幅に文字を表示します。
xfstt
フォントサーバーを使っている場合は、
TrueType フォントの追加は簡単です。
/usr/share/fonts/truetype/
にコピーする/etc/init.d/xfs restart
によって xfs
を再起動する
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
には含まれていないため、これらの文字は
クエスチョンマークにレンダリングされます。)
文字セットのエンコーディングに関するより詳しい情報を得るには、 以下のすばらしいサイトを訪ねてください。
http://ppewww.ph.gla.ac.uk/%7Eflavell/iso8859/iso8859-pointers.html
http://anubis.dkuug.dk/i18n/
http://czyborra.com/charsets/iso8859.html
上記では Unix ソケットを用いましたが、標準的な Debian パッケージでは、
xfs
と xfstt
とに、それぞれ TCP/IP ポート 7100 と
7101 を使わせるようにすることもできます。これらのポートへの
アクセスは /etc/X11/xfs/config
の trusted-clients
フィールドによってコントロールしておくべきですが、
このオプションは XFree86 3.3.2.3a では実装されていません。
これはすなわち、誰でも、どこからでも、あなたのフォントサーバーに
アクセスできてしまうことを意味します。 xfs
(おそらく xfstt
も) は多くのユーザーを処理するために "clone" しますので、
これらのシステムには明らかに利用不能攻撃
(DoS attack) の危険性が存在します。フォントサーバーを
ダイヤルアップ回線で使っている場合には
(あなたはその場にいるでしょうから) おそらく安全でしょうが、
DSL やケーブルモデムの利用者はファイアウォールを使うべきでしょう。
ghostscript
)バージョン 4 から、 ghostscript
は TrueType フォントのサポートを
コンパイル時のオプションに指定できるようになりました。
Debian には ghostscript
のパッケージが二つあります。
main/binary-*/text/gs_*.deb
DFSG 準拠のバージョン 5.10 です。non-free/binary-*/gs-aladdin_*.deb
DFSG に準拠していないバージョン 5.50 です。
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 ;
エイリアスによって、 ghostscript
と xfstt
は
共通の名前で同じフォントを使うことが依然可能になっています。
さらに重要なことですが、このフォント名の変更によって、
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
プリンタで用いると非常に便利でしょう。
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
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
の作るファイルはコメントで始まるのです。
この「問題」は、それぞれのファイルをテキストエディタで
修正してやれば簡単に回避できます。
font.map
ファイルを生成する
afm
ファイルができたら、システムにその場所を
教えてやる必要があります。これには通常 font.map
ファイルが用いられます。
このファイルのフォーマットに関するドキュメントを、
私は見つけることができていません。
mkfontdir
プログラムが生成する fonts.dir
, fonts.scale
,
fonts.alias
などのドキュメントはあるんですけど。
しかしもっとも簡単なフォーマットは極めて単純です。
AFM
ファイルのファイル名。拡張子は除く。複数のエントリを書くことによってエイリアスも使えるようです。 ファイル名の拡張子は小文字で書く必要があります。
GIMP
GIMP
は Gnu Image Manipulation and Paint プログラムです。
gimp
には特に TrueType に関して変更を行う必要はありませんでした。
enscript
enscript
は ASCII を PostScript に変換するプログラムです。
同様の目的に使える他のプログラムには、 a2ps
と mpage
があります
[訳注: a2ps には日本語化された a2ps-ja があります]。
enscript
には、ページを 90 度回転させて 2 ページを 1 枚に
収めたり、透かし、ヘッダ、
キーワードベースのシンタックスを用いた色づけなどの機能があります。
テキストの再フォーマットはしません。
もっぱらソースコートの印刷に用いられています。
enscript
で TrueType フォントを使うには、
二つの作業が必要になります。
AFMPath
に /usr/share/fonts/truetype
を追加する。詳細は enscript
のドキュメントを読んでください。
私の場合は、これらの変更によって問題なく TrueType フォントが 使えるようになりました。
groff
groff
は GNU 版の nroff/troff 文書整形システムに対する
フロントエンドプログラムです。 groff
の威力は、
man
ページで最も良くわかるでしょう。
user shell
$ zcat /usr/man/man1/groff.1.gz | groff -man | lpr
man ページ以外にも、ちょっと想像もできないような量の Unix 文書が
troff
の ms
マクロ (一部は me
マクロ) を使っています。
例えば Debian の xbooks
パッケージには、
troff
と ms
マクロを使っているファイルが 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 フォントを使うなら、
Helvetica
を Arial
にします)。そして
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
フォントを使うなら、 TR
に Mistral
を使ってみるといいでしょう。
(次のエイプリル・フールには、旧字フォントで マニュアルページを印刷するようにシステムを変更したひとから ロイヤリティがとれるな!)
TeX
TeX
は GNU/Linux システムのほとんどで良く用いられている、
もう一つのテキスト整形・組版プログラムです。
TeX
のフォントは mktexmf
によって生成できます。
しかし実際の手順については、現在は私はあまり知りません。
より詳しい情報は近いうちに掲載したいと思います。
未解決の問題のうち最大のものは、netscape communicator
でも
ghostscript
でも TrueType フォントを使えるのに、
なぜ netscape
で印刷したページは画面表示と
全然違ってしまうのか、ということでしょう。
短く答えると、 netscape
が生成する PostScript 出力では、
標準のフォント (Helvetica と Times-Roman) が使われ、
ユーザーまたは HTML で指定されているフォントは使われないからなのです。
長く答えると、私は netscape
がなぜこのような動作を強いているのか、
あるいはそうさせないようにする方法があるのか、全然、まったくわかりません。
TrueType フォントを探しているひとに、 探すと良さそうなところをいくつか紹介します:
c:\windows\fonts
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
を設定して
これらを利用させるようにする必要はないでしょう。
[訳注: 先に原文を示します.]
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 へのリンクを 何ら制限なく自由に張ることができます。しかしそのことを電子メールで 筆者に知らせていただければ嬉しく思います。誰がこの文書を読み、 誰がリンクしているかを知れば、自分のエゴを満足させることができますから。
この文書で挙げた多くの用語は商標です。 特に断りがない限り、それぞれの商標は各々の保有者に所属します。