为什么我通过 tlmgr 添加的 auxtree 无法被 kpsewhich 找到?

为什么我通过 tlmgr 添加的 auxtree 无法被 kpsewhich 找到?

我正在本地开发样式文件,虽然我的 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?我的常规配置、系统变量等是否有问题?

相关内容