
我花了兩天的時間試圖弄清楚為什麼我的 ubuntu Linux 系統(實際上是兩個不同的系統)突然無法從我的 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
好的。我終於明白問題出在哪裡了。透過在我的 shell 環境設定中設定 TEXINPUTS,它使用這些目錄,即係統目錄的 /exclusion/ 。添加結尾“:”後,一切都按預期工作。我希望這個答案對其他人有幫助。
現在我知道了問題所在,這是一個更好的答案:設定 TEXINPUTS