
私は2日間の大半を費やして、なぜ私のUbuntu Linuxシステム(実際には2つの異なるシステム)が突然、Texliveディストリビューションの.clsファイルと.styファイルを見つけられなくなったのかを解明しようとしました。私はもともとUbuntuのTexliveを使用していましたが、それが問題を引き起こし始めたのです。そこで、私はすべてのTexliveパッケージを消去し、説明されているようにTUGインストールスクリプトから2020年のTexliveをインストールしました。ここしかし、まだ同じ問題があります。これまでにやったことは次のとおりです。
- texliveユーザーとしてログインすると、すべて正常に見えます。特に、
$ kpsewhich article.cls
/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls
しかし、通常のユーザー名で実行すると、何も表示されず、終了コード 1 が返されます。
- me または texlive としてログインすると、TEXMF 変数に対して次の結果が表示されます。
$ kpsewhich --expand-var='$TEXMF'
{{}/home/ded/.texlive2020/texmf-config,/home/ded/.texlive2020/texmf-var,/home/ded/texmf,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2020/texmf-config,!!/usr/local/texlive/2020/texmf-var,!!/usr/local/texlive/2020/texmf-dist}
どちらの場合も正しいように見えます。
- ファイルの権限を確認したところ、すべての texlive ファイルに「その他」の読み取り権限があります。念のため、私としてログインすると次の操作を実行できます。
$ cat $(find /usr/local/texlive/2020/texmf-dist -name article.cls | head -n 1)
そして、artlicle.cls の内容が画面に表示されます。
~/texmf ディレクトリがあり、すべて問題ないように見えます。~/.texlive2020 ディレクトリはありません。
さまざまなデバッグ フラグを使用して kpsewhich を実行したところ、正しいディレクトリを検索する場所がわかりましたが、article.cls のパスはまだ返されません。出力に次の行が表示されます。
$ kpsewhich --debug=13 --must-exist --path=/usr/local/texlive/2020/texmf-dist// article.cls 2>~/tmp/kps-out
...
kdebug:dir_links(/usr/local/texlive/2020/texmf-dist/tex/latex/base) => 2
...
しかし、まだ article.cls が表示されません。
誰かが私が試すことのできる何か他のものを提案したり、解決策を提案したりしてくれることを願っています。
答え1
わかりました。ようやく問題が分かりました。シェル環境設定で TEXINPUTS を設定すると、システム ディレクトリを除外してそれらのディレクトリが使用されていました。末尾に「:」を追加すると、すべて期待どおりに動作しました。この回答が他の誰かの役に立つことを願っています。
問題がわかったので、より良い答えは次のようになります。TEXINPUTSの設定