TeX Live 2022 に更新後 .sty が見えないことへの対処
目次
TeX Live 2022 にアップデートしたのち,手作業で加えていた .sty が見えなくなり,コンパイルが通らなくなった。これを見えるように直したときの記録である。ただし,本質的な解決ではなく,対症療法である。
環境は次のとおりである。
- TeX Live 2022 をインストーラによってインストールした。
- 手作業でパッケージを導入している(
texmf-local
ディレクトリを使っている)。 mktexlsr
を実行できる。- OS が Windows である。
背景
TeX Live を 2019 から 2022 にアップデートしたところ,手作業で texmf-local
に加えていた(TeX Live に含まれていない) .sty たちが見えなくなった。
すなわち,次のエラーによってタイプセットできなくなった。
! LaTeX Error: File `FILENAME.sty' not found.
TeX Live 2022 における TeXworks のパスの確認や mktexlsr
などは TeX Live 2019 と同じように行ったはずであった。
解決
準備
- アップデート前(ここでは 2019)で手作業で加えていた .sty が置かれているディレクトリを調べる。
- 私の環境では
C:\texlive\texmf-local\tex\latex
であった。
- 私の環境では
通常の作業
C:\texlive\2022
を開く。- 管理者権限のもと,テキストエディタで
texmf.cnf
を開く。管理者権限で開く方法がわからなければ,texmf.cnf
をデスクトップなどにコピーしてから開くとよい。 TEXMFLOCAL = $SELFAUTOPARENT/texmf-local
と書かれた行を探し,TEXMFLOCAL = [アップデート前(ここでは 2019)で手作業で加えていた .sty が置かれているディレクトリの親ディレクトリのうち texmf-local まで]
と書き換える。- 私の環境では
TEXMFLOCAL = C:/texlive/texmf-local
であった。 - ¥(または \)ではなく
/
であることに注意されたし。
- 私の環境では
- デスクトップなどにコピーしてから開いていた場合は,元のフォルダに上書きコピーする。
mktexlsr
を実行する。
最後に TeXWorks を再起動すれば,アップデート前(ここでは 2019)で手作業で加えていた .sty も見つかる。
texmf.cnfを(不安などの理由で)触りたくないときの作業
- 「アップデート前(ここでは 2019)で手作業で加えていた .sty が置かれているディレクトリ」を開く。
- 別のウィンドウで
C:\texlive\2022\texmf-local\tex\latex
を開く。 - 「アップデート前(ここでは 2019)で手作業で加えていた .sty が置かれているディレクトリ」にあるフォルダ・ファイルを
C:\texlive\2022\texmf-local\tex\latex\local
へコピーする。 mktexlsr
を実行する。
最後に TeXWorks を再起動すれば,アップデート前(ここでは 2019)で手作業で加えていた .sty も見つかる。
詳細
本来,C:\texlive\texmf-local
はリリースに依らずに用いたいローカルなフォント・マクロを配置するディレクトリである。
したがって,TeX Live を更新したからといってこのような問題が起こることはないはずである。
実際,TeX Live 2022 のマニュアルにもそうあります(3.4.6 ローカルおよび個人用のマクロを利用する)。
- https://tug.org/texlive/doc/texlive-ja/texlive-ja.pdf
- Karl Berry / 朝倉卓人 訳
- TeX Live ガイド 2022 / 3.4.6 ローカルおよび個人用のマクロを利用する
- TeX Users Group
- 参照 2022-06-22
したがって,私の環境や設定に何か問題がある可能性が高いのだが,とりあえず動いてもらわなければ話にならない。
はじめは mktexlsr
が不完全なのではと疑った。
TeX Live 2022 導入後の mktexlsr
を眺めると次のようになっている。
C:\WINDOWS\system32>mktexlsr
mktexlsr: Updating C:/texlive/2022/texmf-local/ls-R...
mktexlsr: Updated C:/texlive/2022/texmf-local/ls-R.
mktexlsr: Updating C:/texlive/2022/texmf-config/ls-R...
mktexlsr: Updated C:/texlive/2022/texmf-config/ls-R.
mktexlsr: Updating C:/texlive/2022/texmf-var/ls-R...
mktexlsr: Updated C:/texlive/2022/texmf-var/ls-R.
mktexlsr: Updating C:/texlive/2022/texmf-dist/ls-R...
mktexlsr: Updated C:/texlive/2022/texmf-dist/ls-R.
mktexlsr: Done.
texf-local
が C:/texlive/2022/
の下にある。
これはかなり怪しい。
C:/texlive/2019/
にはなかった。
ここで,どこを見ているかを疑って調べた。
C:\WINDOWS\system32>kpsewhich -var-value TEXMFLOCAL
C:/texlive/2022/texmf-local
したがって,対症療法として texmf-local
の場所を指定することとした。
C:\texlive\2022\texmf.cnf
は,次のように書かれており安心して書き換えられる。
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
ファイルを検索すると C:\texlive\2022\texmf-dist\web2c\texmf.cnf
も見つかるが,こちらは次のように書かれており,書き換えるべきではない。
% If you modify this original file, YOUR CHANGES WILL BE LOST when it is
% updated. Instead, put your changes -- and only your changes, not an
% entire copy! -- in ../../texmf.cnf. That is, if this file is
% installed in /some/path/to/texlive/2022/texmf-dist/web2c/texmf.cnf,
% put your custom settings in /some/path/to/texlive/2022/texmf.cnf.
% (Below, we use YYYY in place of the specific year.)
書き換えたのちにはめでたく次のようになった。
C:\WINDOWS\system32>kpsewhich -var-value TEXMFLOCAL
C:/texlive/texmf-local
C:\WINDOWS\system32>mktexlsr
mktexlsr: Updating C:/texlive/texmf-local/ls-R...
mktexlsr: Updated C:/texlive/texmf-local/ls-R.
mktexlsr: Updating C:/texlive/2022/texmf-config/ls-R...
mktexlsr: Updated C:/texlive/2022/texmf-config/ls-R.
mktexlsr: Updating C:/texlive/2022/texmf-var/ls-R...
mktexlsr: Updated C:/texlive/2022/texmf-var/ls-R.
mktexlsr: Updating C:/texlive/2022/texmf-dist/ls-R...
mktexlsr: Updated C:/texlive/2022/texmf-dist/ls-R.
mktexlsr: Done.
参考
- http://museion.sakura.ne.jp/wiki/?TeX/Install#hb2999e
- 松浦高志
- TeXシステムのインストール / 6, TEXMFLOCALなどの変更(任意)
- 松浦高志のWikiページ
- 参照 2022-06-22
- https://tug.org/texlive/doc/texlive-ja/texlive-ja.pdf
- Karl Berry / 朝倉卓人 訳
- TeX Live ガイド 2022
- TeX Users Group
- 参照 2022-06-22
- https://texwiki.texjp.org/?TeX のディレクトリ構成
- (Wiki)
- TeX のディレクトリ構成
- TeX Wiki
- 参照 2022-06-22