TeX パッケージのstyファイルが読み込まれないときの対処法(ls-R手動編集)

こちらの記事はQiitaと同時投稿したものです。最新版はQiitaをご覧ください。

qiita.com


jlisting パッケージを入れようと思い、listings パッケージのフォルダにjlisting.styを入れて、mktexlsrを実行したがどうもうまく反映されなかったらしいので、その時にやった対処法を書く。

<筆者の環境>

cd /usr/local/texlive/2018/texmf-dist/tex/latex/listings
sudo cp ~/jlisting.sty jlisting.sty
sudo chmod 644 jlisting.sty
sudo mktexlsr
mktexlsr: Updating /usr/local/share/texmf/ls-R...
mktexlsr: Updating /var/lib/texmf/ls-R-TEXLIVEDIST...
mktexlsr: Updating /var/lib/texmf/ls-R-TEXMFMAIN...
mktexlsr: Updating /var/lib/texmf/ls-R...
mktexlsr: Done.

普通ここまでやれば、うまくいくらしいが、コンパイル時に「styファイルが見つからない」旨のエラーが出てしまう。

! LaTeX Error: File `jlisting.sty` not found.

よく見ると、上の部分でtexmfのls-Rは書き換えられてるのに、texmf-distのそれは書き換えられてなかった。なので、手動で書き換えます。

texmf-distまで戻ってから

sudo gedit ls-R

/tex/latex/listingsで検索をかけるとこんなのが出てくる。

./tex/latex/listings:
listings-acm.prf
listings-bash.prf
listings-fortran.prf
listings-lua.prf
listings-python.prf
listings.cfg
listings.sty
lstdoc.sty
lstlang1.sty
lstlang2.sty
lstlang3.sty
lstmisc.sty

このリストの一番下に、jlisting.styを追加すればOK.

ちなみに保存時に

** (gedit:29568): WARNING **: 11:50:40.231: Set document metadata failed: metadata::gedit-position という属性値はセットできません

とかいうエラーメッセージが頻繁に出るけど無視して大丈夫です。