21:51:42 # Life tetexの変更についての考察. tetex3.0で,latexがpdfetexを利用してダンプをつくるようになった. woody の texから,sarge の etex,そして,今回の pdfetex だ. latexはpdfetexへのシンボリックリンクになっており, pdfetexは,argv[0] を解析し,latexという名前で呼ばれたため, latex.fmt を読み込んでロードするという話になる. initexというコマンドがあったのだが,tetex 3.0でなくなった. 実は,formatが変わっているため, latex用のformatをダンプするためには, initex, einitex, pdfeinitex のコマンドのうち正しいものを呼ばなければならない, という状況になってしまっている. ただ,initex, einitex, pdfeinitexはそれぞれ tex, etex, pdfetex へのシンボリックリンクで, 最近の web2c のtex実装では, -ini コマンドをつけて 直接実行してあげても同じ事が出来るようになっている. 従来はinitex &latex a.texというように指定して実行していた物が, latex &latex a.texというように実行できるようになっているのである.
initexモードでしかできないことというのが二つある. 一つは,全くフォーマットをロードしないで,生のTeXを起動すること(昔のTeXは plain tex というフォーマットをデフォルトでロードしてしまった,最近は違うらしい). もう一つは,フォーマットというものをダンプすることだ. texは,「フォーマット」というダンプをロードして,前回ダンプを作成した時点から 処理を再開できるという仕様になっているらしい.
ここまでは,まぁ,よいだろう. もう一つ問題がある. Debian の TeX (というか,tetex 2.0 から 3.0への変更) で問題になるのは, woody の tex のフォーマットファイルは .fmtという拡張子になっていた. sarge (tetex 2.X) の etex のフォーマットファイルは,.efmtという拡張子になっていた. sid (tetex 3.X) の pdfetex のフォーマットファイルは .fmt という拡張子になっている. それを確認する信頼できる方法がない. kpsewhich --format fmt latexでわかりそうなのだが,違うようだ. どうも,cnffileを作成して,fmtutilを使え,という話になるようだ. 338046, 338608 で議論したメールの数が気づいたら100通とかになっているのでどういう話をしたのか,まとめるのが大変だ.
提案されたネタは下記. latex -iniを使うのより複雑で何のメリットもない気がする. cleanupで削除すべきファイルの名前 (XXXX.fmt) が何なのか,という疑問に答えが無い.
fmtutil.cnfの名前の調べ方?: grep ^latex `kpsewhich --format='web2c files' fmtutil.cnf` | \ awk '{print $1,"\t",$2,"\t",$3,"\t &latex name.ini"}' fmtutil.cnfファイルの中身?: \makeatletter \def\SourceFile{\def\whizzy@master} \def\WHIZZYCONFIGDIR{'"$CONFIGDIR"'} \def\WHIZZYHOME{'"$HOME"'} \makeatother \let\Documentclass\documentclass \renewcommand{\documentclass}[2][]{\Documentclass[#1]{#2} \let\WhizzyLevel'"$LEVEL"' \def\WhizzyExt{'"$EXT"'} \input{'"$PACKAGE"'}} \input{'"$NAME$EXT"'} \dump $ fmtutil --cnffile fmtutil_name.cnf --fmtdir .
$Id: dancer-diary.el,v 1.89 2005/05/12 11:19:14 dancer Exp $