![为什么我通过 tlmgr 添加的 auxtree 无法被 kpsewhich 找到?](https://linux22.com/image/417432/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E9%80%9A%E8%BF%87%20tlmgr%20%E6%B7%BB%E5%8A%A0%E7%9A%84%20auxtree%20%E6%97%A0%E6%B3%95%E8%A2%AB%20kpsewhich%20%E6%89%BE%E5%88%B0%EF%BC%9F.png)
我正在本地开发样式文件,虽然我的 TEXMFHOME 中有已发布的版本,但我在 git 中拥有该样式的最新版本。当我使用此 git 进行开发时,我想轻松切换到该 TEXMF 并使用它。在装有 MiKTeX 的 Windows 上,我使用了该initexmf --user-roots= ...
命令,但现在是时候转移到 Linux 和 TeX Live 了。
所以我理解的是,auxtrees 是这里应该采用的方法,所以我调用了sudo tlmgr conf auxtrees add /home/MYUSERNAME/my/location/texmfofme
。但是如果我编译文档,TeXlive 似乎不知道这个位置。所以我调用了它tlmgr conf auxtrees show
,它显示:
(running on Debian, switching to user mode!)
List of auxiliary texmf trees:
/home/MYUSERNAME/my/location/texmfofme
然后我发现,我也可以通过调用 来检查 kpsewhich kpsewhich -var-value=TEXMFHOME
,但这只会导致/home/MYUSERNAME/texmf
,因此我怀疑我遗漏了一些东西。我texhash
也试过了,但没有成功。
正在运行的版本是
> tex --version
TeX 3.14159265 (TeX Live 2017/Debian)
kpathsea version 6.2.3
和
> tlmgr --version
(running on Debian, switching to user mode!)
tlmgr revision 46207 (2018-01-04 19:34:36 +0100)
tlmgr using installation: /usr/share/texlive
TeX Live (http://tug.org/texlive) version 2017
知道我在这里做错了什么吗?
更新
我发现,如果向 kpsewhich 询问是否TEXMFHOME
添加辅助树有点愚蠢,我应该询问AUXTREES
,你不觉得吗?所以我调用了kpsewhich -var-value=TEXMFAUXTREES
,结果是{}
,尽管tlmgr conf auxtrees show
仍然显示我添加的路径。
是tlmgr
不是写入了错误的texmf.cnf
文件?我认为它使用了/usr/share/texlive/texmf.cnf
,但我不知道这是否正确。
另一个更新
我现在发现,调用kpsewhich -all texmf.cnf
应该向我显示使用了哪些配置文件并且它返回:
/etc/texmf/web2c/texmf.cnf
/usr/share/texmf/web2c/texmf.cnf
/usr/share/texlive/texmf-dist/web2c/texmf.cnf
正如您所看到的,/usr/share/texlive/texmf.cnf
不在列表中,这是问题吗?
进一步调查
我现在得到了一个有效的配置,但只能通过手动干预。我做了什么?我将文件移动/usr/share/texlive/texmf.cnf
到/usr/local/share/texmf/web2c/texmf.cnf
并手动添加了行TEXMFAUXTREES = /home/MYUSERNAME/my/location/texmfofme,
。,
末尾的很重要,你也可以在:
那里放一个,据我所知,这允许kpathsea
进一步查找文件。手动设置后,我的图形被找到并可以使用。
所以我的新问题是:为什么要tlmgr
修改未找到的文件kpathsea
?我的常规配置、系统变量等是否有问题?