LaTeXの様々なパッケージはCTANから持ってきます.国内ではRingServer Projectによって多数mirrorされているので,一番近い場所に行ってください.
ここではFreeBSD 3.4-RELEASEにインストールしています.
backup | TeX | pTeX | LaTeX2e | pLaTeX2e | LaTeX209 | dvipsk | xdvik | package | font | dvi2ps | misc
csh# mv /usr/local/tex/share/texmf{,.old}
# mkdir /usr/local/tex
# mkdir /usr/local/tex/share
# tar xzf texmflib-7.5.tar.gz -C $prefix/share
% tar xzf web-7.2.tar.gz -C $srcdir
% tar xzf web2c-7.2.tar.gz -C $srcdir
% cd $srcdir/web2c-7.2
% env LDFLAGS="-R$prefix/lib" ./configure --prefix=$prefix --enable-shared
% make
エラーで止りましたね?
! LaTeX source files more than 1 year old!. l.573 ...LaTeX source files more than 1 year old!} ? ! Emergency stop. l.573 ...LaTeX source files more than 1 year old!}
なるほど,ではLaTeXを最新にしましょう.$texmf/tex/latexにCTAN/macros/latex/base/を持ってきます.これをunpackするにはtexがインストールされていなければいけません.でもまだコンパイルが終わっていません.ニワトリと卵問題が発生.回避方法はいくつかありますが,今回は真っ向勝負.
# cd $texmf/tex/latex/base
# ln -s $srcdir/web2c-7.2/web2c/tex.pool .
# $srcdir/web2c-7.2/web2c/tex -ini unpack.ins
# rm tex.pool
では続きを
% cd $srcdir/web2c-7.2
% make
# make install
GNU fileutilsをインストールしていてそっちのlsを使うようにパスが設定されていると,mktexlsrでできあがるls-Rファイルが変になって次から
warning: kpathsea: No usable entries in /usr/local/tex/share/texmf/ls-R. warning: kpathsea: See the manual for how to generate ls-R.と言われるようになります.なので$prefix/bin/mktexlsrで\lsを/bin/lsに変更してしまいました.
あ,またエラーで止りました.
You seem to be missing input files necessary to make the basic formats (some or all of: platex.ltx).
platexも一緒にインストールするなんて聞いてないよ.まあいいや.これも最新を取ってきて先ほどと同様に入れましょう.
# mkdir $texmf/tex/platex
# cd !$
# tar xzf ~/ftp/tex/ascii-ptex/platex/1999-08-09/pl19990809e.tar.gz
# mv 19990809 base
# cd base
# ln -s $srcdir/web2c-7.2/web2c/ptex218/ptex.pool .
# $srcdir/web2c-7.2/web2c/ptex218/ptex -ini plcore.ins
# rm ptex.pool
では続きを
% make
# make install
CTAN/macros/latex/base/を$texmf/tex/latexに持ってきて,次のようにします.
# cd $texmf/tex/latex/base
# tex -ini unpack.ins
# tex -ini latex.ltx
# mv -f latex.fmt $texmf/web2c
では動作チェックをしましょう.このときAMSTeX用のfontが必要になります.後述のフォントの設定を見て$texmf/fonts/tfm/amsfontsを用意します.
% cd /tmp
% latex ltxcheck
# mkdir $texmf/tex/platex
# cd !$
# tar xzf pl19990809e.tar.gz
# mv 19990809 base
# cd base
# ptex -ini plcore.ins
# ptex -ini platex.ltx
# mv -f platex.fmt $texmf/web2c
下準備
# mkdir $texmf/tex/platex209
# cd !$
# tar xzf platex209.tar.gz
# mv platex209 base
# cd ..
# ln -s platex209 latex209
# cd platex209/base
latex209を作る
# tex -ini lplain.tex \\dump
# mv lplain.fmt $texmf/web2c/latex209.fmt
# ln -s tex $prefix/bin/latex209
platex209を作る
# ptex -ini plplain.tex \\dump
# mv plplain.fmt $texmf/web2c/platex209.fmt
# ln -s ptex $prefix/bin/platex209
jlatexを作る
# ptex -ini jlplain.tex \\dump
# mv jlplain.fmt $texmf/web2c/jlatex.fmt
# ln -s ptex $prefix/bin/jlatex
$texmf/web2c/texmf.cnfに
TEXINPUTS.jlatex = $platex209_inputs
を追加
旧LaTeX用のマクロは$texmf/tex/platex209/local/などに置けばファイルの検索順序でLaTeX2eとの混乱が発生しません.
% cd $srcdir/web2c-7.2
% tar xzf dvipsk-5.78.tar.gz
% tar xzf dvipsk-jpatch-p1.4d.tar.gz
% patch < dvipsk.patch
% cd dvipsk
% env LDFLAGS="-R$prefix/lib" ./configure --prefix=$prefix --enable-shared --cache-file=../config.cache
% make
# make install
PostScriptフォントを使う場合はフォントの設定のところを見て,$texmf/dvips/base/psfonts.mapを編集します.
texk/xdvik/README.xdvik-jpを良く読む.そのあとconfigureなんですが,僕の環境は研究室の歴史的事情によりディレクトリ構成が複雑なためこうなります.
% env LDFLAGS='-R/usr/local/X11R6.3/lib:/usr/local/misc/lib:/usr/local/tex/lib -L/usr/local/misc/lib' ./configure --prefix=$prefix --enable-shared
texk/xdvik/xdvi-config.hを編集します.
#define DEFAULT_FONTMAP
#define FILTOPTTBLFILE
は自分の$prefixを参考に変更します.さらに,余計なテンポラリファイルを作らないためにPRINTCMDとPRCMD*をdvipsに特化してしてしまうといいでしょう.
% make
# cd texk/xdvik
# make install
$texmf/fonts/source/local/kiis10.mf $texmf/fonts/tfm/local/kiis10.tfm
普通は印字用フォントはpkフォントと呼ばれるプリンタのdpiにあわせたbitmapフォントが用いられます.しかし,PostScript Type1フォントなどベクタフォントを用いることにより,プリント時にdpi非依存の綺麗な印刷が得られるのと同時に,pkフォントが減ってハードディスクの節約になります.そこでここではcmフォントとamsフォントをdvipskで使えるように設定します.要するに$texmf/fonts以下にpfbを置いて,dvips/base/psfonts.mapにフォントリストを追加するだけです.{cmpsfont,ampsfnt}/mapfiles/psfonts.{am,cm}xがpfa用,psfonts.{am,cm}zがpfb用.
CTAN/fonts/psfonts/adobeからcourier,helvetic,times,utopiaなど必要なフォントを持ってきます.そしてtfm,vfを$texmf/fonts以下の所定の場所に,fdを前述のpsnfssに置きます.リンクでもいいです.また,dvips/config.*かdvips/ptm.mapを$texmf/dvips/base/psfonts.mapに加えます.標準的なのは既に書かれています.
$texmf/fonts/vf/adobe/times -> $texmf/psfonts/adobe/times/vf $texmf/fonts/tfm/adobe/times -> $texmf/psfonts/adobe/times/tfm $texmf/fonts/tex/latex/psfonts/*.fd -> $texmf/psfonts/adobe/times/tex/*
mktexlsrを忘れずに
doc/install.docを良く読んでMakefileを変更します.
PREFIX=/usr/local/tex
DVI2LIB=${PREFIX}/lib/dvi2ps-3.0j
VFLIB = -R/usr/local/misc/lib -L/usr/local/misc/lib -lVFlib2 -lttf
VFLIBINC = -I/usr/local/misc/include
KPSELIB = -R${PREFIX}/lib -L${PREFIX}/lib -lkpathsea
KPSEINC = -I${PREFIX}/include -DKPATHSEA
CCFLAGS = -O3 -DPOSIX # NetBSD FreeBSD (gcc 2.X), Linux
% make
% make newlib
make newlibしたらdoc/lib.docを読んでlib以下を編集します.ここではLaserWriter16/600PS-JをベースにOKI MICROLINE 600PSIIを設定しています.canonexをljfourにしているのはすでにljfourで600dpiのフォントをたっぷり持っていたからです.フォントに関しては,cm,amsはPostScript type1フォントを,日本語PSプリンタの標準的フォントはプリンタ内蔵フォントを使いたいので,フォント選択にbikanjiでなくallbifontにして,ペンマークなど特殊なフォント用にfonts-bitmapを加えています.
--- LW16-600J Sat Jun 13 03:52:05 1998 +++ ML600PS2 Wed Feb 16 15:31:07 2000 @@ -1,7 +1,7 @@ -# dvi2ps font description file for LaserWriter16/600PS-J +# dvi2ps font description file for OKI MICROLINE 600PSII # # printer spec -fontdesc printer/LW16 +fontdesc printer/ML600PS2 # font selection -fontdesc bikanji +fontdesc allbifont +fontdesc fonts$kpse/fonts-bitmap fontdesc fonts$kpse/generate --- printer/LW16 Thu Oct 10 14:45:22 1996 +++ printer/ML600PS2 Wed Feb 16 15:19:27 2000 @@ -1,5 +1,5 @@ -# LaserWriter16 +# OKI MICROLINE 600PSII # resolution 600 -define mode canonex +define mode ljfour define bk mor2あとはconfigk,fontsk/asc-bikanji,fontsk/bikan-mor2を編集してファイルの場所を自分の環境に合わせます.
# make install
# make install-lib
# cd $prefix/lib/dvi2ps-3.0j
# ln -s ML600PS2 fontdesc
インストールが終わったら動作確認.-dオプションをつけるとフォントの検索結果を全部出力してくれます.
% dvi2ps -d main.dvi > /dev/null