kpathsearchライブラリの設定ファイルは、 texmf.cnfというファイルです。 通常、$TEXMF/web2cディレクトリに収められています。 環境変数 TEXMFCNF に、texmf.cnfのあるディレクトリを指定すれば、 マルチユーザ環境の場合などで、個人ごとに設定を変更することもできます。
texmf.cnf内では、つぎのようにして検索パスを設定します。
TEXINPUTS.platex = .:$TEXMF/tex/platex2e//:$TEXMF/tex/latex2e//:$TEXMF/tex//
上記の例では、platexというコマンドの環境変数TEXINPUTSの設定を行っています。
このように、kpathsearchでは、「何々のコマンドの環境変数」のような指定が
可能になっています。
なお、$TEXMFは、TeXのライブラリディレクトリのルートが設定されている変数です。 デフォルトでは、/usr/local/lib/texmf ディレクトリです。
肝心の検索パスですが、先ほどの例では、
TEXINPUTS=.:$TEXMF/tex/platex2e/base:$TEXMF/tex/platex2e/misc:
$TEXMF/tex/latex2e/base:$TEXMF/tex/latex2e/contrib:
... :$TEXMF/tex/amstex: ... $TEXMF/tex/plain ...:
のように、すべてのディレクトリを指定する必要がないので、とても簡単で、
わかりやすくなります。
2重スラッシュ「//」を付けないと、サブディレクトリ内のファイルを探しに はいきません。
つぎのように、ディレクトリパスの途中で用いることもできます。
TFMFONTS = .:$TEXMF/fonts//tfm
このように用いると、$TEXMF/fontsディレクトリの下にある、
最後が「tfm」のディレクトリにあるファイルだけを探し、
「src」や「pk」ディレクトリなどにはアクセスしません。
$TEXMF/fonts/adobe/.../tfm
$TEXMF/fonts/public/cm/tfm
$TEXMF/fonts/public/dc/tfm
...
ファイル検索に時間がかかるようになってきた場合は、 つぎのコマンドを実行して、$TEXMFディレクトリに「ls-R」という名前の ファイルを作ります。
ls -R $TEXMF > $TEXMF/ls-R
ls-Rは、$TEXMFディレクトリからではなく、ルートディレクトリからである
ことに注意をしてください。
このように、どのファイルが読み込まれているのかを調べるためのプログラムが kpsewhichです。 このプログラムのソースは、kpathsearchライブラリのソースと一緒に入っています。
使い方は、
kpsewhich cmr10.tfm
のようにすれば、そのファイルがある場所が、
/usr/local/lib/texmf/public/cm/tfm/cmr10.tfm
のように表示されます。
また、特定のプログラムの環境変数を調べるときには、 つぎのようにします。
kpsewhich -program platex -expand '$TEXINPUTS'