我知道我可以使用以下方法检查某个特定包的调用位置
kpsewhich <packagename>.sty
如果我想要一个自定义包,我通常必须将它放在与我的文档相同的文件夹中。
我假设与 $PATH 类似,LaTeX 会检查路径列表以尝试找到我的包。
这些路径是什么?检查的顺序是什么?如果这是系统特定的,我如何才能找到我的系统的配置?
相关问题:
- 如何正确解析“\usepackage”中的相对路径?,其答案包含一些 LaTeX 显然会检查的路径。
- https://tex.stackexchange.com/a/1141/188892提及
> /usr/local/texlive/2009/texmf
> /usr/local/texlive/2009/texmf-dist
> /usr/local/texlive/texmf-local
>
> as well as other directories.
(这两个列表都不完整)。
答案1
您可以致电
kpsewhich -var-brace-value=TEXINPUTS
您将获得(重新格式化,在 后添加换行符:
):
.:
<userhome>/texlive/2019/texmf-config/tex/kpsewhich//:
<userhome>/texlive/2019/texmf-var/tex/kpsewhich//:
<userhome>/texmf/tex/kpsewhich//:
!!/usr/local/texlive/texmf-local/tex/kpsewhich//:
!!/usr/local/texlive/2019/texmf-config/tex/kpsewhich//:
!!/usr/local/texlive/2019/texmf-var/tex/kpsewhich//:
!!/usr/local/texlive/2019/texmf-dist/tex/kpsewhich//:
<userhome>/texlive/2019/texmf-config/tex/generic//:
<userhome>/texlive/2019/texmf-var/tex/generic//:
<userhome>/texmf/tex/generic//:
!!/usr/local/texlive/texmf-local/tex/generic//:
!!/usr/local/texlive/2019/texmf-config/tex/generic//:
!!/usr/local/texlive/2019/texmf-var/tex/generic//:
!!/usr/local/texlive/2019/texmf-dist/tex/generic//:
<userhome>/texlive/2019/texmf-config/tex/latex//:
<userhome>/texlive/2019/texmf-var/tex/latex//:
<userhome>/texmf/tex/latex//:
!!/usr/local/texlive/texmf-local/tex/latex//:
!!/usr/local/texlive/2019/texmf-config/tex/latex//:
!!/usr/local/texlive/2019/texmf-var/tex/latex//:
!!/usr/local/texlive/2019/texmf-dist/tex/latex//:
<userhome>/texlive/2019/texmf-config/tex///:
<userhome>/texlive/2019/texmf-var/tex///:
<userhome>/texmf/tex///:
!!/usr/local/texlive/texmf-local/tex///:
!!/usr/local/texlive/2019/texmf-config/tex///:
!!/usr/local/texlive/2019/texmf-var/tex///:
!!/usr/local/texlive/2019/texmf-dist/tex///
我只是屏蔽了我的主目录的路径;对于你的情况,你可以获取<userhome>/.texlive
(这取决于发行版)。尾随的//
或///
表示以递归方式搜索目录。前导!!
表示(递归)搜索是通过查看ls-R
由生成的文件来完成的maketexlsr
。否则,(递归)搜索是在运行时执行的。
按指定顺序搜索各种路径,匹配则停止搜索。
第一个.
代表调用 TeX 引擎时的工作目录。