<!doctype linuxdoc system>
<article>
<title>pLaTeX2e installation mini-HOWTO
<author>中野武雄 <tt/nakano@apm.seikei.ac.jp/
<date>v0.3, 29 October 1997

<abstract>
この文書では pTeX-2.1.4 とそれに対応した xdvi、 dviprt などを Linux
マシンにインスト−ルし、 pLaTeX2e 文書をコンパイルしてプレビュー、
印刷できる環境を構築する方法について記述します。
</abstract>

<p>
<bf>注意: この文書はかなり以前に書かれたものなので、
いまどきの Linux 環境にはあてはまらない箇所があります。
(JF Project)</bf>
</p>

<sect>はじめに
<p>
最近では LaTeX2e 関連の書籍も出そろった観があり、
国内でも LaTeX の利用としては 2e の方が主流になってきました。
ASCII からは kpathsea ライブラリに機能強化が行われた
pTeX-2.1.5 が公開され、 DOS や Win,
Mac の世界ではこれをベースにした環境が主流になってきているようです。

この文書の初版公開当時には Linux にはバイナリ配布のパッケージが無く、
それが本文書執筆の動機にもなっていたわけですが、最近は
debian-jp
や
PJE
などのプロジェクトによって 2.1.5 のパッケージがリリースされ、
インストールも簡単になってきました。

ということで、実はこの文書の存在意義もそろそろなくなってきているのですが、
まだ筆者の web ページのログを見ると、
アクセスして下さっている方もかなりいるようですので、
主に京大の土屋さんからいただいた情報を追加し、
改版することにしました。
実は筆者はまだ 2.1.4 の環境に安住していますので、
もはや参考になる部分は少ないかもしれませんが、何かの役に立てば幸いです。

ちなみに私が Linux を利用するにあたって、
そのほとんどの時間は Win95 の
TeraTerm という VT100 端末ソフトを通しての作業になっています。
実は TeX に関しても

<itemize>
<item>文書作成とコンパイルは Linux。
<item>プレビューは Win95 版 dviout。
ファイルは samba を通して Win95 からも見えるようになっている。
<item>印刷は Linux 上の dviprt。
</itemize>

という変則的な使い方をしております。
従って xdvi や dvi2ps-j もインストールはしましたが、
横書き文書をプレビューできることしか確認していません。
またフォントの自動生成などに関してもいろいろ問題があるかとは思いますが、
pLaTeX2e 環境の構築に関するまとまった情報はまだ少ないので、
とりあえず何かの役には立つかと思い、文書としてまとめることにしました。

<sect1>インストール環境
<p>
インストール前の環境は以下のようなものです。
<itemize>
<item>カーネル 2.0.29
<item>libc 5.3.12
<item>X11R6 + Accerelated X 1.3
<item>GCC 2.7.2.1
</itemize>

また印刷に用いたプリンタは以下の 2 台です。
<itemize>
<item>Epson  MJ-700V2C  (dviout、 dvipsk、 dvi2ps-j + GS 5.03)
<item>HP LaserJet IIIp  (dviout、 dvipsk、 dvi2ps-j + GS 5.03)
</itemize>


<sect1>参考にした情報
<p>
この文書を書くにあたって参考にした URL です。
<itemize>
<item>
<url url="http://www.ascii.co.jp/pb/ptex/"
name="ASCII の pTeX ページ">
<item>
<url url="http://www.matsusaka-u.ac.jp/&tilde;okumura/texfaq/"
name="松阪大学の奥村先生のページ">
<item>
<url url="http://akagi.ms.u-tokyo.ac.jp/index-j.html"
name="東京大学大島研究室のページ">
<item>
<url url="http://www.se.hiroshima-u.ac.jp/&tilde;kakugawa/"
name="広島大学角川先生のページ">
<item>
<url url="http://www.ipc.chiba-u.ac.jp/&tilde;yamaga/index-j.html"
name="千葉大学山賀さんのページ">
<item>
<url url="http://ecopolis.sk.tsukuba.ac.jp/&tilde;nakau/unix/unix.html"
name="筑波大学中右さんの unix 管理録のページ">
</itemize>

京都大学の土屋さんには dvipsk や makeindex,
LaTeX2e 関連パッケージなどのインストールに関する
大変有益な情報を送っていただきました。
これらを追加することが 0.3 の改版における主要な動機となりました。
ただし本文中に誤りがあったとしても、それは全て筆者の責任です。

また京都大学の石井さんには、
Microsoft 社の Truetype のライセンスに関するご指摘をいただきました。

<sect1>この文書について
<p>
この文書中での作業にあたり、<tt/&percnt;/ は一般ユーザでの、
<tt/&num;/ はルート権限での作業をそれぞれ示しています。
ルートでの作業が結構多くなってしまいますので、
くれぐれも注意して行ってください。
この文書によって生じた障害、損失については筆者は一切の責任を取れません。
ご自分の責任の下で利用してください。

<sect>pTeX のインストール
<p>
まず TeX コンパイラ本体を作ります。
ソースが大きくなってしまうので取ってくるのが大変ですが、
手元での作業は比較的簡単です。

<sect1>pTeX のソース
<label id="source-location">
<p>
ASCII 版 pTeX の一次配布元は
<url url="ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/">
です。
ミラーサイトの情報は
<url url="http://www.ascii.co.jp/pb/ptex/">
から辿れるページにありますので、参考にしてください。
多量の転送を行う必要があるので、
できるだけ近いところを選ぶようにしましょう。

サイトを決めたら、そこから以下のファイルを入手します。
ftp サイトのベースディレクトリから見たときの相対パス名で与えてあります。
<tscreen><verb>
ptex-2.1.4.tar.gz
plib-euc.tar.gz
corresponding-sources/web-6.1.tar.gz
corresponding-sources/web2c-6.1.tar.gz
corresponding-sources/web2c.kpathsea-2.6.help
corresponding-sources/lib-6.9.tar.gz
corresponding-sources/xdvik-18f.tar.gz
</verb></tscreen>

xdvik-18f.tar.gz は同ディレクトリにある dvipsk や dviljk のパッケージ
でも良いのですが、後でどうせ xdvi は作るのでこれが良いと思います。


<sect1>pTeX ソースの展開とコンパイル
<p>
ptex-2.1.4.tar.gz の README.euc を読めばすべて書いてあるのですが、一応
step-by-step の手順を示します。

<enum>
<item> lib-6.9.tar.gz、plib-euc.tar.gz を /usr/local/lib 以下に展開します。
<tscreen><verb>
# cd /usr/local/lib
# zcat (somewhere)/lib-6.9.tar.gz | tar xf -
# zcat (somewhere)/plib-euc.tar.gz | tar xf -
</verb></tscreen>

<item>ソースファイルを置いたディレクトリに入り展開します。
<tscreen><verb>
% zcat web-6.1.tar.gz | tar xf -
% zcat web2c-6.1.tar.gz | tar xf -
% zcat ptex-2.1.4.tar.gz | tar xf -
% zcat xdvik-18f.tar.gz | tar xf -
</verb></tscreen>
これによって web2c-6.1、 ptex-2.1.4、 xdvik-18f 各ディレクトリができます。

<item> web2c-6.1/web2c を xdvik-18f ディレクトリに移動し、
不要なディレクトリを削除、また名前の変更を行います。
<tscreen><verb>
% mv web2c-6.1/web2c xdvik-18f
% mv xdvik-18f kpathsea-2.6
% rm -rf web2c-6.1
% rm -rf kpathsea-2.6/xdvik
</verb></tscreen>

<item> kpathseach のパッチをあてます。
<tscreen><verb>
% cd kpathsea-2.6
% patch -p -s < ../web2c.kpathsea-2.6.help
</verb></tscreen>

<item>設定スクリプトを実行します。
<tscreen><verb>
% cd ../ptex-2.1.4
% ./pTeXsetup -euc
% cd ../kpathsea-2.6
% ./configure
</verb></tscreen>

<item> そのままコンパイルしてしまうと alloca 関数が衝突してしまうので、
kpathsea-2.6/web2c/web2c/web2c.h を変更します。具体的には最後の行
<code>
extern void *alloca();
</code>
をコメントアウトすれば良いはずです。

<item>make します。ここで ASCII の web page には、
Linux では hypot 関数が衝突するとありますが、
私のところでは無事に通ってしまいました。
うまく行かない場合は <tt>kpathsea-2.6/kpathsea/Makefile</tt> の <tt/CFLAGS/
から始まる行に、<tt/-Dhypot/ を追加しておけば良いと思います。

<item>無事に make が終了したら root になって make install します。
バイナリは <tt>/usr/local/bin</tt> にインストールされますので、
ここに 2.09 のバイナリが存在する場合は適宜名前を変更しておくなりして下さい。
またこの際 TEXPK や TEXTFMPATH など、以前のパッケージで指定されていた
TeX 関連の環境変数の指定は全部解除してください。そうしないとフォントや
TFM ファイルが見付からない旨のエラーになります。
</enum>

pTeX 2.1.4 および対応 dviware では、フォントの自動生成機能が追加されています。
このとき、新たに生成されるフォントは
<tt>/usr/local/lib/texmf/fonts/tmp/</tt>以下のディレクトリに置かれるので、
このディレクトリのパーミッションは
<tt/777/ にしておかないとユーザによる書き込みができなくなります。


<sect>マクロパッケージと関連ツールのインストール
<p>
<sect1>LaTeX2e、pLaTeX2e のソース
<p>
LaTeX2e のマクロパッケージは原則として半年おきにアップデートされています。
<tt/lib-6.9.tar.gz/ の中に入っているのは古いので、
できるだけ最新版を利用するのが望ましいでしょう。
まず ASCII かそのミラーサイトから以下のソースを取ってきます。
場所については
<ref id="source-location" name="pTeX のソース">
の節を参照してください。

<tscreen><verb>
base-9612.tar.gz
pl9702e.tar.gz
</verb></tscreen>

前者は CTAN (Comprehensive TeX Archive) の <tt>macros/latex/base</tt>
を固めたものです。
有用なマクロなどもありますので、CTAN は一度覗いておくと良いでしょう。

最新の LaTeX2e では EC フォントと呼ばれるフォント群を利用することが
推奨されています。
これも CTAN の <tt>fonts/ec/</tt> 以下のディレクトリに置かれています。
可能ならば入手しておくと良いでしょう。

<label id="CTAN-sites">
国内の CTAN のミラーサイトは

<itemize>
<item><url url="ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/">
<item><url url="ftp://ftp.riken.go.jp/pub/tex-archive/">
<item><url url="ftp://ftp.center.osaka-u.ac.jp/CTAN/">
</itemize>

などがあるようです。
私は tar+gz でディレクトリを一括転送してくれる会津大のサイトを
良く利用させてもらっています。ここでは例えば
<tt/ec/ ディレクトリの親ディレクトリで
<tscreen><verb>
get ec.tar.gz
</verb></tscreen>
などとすると、
<tt/ec/ ディレクトリ下の中身を自動的にアーカイブしたファイル
<tt/ec.tar.gz/ を転送してくれます。


<sect1>LaTex2e のインストール
<p>
以下の記述は多くが platex2e の README.euc によります。
また以下の説明では簡略化のため <tt>/usr/local/lib/texmf</tt> を
<tt/&dollar;TEXMF/ と
記します。

<enum>
<item>入手した EC フォントを <tt>&dollar;TEXMF/fonts/public/ec</tt>
ディレクトリ下に置きます。

<item><tt>&dollar;TEXMF/tex/latex2e/base</tt> ディレクトリに LaTeX2e
のファイルを展開します。
<tscreen><verb>
# cd $TEXMF/tex
# mv latex2e latex2e.orig
# mkdir latex2e; cd latex2e
# zcat (somewhere)/base-9612.tar.gz | tar xf -
</verb></tscreen>

<item><tt/unpack.ins/、 <tt/ec.ins/ を <tt/initex/ で処理します。
<tscreen><verb>
# cd base
# initex unpack.ins
# initex ec.ins
</verb></tscreen>

<item>latex2e のフォーマットファイルを作成し、移動します。
<tscreen><verb>
# initex latex.ltx
# mv -f latex.fmt $TEXMF/ini
</verb></tscreen>

<item>実行ファイルを作成します。
<tscreen><verb>
# cd /usr/local/bin
# ln -s virtex latex
</verb></tscreen>

<item>正しくインストールできたかをチェックします。
<tscreen><verb>
# cd /tmp
# rehash
# latex ltxcheck
</verb></tscreen>

正しくインストールされていれば、すべてのテストが <tt/&dquot;OK&dquot;/
になります。エラーが表示された場合は、その指示に従って環境を構築してください。

</enum>


<sect1>pLaTeX2e のインストール
<p>
同じく pLaTeX2e の README.euc 中の記述によります。

<enum>

<item>pLaTeX2e のファイルを展開します。
<tscreen><verb>
# cd /tmp
# zcat (somewhere)/pl9702e.tar.gz | tar xf -
# mkdir $TEXMF/tex/platex2e
# mkdir $TEXMF/tex/platex2e/base
# mv 9702/ $TEXMF/tex/platex2e/base/
# rm -rf 9702
# cd $TEXMF/tex/platex2e/base
</verb></tscreen>

<item>plcore.ins を処理し、フォーマットファイルの作成、移動を行います。
<tscreen><verb>
# iniptex plcore.ins
# iniptex platex.ltx
# mv -f platex.fmt $TEXMF/ini
</verb></tscreen>

<item>実行ファイルを作成します。
<tscreen><verb>
# cd /usr/local/bin
# ln -s virptex platex
</verb></tscreen>

</enum>


<sect1>jLaTeX 2.09 環境のインストール
<p>
今まで書いた文書もコンパイルできるように、
LaTeX 2.09 のマクロも利用できるようにしておきます。

<enum>
<item>JE からインストールした LaTeX マクロが
<tt>/usr/local/lib/tex/macros</tt> にあると思いますので、これを
<tt>/usr/local/lib/texmf/tex/jlatex209/</tt>
などのディレクトリを掘ってコピーしておきます。

<item>コピーできたら pTeX でフォーマットファイルを作成します。
<tscreen><verb>
# cd /usr/local/lib/texmf/tex/jlatex209
# iniptex jlplain.tex \\dump
</verb></tscreen>

<item><tt/jlplain.fmt/ ができますので、
これを今までと同じようにインストールします。
<tscreen><verb>
# cp jlplain.fmt /usr/local/lib/texmf/ini
# cd /usr/local/lib/texmf/ini
# ln -s jlplain.fmt jlatex.fmt
# cd /usr/local/bin
# ln -s virptex jlatex
</verb></tscreen>

<item>マクロの検索パスを <tt>/usr/local/lib/texmf/web2c/texmf.cnf</tt>
に追加します。具体的には
<code>
jlatex_inputs = .:$TEXMF/tex/jlatex209//:$TEXMF/tex//
TEXINPUTS.jlatex = $jlatex_inputs
</code>
のような行を <em/<tt/TEXINPUT/ 行の前に/入れておけばよいでしょう。
</enum>


<sect1> LaTeX2e PostScript 関連パッケージのインストール
<p>
本節は土屋＠京大さんよりいただいた情報に基づいています。

LaTeX2e では、ps file を文書に取り込んだりするマクロは別のパッケージに
して配布されています。まず
<ref id="CTAN-sites" name="CTAN サイト">
から

<tscreen><verb>
macros/latex/packages/
</verb></tscreen>
以下のファイルを get して下さい(方法は、ec font の取得の時と同じです)。
得られた packages.tar.gz を適当なディレクトリに展開します。

<tscreen><verb>
%cd /usr/local/src
%tar xvzf $FTP/packages.tar.gz
</verb></tscreen>

まず tools パッケージの場合。
tools パッケージには enumerate.sty などが含まれます。

<tscreen><verb>
%cd /usr/local/src/packages/tools
%latex tools.ins
#mkdir $TEXMF/tex/latex2e/tools
#mv -f *.sty *.tex .tex $TEXMF/tex/latex2e/tools
</verb></tscreen>

次に graphics パッケージの場合。
<tscreen><verb>
%cd ../graphics
%latex graphics.ins
#mkdir $TEXMF/tex/latex2e/graphics
#mv -f *.def *.sty grfguide.tex $TEXMF/tex/latex2e/graphics
</verb></tscreen>

graphics パッケージの場合には、dviware に合わせた .cfg ファイルを作って
おく必要があります。以下は dvips を利用する場合の例です。

<footnote>
残念ながら dvi2ps-j では graphics パッケージはうまく
動きませんでした (中野)。 dvipsk を利用して下さい。
</footnote>

<tscreen><verb>
#mkdir $TEXMF/tex/latex2e/config
#cd $TEXMF/tex/latex2e/config
#echo \\ExecuteOptions{dvips}>color.cfg
#cp color.cfg graphics.cfg
</verb></tscreen>


<sect1>日本語版 makeindex (mendexk2.3g) のインストール
<p>
<ref id="source-location" name="ASCII-pTeX のサイト">
から、mendexk2.3g.tar.gz を get して下さい。

<tscreen><verb>
cd /usr/local/src
tar xvzf $FTP/mendexk2.3g.tar.gz
cd mendexk
</verb></tscreen>

mendexk-2.3g では、kpathsea lib を利用するようになっていますので、
kpathsea.a が利用できるように Makefile を変更しなければなりません。

<tscreen><verb>
find /usr/local/src -name kpathsea.a -print
</verb></tscreen>

などでファイルを探し、

<code>
mendex: $(OBJS)
       $(CC) $(OBJS) $(LDFLAGS) -o $@ ../kpathsea/kpathsea.a
</code>

の、kpathsea.a を参照している相対パスを書き直し、

<tscreen><verb>
make
cp mendex $TEXBIN
cp mendex.1 /usr/local/man/ja_JP.ujis/man1
</verb></tscreen>

とすれば出来上がり。


<sect>フォント関連の設定
<p>
<sect1>pk フォントの作成
<p>
pTeX のインストールをしたところで、
<tt/METAFONT/ のシステムも一揃い入っているはずですから、
これを用いれば各 pk フォントを作ることができます。
DVI ドライバによっては pk フォントを自動生成する仕組みになっていますが、
それでも良く使うものは一気に作ってしまっておく方が良いでしょう。

実際に私が作業するにあたり、非常に重宝したパッケージが
<url url="ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/font/makefont.tar.gz">
です。以下、これを使うものとして話を進めます。

<enum>

<item>まず適当なディレクトリに展開します。
<tscreen><verb>
% mkdir makefont; cd makefont
% zcat (somewhere)/makefont.tar.gz | tar xf -
</verb></tscreen>

<item><tt>/usr/local/lib/texmf/mf/modes.mf</tt> を見て、
自分の使うプリンタに適したエントリを選びます。
私の場合 360DPI の Epson MJ-700V2C には <tt/bjtenex/ を、
300DPI の HP LaserJet IIIp には <tt/cx/ を選びました。

<item>フォントの選択パターンは数種類あり、
それぞれに応じてシェルスクリプトがありますが、
とりあえず latex2e 向けのものを利用すると良いと思います。
<tscreen><verb>
% ./latex2e.sh bjtenex
</verb></tscreen>
のように実行すると、
360DPI 向けの各種フォントが実行ディレクトリに作成されます。

</enum>

後はこれをどこに置くかです。
各 <tt/METAFONT/ ソースに対応したディレクトリに置く、
というのも一つの考え方です。
私は一気にできてしまったものをまた分配するのが面倒だったのと、
pk フォントを Win95 マシンや他の Linux ホストで共有したかったため、
<tt>/usr/share/fonts/pk/pk300/</tt>
や <tt>/usr/share/fonts/pk/pk360/</tt> というディレクトリにまとめて置き、
<tt>/usr/share/fonts</tt> 以下を NFS や samba で公開しています。

この際、フォントのサーチパスがデフォルトと変るので、
<tt>/usr/lcoal/lib/texmf/web2c/texmf.cnf</tt> ファイルに変更が必要になります。
具体的には <tt/PKFONTS/ のエントリを
<code>
PKFONTS = .:$TEXMF/fonts//pk/$MAKETEX_MODE:/usr/share/fonts/pk//
</code>
のように書き換えました。

また pTeX 2.1.4 では
<tt>/usr/local/lib/texmf/ls-R</tt> をいうファイルを作っておくと
各種ファイルの検索が高速になります。これは
<tscreen><verb>
# cd /usr/local/lib/texmf
# ls -LR /usr/local/lib/texmf /usr/share/fonts/pk > ls-R
</verb></tscreen>
のように作成します。
(<tt/L/ はシンボリックリンクの先をたどるオプションです)。


<sect1>VFlib と TrueType フォントのインストール
<label id="VFlib">
<p>
VFlib は TeX、 PostScript などの文書で日本語を統一的に扱うための
ライブラリパッケージで、広島大の角川先生が作業をしておられます。
日本語化 xdvi, dvi2ps-j などで利用されています。
最近の JE にも入っていたはずですが、とりあえず以下のようにしても作れます。

一次配布元は
<url url="ftp://gull.se.hiroshima-u.ac.jp/pub/VFlib/">
です。ミラーされているところも多いと思います。
<itemize>
<item>VFlib-2.22.tar.gz
<item>VFlib-2.22-PATCH-1
<item>VFlib-2.22-PATCH-2
<item>VFlib-2.22-PATCH-3
<item>VFlib-2.22-PATCH-4.updated
</itemize>
を入手します。

<enum>
<item>ソースを展開し、パッチ当てします。
<tscreen><verb>
% zcat VFlib-2.22.tar.gz | tar xf -
% cd VFlib-2.22/tools
% uudecode ../../VFlib-2.22.PATCH-1
% zcat ktestdiff.tar.gz | tar xf -
% patch -p < Imakefile.diff
% patch -p < ktest.diff
% cd ../src
% patch -p < ../../VFlib-2.22.PATCH-2
% patch -p < ../../VFlib-2.22.PATCH-3
% cd ..
% uudecode ../../VFlib-2.22-PATCH-4.updated
% zcat VF_FNTWV.patch.gz | patch -p1
</verb></tscreen>
ふぅ :-)、これで終わりです。

インストールマニュアルは TeX で記述されているのですが、
<url
url="http://www.se.hiroshima-u.ac.jp/&tilde;kakugawa/Hacks/VFlibMan/Index.html"
name="Web 版のマニュアル">
もあります。

<item><tt>src/Makefile</tt> を編集します。
このあたりは好みの別れるところですが... 私は以下の二点を変更しました。

<itemize>
<item><tt/vfontcap/ ファイルの置き場所を変更
<code>
VFCAP = -DDEFAULT_VFCAP=\"/etc/vfontcap\"
</code>
<item>ユーティリティプログラムの置き場所を変更
<code>
INSTALL_BINDIR=/usr/local/bin
</code>
</itemize>

<item><tt/src/ ディレクトリに入って以下の作業を行います。
<tscreen><verb>
% make
% su
# make install
</verb></tscreen>

<item>ここで Win95 の TrueType フォントを Linux から見える位置に移動します。
Win95 の <tt>c:&bsol;windows&bsol;fonts&bsol;</tt> ディレクトリ
(hidden 属性になっているので注意) にある <tt/msmincho.ttc/ と
<tt/msgothic.ttc/ を例えば <tt>/usr/share/fonts/TrueType/</tt>
のようなディレクトリにコピーします。

<footnote>
Microsoft は、自社にライセンスのある TrueType フォントに関して、
自社 OS 以外での利用を認めない、という方針のようです。
本文書での msmincho, msgothic は適当な
TrueType フォントの例を示すものとお考え下さい。
</footnote>

<item>インデックス用のファイルを作ります。
<tscreen><verb>
# cd /usr/share/fonts/TrueType
# ttindex msmincho.ttc
# ttindex msgothic.ttc
</verb></tscreen>

<item><tt>/etc/vfontcap</tt> を編集します。
とりあえず
<code>
### TRUETYPE FONT (Windows fonts)
r-microsoft-mincho|MicroSoft mincho:\
        :ft=truetype:\
        :ff=/usr/local/font/truetype/msmincho:
r-microsoft-gothic|Microsoft gothic:\
        :ft=truetype:\
        :ff=/usr/local/font/truetype/msgothic:
</code>
のところの <tt/ff=/ のパスを
<tt>/usr/share/fonts/TrueType/msmincho</tt>
のように変えておけば大丈夫だと思います。

(ここは筆者の知識不足につき、識者のフォローを歓迎します。)
</enum>

<sect1>virtual フォント
<p>
virtual フォントは各種 PostScript
プリンタが持っているフォントの癖を吸収するために導入されたもので、
dvi ファイルのフォントメトリック情報と
PostScript フォントの間の仲立ちをします。
dvi2ps-j や dvipsk を利用する際には、これが必要になります。
VFlib と併用する際には、
最も基本的な日本語 PS フォントである
モリサワフォントのメトリック情報を用いることにします。

virtual フォントを用意するためには以下が必要です。

<itemize>
<item><tt/japaneseAFM.tar.gz/
<item><tt/vftool-1.2.tar.gz/
</itemize>

前者は漢字 PostScript フォントの AFM ファイルで、
フォントメトリックの情報が記述されているものです。
アスキー pTeX と一緒に配布されています。
<ref id="source-location" name="pTeX のソース">
の節をご覧ください。

後者は前者を用いて virtual フォントを作成するツールです。一次配布元は
<url url="ftp://ftp.math.s.chiba-u.ac.jp/tex/">
です。各所でミラーされているようですので archie してみてください。

<enum>
<item>適当なディレクトリに日本語 PostScript フォントの
AFM ファイルを展開します。
例えば <tt>/usr/share/fonts/AFM-j/</tt> などに展開するなら
<tscreen><verb>
# mkdir /usr/share/fonts/AFM-j
# zcat (somewhere)/japaneseAFM.tar.gz /usr/share/fonts/AFM-j | tar xf -
</verb></tscreen>

<item>vftools のソースアーカイブを作業ディレクトリに展開します。
<tscreen><verb>
% zcat (somewhere)/vftools-1.2.tar.gz | tar xf -
% cd vftools-1.2
</verb></tscreen>

<item><tt/Makefile/ を編集します。
	<itemize>
	<item><tt/JFM/ エントリを
	<tt>/usr/local/lib/texmf/fonts/public/ptex/tfm</tt> に変更。
	<item><tt/AFM/ エントリを、先ほど日本語 AFM ファイルを展開した
	ディレクトリに変更
	<item><tt/bkfonts/ エントリに <tt/&dollar;&lcub;t3&rcub;/
	<tt/&dollar;&lcub;t4&rcub;/ を追加
	</itemize>

<item>make します。
<tscreen><verb>
% make a2bk
</verb></tscreen>
<tt/jfm/, <tt/vf-a2bk/ ディレクトリができ、
その中に日本語のフォントメトリックと virtual フォントができます。

<item>それぞれ標準的なディレクトリに移動します。
以下は dvipsk や dvi2ps-j で用いられているディレクトリにあわせてあります。
<tscreen><verb>
# mkdir /usr/local/lib/texmf/fonts/kanji
# cp -r jfm/ vf-a2bk/ /usr/local/lib/texmf/fonts/kanji/
</verb></tscreen>

</enum>

<sect>DVI ドライバのインストールと設定
<sect1>xdvik のインストール
<p>
以前は日本語パッチが散在していて、作るのがややこしいと言われていた
xdvi ですが、
千葉大の山賀さんがパッチの取りまとめを行ってくださったおかげで、
最近では非常に簡単になりました。

<sect2>xdvik18f-j1.1 のインストール
<p>
まず xdvik-18f の本体 <tt/xdvik-18f.tar.gz/ を入手します。
この文書の通りにこれまで実行してきた方はすでに手元にあるでしょう。
これは通常の pTeX と一緒に配布されており、
<ref id="source-location" name="pTeX のソース">
の節で示したところにあります。

山賀さんがまとめてくださっている日本語パッチは
<url url="ftp://ftp.ipc.chiba-u.ac.jp/pub/pub.yamaga/">
が一次配布元になっています。 97/03/19 現在は
<tt/xdvik18f-j1.1p5.patch.gz/ が最新版のようでした。

make の手順は付属の文書に非常に丁寧に記述されています。
ここでは概略のみ示します。

<enum>
<item>まず <tt/xdvik-18f.tar.gz/ と <tt/xdvik18f-j1.1p5.patch.gz/
を適当なディレクトリに置きます。

<item>展開し、パッチ当てします。

<tscreen><verb>
% zcat xdvik-18f.tar.gz | tar xf -
% cd xdvik-18f/xdvik
% zcat ../../xdvik18f-j1.1p5.patch.gz | patch -p
</verb></tscreen>

ここで <tt/README.xdvik18f-j1.1p5.patch/ を良く読めば、
問題無く設定と作成が行えるはずです。以下は最も簡単な設定で行います。

<item>xdefs.make を編集し、
<tt/XDEFS/ の行に <tt/-DNOVFONTMAP/ を指定します。
こうすると日本語の使える書体が明朝とゴシックのみになります。
多書体を使いたい方は、付属の文書を良く読んでください。

<item>ディレクトリを上がって configure、 make します。

<tscreen><verb>
% cd ..
% ./configure
% make
</verb></tscreen>

<item>スーパーユーザになってインストールします。
すでに kpathseach 関係のファイルなどが入っているので、
xdvi のみをインストールします。

<tscreen><verb>
% cd xdvik
% su

# make install
</verb></tscreen>
</enum>

最後に <tt>/usr/local/lib/texmf/web2c/texmf.cnf</tt> の
<tt/PKFONTS.xdvi/ セクションに、
先ほど PK フォントを置いたディレクトリを追加します。私の場合は
<code>
PKFONTS.xdvi = .:/usr/share/fonts/pk//:$pkdir/$MAKETEX_MODE:
</code>
という具合にしています。

<sect2>Dviselect のインストール
<p>
本節は土屋＠京大さんよりいただいた情報に基づいています。

xdvi は、「最後にマークしたページのみ印刷」、
「マークした全てのページの印刷」など多彩な印刷指定を行なうことが出来ます。
このためには、
dviselect というコマンドをインストールしなければなりません。

dviselect をインストールするには次のファイルを用意して下さい。

<tscreen><verb>
SeeTeX-2.19.tar.gz
SeeTeX-2.19-2.19J.gz
</verb></tscreen>

これらのファイルは、

<url url="ftp://ftp.hipecs.hokudai.ac.jp/pub/TeX/drivers/SeeTeX/">

や
<ref id="CTAN-sites" name="CTAN サイト">
の dviware/SeeTeX/ から入手可能です。

これを、次の様な手順でインストールすればよいでしょう。
($FTP/ に archive file があるものとします。)

<tscreen><verb>
cd /usr/local/src
tar xvzf $FTP/SeeTeX-2.19.tar.gz
cd SeeTeX/
gzip -dc $FTP/SeeTeX-2.19-2.19J.gz | patch -p
xmkmf
make Makefiles
make
cp Dviselect/dviselect /usr/local/bin
cp Dviselect/dviselect.man /usr/local/man/man1/dviselect.1
chmod 644 /usr/local/man/man1/dviselect.1
</verb></tscreen>


<sect1>dvi2ps-j のインストール
<p>
dvi ファイルを PostScript に変換する dviware です。
同じ機能を持ったものに jdvi2kps, dvipsk などもあります。
dvi2ps 系ではページイメージを縮小して一枚に複数のページを印刷する
nup というコマンドが付属してきます。
日本語の文字を出力する際に VFlib を利用してラスタイズまで行うことができ、
こうすると PS プリンタ側に日本語フォントが必要なくなります。

<sect2>必要なソース
<p>
dvi2ps-j 本体のソースは
<url url="ftp://ftp.math.s.chiba-u.ac.jp/tex/">
にあります。ファイル名は <tt/dvi2ps-2.0j-gamma.tar.gz/です。

<sect2>dvi2ps-j のコンパイル
<p>
コンパイル作業は特に難しくありません。ソースのアーカイブを展開し、
<tt/doc/install.doc/ の指示に従って <tt/Makefile/ を書き換え、
make→make install するだけです。
これまでの作業によって VFlib が入っており、
これを利用する場合の作業は以下のようになります。

<enum>
<item>ソースを展開します。
<tscreen><verb>
% zcat dvi2ps-2.0j-gamma.tar.gz | tar xf -
% cd dvi2ps-2.0j-gamma
</verb></tscreen>

<item><tt/Makefile/ を編集します。私が変えた点は以下のようなものです。
	<itemize>
	<item>PAGEREVERSE をプリンタにあわせて TRUE に変更
	<item>RESOLUTION を プリンタにあわせて 360 に変更
	<item>VFlib 関係は 2) の設定を有効にした
	<item><tt/CC=gcc/ に変更
	<item><tt/CFLAGS=-O -DPOSIX/ に変更
	</itemize>

<item>make して、スーパーユーザになってインストール
<tscreen><verb>
% make
% su

# make install
</verb></tscreen>

</enum>

<sect2>fontdesc の編集
<p>
<tt/fontdesc/ は dvi2ps-j で用いるフォント情報を指定するファイルです。
普通に dvi2ps-j のインストールを行った場合は
<tt>/usr/local/lib/dvi2ps/fontdesc</tt> にあるはずです。
指定にあたっては
dvi ファイル中のフォントをラスタイズするかどうかでいくつかの選択肢があります。

VFlib を使って日本語フォントをビットマップに展開する場合、
非日本語対応 PostScript でも印刷できるようになります。
ただ、私のところでは縦書きをさせることができませんでした
(本当はできるのかもしれません。識者の情報をお待ちしております)。

日本語 PostScript ファイルを印刷できる環境の場合は、
漢字の情報を展開しないで保存しておけば縦書き印刷ができます。
この場合作成される <tt/.ps/ ファイルが小さくなるというメリットもあります。

英字フォントに関してもラスタイズしないでおくことは可能ですが、
この場合は PostScript プリンタで印刷する際に cm フォントなどの
ps 版が必要になります。

以下、私の設定例を示します。

<code>
# dvi2ps font description file for VFlib with MJ-700V2C
#
# printer spec
#
resolution 360
#
# header
#
include		dvi2.ps
#
#  configs
#
vfontcap	/etc/vfontcap
define	f	/usr/local/lib/texmf/fonts
#
# ascii font
#
font    pk      * 3     /usr/share/fonts/pk/pk360/%f.%mpk
#
# MakeTeXPK
#
define mode  bjtenex
define	gen	/usr/local/lib/texmf/fonts/tmp/pk/$mode
font	pk	* 0	$gen/%f.%mpk
font	func	* 0	\
	!pre(dm),!pre(dg),!pre(min),!pre(goth),!pre(tmin),!pre(tgoth),\
	exec(/usr/local/bin/MakePK %f %m %R %M $mode $gen),\
	pk($gen/%f.%mpk)
#
# kanji font
#
#  for VFlib kanji of ASCII Nihongo TeX
#  First, convert ASCII dvi -> VFlib kanji dvi by virtual font
#
font	jvf	* 0	$f/kanji/vf-a2bk/%f.vf
#
#  Use VFlib Kanji Metrics
#
font	jfm	* 0	$f/kanji/jfm/%f.tfm
#
# VFlib mapping
#
map	rml	JSNR	^r-microsoft-mincho
map	gbm	JSNR	^r-microsoft-gothic
map	ryumin-l	JSNR	^r-microsoft-mincho
map	gtbbb-m		JSNR	^r-microsoft-gothic
#
# If PS printer have Morisawa-Kanji
#
#map	rml	JSNR	Ryumin-Light-H
#map	gbm	JSNR	GothicBBB-Medium-H
#map	rmlv	JSNR    Ryumin-Light-V
#map	gbmv	JSNR    GothicBBB-Medium-V
#map	ryumin-l	JSNR	Ryumin-Light-H
#map	gtbbb-m		JSNR	GothicBBB-Medium-H
#map	ryumin-l-v      JSNR    Ryumin-Light-V
#map	gtbbb-m-v       JSNR    GothicBBB-Medium-V
</code>


<sect1>dvipsk-5.58f のインストール
<p>
本節は土屋＠京大さんからいただいた情報です。

dvi→ps converter としては、dvipsk-5.58f を利用しています。dvipsk は、
他の converter と比べて kpathsearch library との相性が比較的良く、
余分な設定も少なくて済むような気がします。

dvipsk-5.58f をインストールするには次のファイルが必要です。

また dvi2ps で用いる virtual フォントを用意するために以下が必要です。

<tscreen><verb>
dvipsk-5.58f.tar.gz
dvipsk-jpatch-p1.2.tar.gz
</verb></tscreen>

インストールの手順は、次の通りです。

<tscreen><verb>
cd /usr/local/src
tar xzvf dvipsk-5.58f.tar.gz
cd dvipsk-5.58f
tar xzOf $FTP/dvipsk-jpatch-p1.2.tar.gz dvipsk.patch | patch -s
sh configure
make
cd dvipsk
make install
</verb></tscreen>

$TEXMF/dvips/config.ps が設定ファイルになっています。JE の環境下では、
<code>
% How to print.
o |lpr -Pps
</code>

の様に変更して、次の部分を

<code>
% Default resolution.
D 360

% Metafont mode. (This is completely different from the -M command-line
% option, which controls whether MakeTeXPK is invoked.)
M bjtenex
</code>

のように各自のプリンタに合わせて書き換えれば、設定は終了です
(VFlib, /etc/printcap の設定は完了しているとします)。

<footnote>
dvipsk は、なぜか $TEXMF/ls-R があると動作しませんでしたので、
私はこのファイルは消去しました。
体感上はほとんどサーチ速度に変化はありませんでした (中野)
</footnote>

<sect1>dviprt のインストール
<p>
MS-DOS では非常にポピュラーだった dviware です。
Unix 用には 2.43.3c というテスト版があり、
少々の変更で Linux でも動くようになります。
またある意味で VFlib の元になったプログラムであるため、
TrueType フォントの使い方はほとんど同じで、
<ref id="VFlib" name="VFlib のインストール">
の作業を行っていれば設定ファイルを書くだけで
TrueType フォントが利用できるようになります。縦書きにも対応しています。

<sect2>コンパイル
<p>
ソースは
<url url="ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/dviout/test/t2433csr.tar.gz">
にあります。これを適当なディレクトリに置いたところから作業を始めます。

<enum>
ソースを展開します。
<tscreen><verb>
% mkdir dviprt
% cd dviprt
% zcat ../t2433csr.tar.gz | tar xf -
</verb></tscreen>

<item> <tt/Makefile/ を編集します。
<itemize>
<item>CFLAGS に <tt>-DBSD -I/usr/include/bsd</tt> を追加。
<item> 51 行目を
<code>
$(CC) -o dviprt $(OBJS) -lm -lbsd
</code>
のように変更。
</itemize>

<item>make すると、dviprt がカレントディレクトリに出来上がりますので、
これを /usr/local/bin に手動でインストールしてください。
</enum>


<sect2>環境設定
<p>
環境設定に関しては DOS の dviprt とほとんど同じです。
まずプリンタ用のコンフィグレーションファイルを手に入れる必要があります。
DOS 用のものが
<url
url="http://www.vector.co.jp/vpack/filearea/dos/writing/tex/dvidrive/"
name="Vector Design のライブラリ">
にありますので、ここから取ってくるのがわかりやすいと思います。
必要なファイルが入っているアーカイブは
<itemize>
<item>tex243ut.lzh
<item>t2432ut.lzh
</itemize>
です。
それぞれ展開して、 <tt>utils/files.utl</tt> というファイルを読めば、
目的のプリンタに対応したコンフィグレーションファイルが見付かると思います。
<tt>utils/cfg/</tt> というディレクトリにあるはずです。

ちなみに Epson の MJ-700V2C には <tt/mj_360.cfg/、
HP の LaserJet IIIp には <tt/hp_ljp.cfg/ というファイルを使いました。

これを <tt>/usr/local/lib/texmf/</tt> にコピーし、
次いで設定ファイルを二つ作ります。
<tt/dviprt.par/ と <tt/dviprt.vfn/ が必要になります。
雛形は上記アーカイブの <tt>utils/par/</tt> にあります。
これらを EUC コードに変換し、行末を CRLF → LF にして
<itemize>
<item> <tt>/usr/local/lib/texmf/dviprt.par</tt>
<item> <tt>/usr/local/lib/texmf/dviprt.vfn</tt>
</itemize>
にコピーします。

dviprt.par を編集します。上記ファイルには詳細なコメントが入っていますので、
おそらくそれを見ながら設定できると思います。ちなみに私の手元のものを、
コメントを全部とった形でのせておきます。
<code>
TEXPK=/usr/share/fonts/pk/pk360/%s.%dpk;/usr/local/lib/texmf/fonts/public/ptex/tfm/%s.tfm
-p=omj_360.cfg
-LM=2.6mm
-TM=8.5mm
-vfn+
</code>

それぞれ
<descrip>
<tag/<tt/TEXPK//
欧文 pk フォントと日本語のフォントメトリックファイルの位置を指定
<tag/<tt/-p// プリンタを指定。標準でサポートされているもの以外は
<tt/=o(cfgファイル)/ という文法を用いる。
<tag/<tt/LM, TM// プリンタ上部、左部の印刷不能領域の設定
<tag/-vfn+/ TrueType フォントを使う指定
</descrip>
を指定しています。なお、元のファイルにある
<code>
-=common.par
</code>
の行はコメントアウトしてしまって大丈夫です。

次いで dviprt.vfn を編集します。
これもコメントの通りでほぼ大丈夫だと思います。
同様に私の手元のものをのせます。
<code>
%version = 2
%vfont_list
 1,            /usr/share/fonts/TrueType/msmincho,        1000, 1000,   0
 2,            /usr/share/fonts/TrueType/msgothic,        1000, 1000,   0
%jfm_list
 min,      1,  a, a, n40, 100;0;0,      ,     ,     0
 goth,     2,  a, a, n40, 100;0;0,      ,    1,     0
 tmin,     1,  a, a, n40, 100;0;0,      ,     ,     0
 tgoth,    2,  a, a, n40, 100;0;0,      ,    1,     0
</code>

</article>

