![kpsearch 库在 Linux 系统上神秘找不到 article.cls](https://linux22.com/image/420232/kpsearch%20%E5%BA%93%E5%9C%A8%20Linux%20%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%A5%9E%E7%A7%98%E6%89%BE%E4%B8%8D%E5%88%B0%20article.cls%20.png)
我花了两天多的时间试图弄清楚为什么我的 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。
- 当以我或 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