kpsearch 库在 Linux 系统上神秘找不到 article.cls

kpsearch 库在 Linux 系统上神秘找不到 article.cls

我花了两天多的时间试图弄清楚为什么我的 ubuntu linux 系统(实际上是两个不同的系统)突然无法从我的 texlive 发行版中找到 .cls 和 .sty 文件。我最初使用的是 ubuntu texlive,它就是在那里开始出现的。因此,我清除了所有 texlive 软件包,并按照说明从 TUG 安装脚本安装了 2020 texlive这里。但我仍然遇到同样的问题。以下是我目前所做的:

  1. 当以 texlive 用户身份登录时,一切似乎都很好。特别是,
$  kpsewhich article.cls
/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls

但是当我以我的普通用户名运行它时,我什么也没有得到,退出代码为 1。

  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}

在两种情况下看起来都是正确的。

  1. 我检查了文件权限,所有 texlive 文件都有“其他”读取权限。为了确保万无一失,我可以在以我的身份登录时执行以下操作:
$ cat $(find /usr/local/texlive/2020/texmf-dist -name article.cls | head -n 1)

并且我将 artlicle.cls 的内容转储到我的屏幕上。

  1. 我有一个 ~/texmf 目录,一切看起来都正常。我没有 ~/.texlive2020 目录。

  2. 我已经使用各种调试标志运行了 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

相关内容