LaTeX で外部化するファイル保管場所の登録

目次

TeX Live に収められていないパッケージや,外部化しようとするプリアンブルは,コンパイルしようとする .tex ファイルと同じフォルダに置かねばならない。しかし,都度そのようなことをするのはたいへんな手間である。 こうしたパッケージやプリアンブルは,いわゆる「TeX が見つけられる場所」に置くことによって .tex ファイルと同じフォルダになくともコンパイルすることができる。 ここでは,その方法を述べる。

具体的には,次のエラーに対処する。

! LaTeX Error: File `filename' not found.

筆者の環境は次である。

  • TeX Live によって LaTeX がインストールされている。
  • OS が Windows である。

背景

LaTeX のインストールにあたっては TeX Live が主流となった。TeX Live では,ほとんどのパッケージが LaTeX 本体とともに取り込まれるため,深く考えずに \usepackage{...} とすれば機能を使うことができる。

しかし,一部のパッケージ(高校数学であれば emath など)は TeX Live に収録されておらず,自ら導入せねばならない。

また,プリアンブルを外部化し \input{...} によって読み込むときも,ファイルの位置を指定せずに済ませるにはファイルを 「TeX が見つけられる場所」に置かねばならない。署名代わりの画像を載せる,といったときも同じである。

解決

  1. スタートボタンを右クリックし,Windows Power Shell(管理者)を開く。
  2. kpsewhich -var-value TEXMFLOCAL と入力し,エンターキーを押す(コピー&ペーストできる。
  3. 表示されたフォルダを確かめる。Windows Power Shell の画面は閉じずに置いておくとよい。
    • C:/texlive/texmf-local となっているのが望ましい。もしかすると, C:/texlive/2022/texmf-local (年号は TeX Live のバージョン)である可能性もある。
    • 年号が入っているときは,TeX Live のバージョンを上げたときにふたたび同じ手続きをせねばならないことが予想される。手間であれば,「TeX Live 2022 に更新後 .sty が見えないことへの対処」を参考にここで直してもよい。
  4. 表示されたフォルダを開く。
  5. 今のフォルダの中に,好きな名前のフォルダを作る。
    • ダウンロードしてきたパッケージなら,パッケージの名前をフォルダの名前にするとよい。
    • 自分で作ったプリアンブルなら,mypreamble などと名づけるとよい。
  6. Windows Power Shell に mktexlsr と入力し,エンターキーを押す。
  7. しばらくすると Updating... Updated... が複数表示される。かなりの時間がかかることもある。しばらく待って mktexlsr: Done. と表示されれば終わりである。
    • 管理者で起動しておかなければ,Cannot open... などと表示されて失敗する(最後は mktexlsr: Done. と言ってくるが,その前の行などにエラーメッセージがある)。そのときは,Windows Power Shell を管理者で起動し,もう一度 mktexlsrする。何度繰り返しても差しつかえない。
  8. これで,ファイル名だけを(フルパスなしで) \usepackage{...}\input{...}\includegraphics{...} などとしても読み込まれるようになる。

私はこの方法によって LaTeX 用高校数学テンプレートを読み込ませているほか,ヘッダに載せるアイコンも同じように置き,ファイル名のみで \includegraphics している。

参考

改訂

  • 改訂: 2023-08-12
    • タイトルを変更した(「LaTeX (TeX) パッケージのインストール」から,内容を明らかにするため。)
    • 概要を書きなおした。
  • 追記: 2022-07-23