kpsewhich 无法找到 $TEXMFHOME/tex/lualatex/ 下的符号链接路径(但可以找到 $TEXMFHOME/tex/latex/ 下的符号链接路径)

kpsewhich 无法找到 $TEXMFHOME/tex/lualatex/ 下的符号链接路径(但可以找到 $TEXMFHOME/tex/latex/ 下的符号链接路径)

(这是对美好约瑟夫的建议关于提供软件包作为版本控制存储库的策略

kpsewhich角度来看,符号链接来自:

  • $TEXMFHOME/tex/latex/...效果很好
  • $TEXMFHOME/tex/lualatex/...不起作用。

真实示例:

$ mkdir -p ~/dev/test-latex/tex/latex/test-latex/
$ touch    ~/dev/test-latex/tex/latex/test-latex/test-latex.cls
$ cd       ~/texmf/tex/latex
$ ln -s    ~/dev/test-latex/tex/latex/test-latex/
$ kpsewhich test-latex.cls
/home/bitouze/texmf/tex/latex/test-latex/test-latex.cls
$
$ mkdir -p ~/dev/test-lualatex/tex/lualatex/test-lualatex/
$ touch    ~/dev/test-lualatex/tex/lualatex/test-lualatex/test-lualatex.cls
$ cd       ~/texmf/tex/lualatex
$ ln -s    ~/dev/test-lualatex/tex/lualatex/test-lualatex/
$ kpsewhich test-lualatex.cls
$
$ # Cleanup
$ rm -rf   ~/dev/test-latex
$ rm -rf   ~/texmf/tex/latex/test-latex
$ rm -rf   ~/dev/test-lualatex
$ rm -rf   ~/texmf/tex/lualatex/test-lualatex

因此,kpsewhich

  • 发现test-latex.cls
  • 没有找到test-lualatex.cls

请注意,先前的符号链接指向目录。如果创建的符号链接指向文件,则不会出现问题(kpsewhichfinds test-lualatex.cls):

$ mkdir -p ~/dev/test-lualatex/tex/lualatex/test-lualatex/
$ touch    ~/dev/test-lualatex/tex/lualatex/test-lualatex/test-lualatex.cls
$ mkdir    ~/texmf/tex/lualatex/test-lualatex
$ cd       ~/texmf/tex/lualatex/test-lualatex
$ ln -s    ~/dev/test-lualatex/tex/lualatex/test-lualatex/*
$ cd
$ kpsewhich test-lualatex.cls
/home/bitouze/texmf/tex/lualatex/test-lualatex/test-lualatex.cls
$
$ # Cleanup
$ rm -rf   ~/dev/test-lualatex
$ rm -rf   ~/texmf/tex/lualatex/test-lualatex

这是怎么回事?

相关内容