texのカスタマイズ等について

TeX環境をLinuxでインストールするときに何かフォントがないとかエラーが出るけどググると同じ悩みを持ってる人がいて,よくわかんないけど解決するようなことについて少し調べてみた.
というかroot権限のない環境に入れるためいろいろ制約が多く必要に迫られて調べた.

やりたかったこととしては,platexは通るがdvipdfmxやjsarticle.clsがない環境でローカルに日本語でタイプセット出来るようにすること.
具体的には,
・dvipdfmx,AdobeReaderのインストール
・パスの設定
・クラスファイル等々のインストール

dvipdfmxとAdobeReaderのインストールについては普通にconfigureしてインストールすればよし.
とりあえず~/local以下にインストール.

でdvipdfmxをするとフォントがない等々のエラーが出る.
解決策は,~/local/share/texmf/dvipdfmxにAdobe/Reader9/Resourceのシンボリックリンクを作り,
mktexlsr ~/local/share/texmf
を実行する.
とりあえずこれでjarticleで日本語のpdfが出来た.

このmktexlsrってやつが何者かっていうのを理解するのにだいぶ時間がかかってしまった.
まず,TeXやdvipdfmxなどはkpathseaというライブラリを使って必要なファイルを探索する.
kpathseaは探索パスのディレクトリに対しls-Rというファイルを参照し,目的のファイルがそのディレクトリ以下に有るかをチェックする.
ls-Rというファイルはmktexlsrというコマンドによって作成される.

よくわからなかったのは,kpathseaの探索ディレクトリはどうやって指定されているのかということ.
おかげでフォントをどこに置けばいいのかが謎だった.
http://tutimura.ath.cx/ptetex/?%C2%BF%BD%C5TEXMF%A5%C4%A5%EA%A1%BCによると,環境変数TEXMFで決まっているらしい.
(TEXMFの中身はkpsewhich -var-value TEXMFなどで確認できる)
そこでTEXMFHOME=~/local/share/texmfとしてみるが一向にls-Rが作られない.
結局よくわからなかったが
mktexlsr ~/local/share/texmf
と直接指定してやればいいらしい.
これで無事フォントを発見できdvi->pdfの変換に成功.

次にjsarticleのインストール.
まずhttp://oku.edu.mie-u.ac.jp/~okumura/jsclasses/から必要ファイル*1をダウンロード.
tfmの方は,~/.texmf-var/fonts/tfmに入れる.
jsclassesの方は,~/.texmf-var/ptex/platex/jsに入れる.
(~/.texmfはTEXMFに含まれるディレクトリの1つ.~/local/share/texmfでは機能しなかった)
fontsとかptexとかいうディレクトリ名も重要みたい.
https://forums.ubuntulinux.jp/viewtopic.php?id=11188
どこかのtexmf.cnfとかで決められているとかなのかな.
これでmktexlsrをするとplatexまでは通るのだが,dvipdfmxが通らない.
jisgのvfがないとか言われる.
そもそもパスの設定以前にjisg.vfがないようなので,アスキーからダウンロード.
http://www.dnsbalance.ring.gr.jp/pub/text/TeX/ascii-ptex/jvf/
で,これを解凍し~/.texmf-var/fonts/vfに入れる.
これで設定完了.

結局TeXのよくわからなさはkpathseaの探索がどうなっているのか不明瞭っていうあたりなのかな.
いないフォントをwebから探してくるのも面倒だったが,どこに置けばいいのかわからないのも結構やな感じ.
windowsの再起動みたいな感じでとりあえずmktexlsrやればどうにかなるようなシステムっぽい.

このあたりも参考にhttp://no-item-retrieved.blogspot.com/2007/10/tex.html

*1:jsclasses-061106.zip,jis-tfm.zip