texdoc 不在 $TEXMFHOME 处搜索

texdoc 不在 $TEXMFHOME 处搜索

我创建了一个小型私有包,我想texdoc找到它的手册。所以我将文档移到了<TEXMFHOME>/doc/twindex.pdf(即~/Library/texmf/doc/twindex.pdf在我的 Mac 上)。但如果我调用

texdoc twindex

它找不到包。如果我kpsewhich使用

kpsewhich -format "TeX system documentation" twindex.pdf

它找到了正确的文件(/Users/Tobi/Library/texmf/doc/twindex.pdf

我也以为那texdoc看起来不错$TEXMFHOME,我错了吗?我该如何配置它才能在那里搜索?

更新

属于 Andrey(和 Phil)的回答

我尝试使用类别,但不起作用。kpsewhich找到文件位于

/Users/Tobi/Library/texmf/doc/latex/twindex/twindex.pdf

我也查看了$TEXDOCS,它包含我的texmf文件夹。但如果我将其与进行比较$PATH,就会发现差异。在后者中,路径以:而不是分隔,,这可能是问题吗?

更新 2

TEXDOCS变量包含我的用户 texmf 文件夹(第 3 行):

Tobis-Mac:~ Tobi$ kpsewhich --var-value TEXDOCS
{/Users/Tobi/Library/texlive/2011/texmf-config,
/Users/Tobi/Library/texlive/2011/texmf-var,
/Users/Tobi/Library/texmf,
!!/usr/local/texlive/2011/texmf-config,
!!/usr/local/texlive/2011/texmf-var,
!!/usr/local/texlive/2011/texmf,
!!/usr/local/texlive/2011/../texmf-local,
!!/usr/local/texlive/2011/texmf-dist}/doc//

更新 3

为了进行调试,texdoc我尝试将texdoc --debug=texdocs twindextwindex.pdf 保存在$TEXMFHOME/doc/latex/twindex/twindex.pdf 另外$TEXMFHOME/tex/latex /tw/twindex/twindex.pdf$TEXMFHOME/twindex.pdf我的主路径是$TEXMFOME=/Users/Tobi/Library/texmf

Tobis-Mac:texmf Tobi$ texdoc --debug=texdocs twindex
texdoc debug-version: /usr/local/texlive/2011/texmf/scripts/texdoc/texdoclib.tlu version 0.83
texdoc debug-texdocs: texdocs[8] = /Users/Tobi/Library/texlive/2011/texmf-config/doc (index_mandatory=false, recursion_allowed=true)
texdoc debug-texdocs: texdocs[7] = /Users/Tobi/Library/texlive/2011/texmf-var/doc (index_mandatory=false, recursion_allowed=true)
texdoc debug-texdocs: texdocs[6] = /Users/Tobi/Library/texmf/doc (index_mandatory=false, recursion_allowed=true)
texdoc debug-texdocs: texdocs[6] using index: /Users/Tobi/Library/texmf (shift=doc/)
texdoc debug-texdocs: texdocs[5] = /usr/local/texlive/2011/texmf-config/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[4] = /usr/local/texlive/2011/texmf-var/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[3] = /usr/local/texlive/2011/texmf/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[3] using index: /usr/local/texlive/2011/texmf (shift=doc/)
texdoc debug-texdocs: texdocs[2] = /usr/local/texlive/2011/../texmf-local/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[1] = /usr/local/texlive/2011/texmf-dist/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[1] using index: /usr/local/texlive/2011/texmf-dist (shift=doc/)
Sorry, no documentation found for twindex.
If you are unsure about the name, try searching CTAN's TeX catalogue at
http://ctan.org/search.html#byDescription.

一切似乎都正常。据我所知,texdoc搜索/Users/Tobi/Library/texmf/doc递归,其中包括twindex路径……

我必须纠正自己,twindex is not found at$TEXMFHOME/twindex.pdf` 也是如此。

如果我调用列表ls -R中包含的所有三个地方。texmftwindex.pdf

我的系统有什么问题?

答案1

texdoc不会kpathsea直接调用来查找文档文件。相反,它使用$TEXDOCS变量,借助它来扩展它kpathsea,并自行浏览目录中的文档文件。这基本上与直接调用

kpsewhich -path=$TEXDOCS twindex.pdf

然而,有一个重要的区别:如果kpathsea遇到不需要数据库的目录ls-R(即路径规范中没有前缀的目录!!),它会搜索整个文件系统,不管它是否有数据库ls-Rtexdoc但是,如果存在则依赖于该数据库,因此如果文件不在数据库中,即使它在文件系统中也无法找到它。

所以我怀疑你的ls-R数据库已经$TEXMFHOME过时了。尝试使用以下方法更新它

mktexlsr /用户/Tobi/图书馆/texmf

(您必须手动指定路径,因为$TEXMFHOME中没有$TEXMFDBS)。另一种可能性是删除文件

/用户/Tobi/图书馆/texmf/ls-R

总之,由于数据库文件不是必需的kpathseatexdoc所以texdoc将直接访问文件系统。

答案2

按照TDS 规格,路径应类似于和tex目录的路径fonts,并且

texmf/doc/<类别>/...

在哪里

类别标识位于其下方的文档的一般主题;例如,TeX 格式名称(latex)、程序名称(bibtex, tex)、语言(french, german)、文件格式(info, man)或其他系统组件(web, fonts)。

因此,假设你的包是为 LaTeX 设计的,请将其文档放在目录中

texmf/doc/latex/<你的包>

答案3

texdoc 手册中提供了 texdoc 查找位置的完整详细信息texdoc.pdf(例如texdoc texdoc在您的终端中)。粗略地说,它在给出的树中$TEXDOCS查找

kpsewhich --var TEXDOCS

就我的情况而言,这包括~/Library/texmf但不仅限于~/Library/texmf/doc——它还包括很多其他地方,所以最好查看一下详细信息

答案4

texdoc您可以通过以下方式调用来调试所使用的路径

texdoc --debug=texdocs twindex

使用我拥有的文档作为~/Library/texmf/doc/latex/xymtex/doc101/xymtex.pdf调用

texdoc --debug=texdocs xymtex

给出

texdoc debug-version: /usr/local/texlive/2011/texmf/scripts/texdoc/texdoclib.tlu version 0.83
texdoc debug-texdocs: texdocs[8] = ~/Library/texlive/2011/texmf-config/doc (index_mandatory=false, recursion_allowed=true)
texdoc debug-texdocs: texdocs[7] = ~/Library/texlive/2011/texmf-var/doc (index_mandatory=false, recursion_allowed=true)
texdoc debug-texdocs: texdocs[6] = ~/Library/texmf/doc (index_mandatory=false, recursion_allowed=true)
texdoc debug-texdocs: texdocs[6] using filesystem search
texdoc debug-texdocs: texdocs[5] = /usr/local/texlive/2011/texmf-config/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[4] = /usr/local/texlive/2011/texmf-var/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[3] = /usr/local/texlive/2011/texmf/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[3] using index: /usr/local/texlive/2011/texmf (shift=doc/)
texdoc debug-texdocs: texdocs[2] = /usr/local/texlive/2011/../texmf-local/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[2] using index: /usr/local/texlive/2011/../texmf-local (shift=doc/)
texdoc debug-texdocs: texdocs[1] = /usr/local/texlive/2011/texmf-dist/doc (index_mandatory=true, recursion_allowed=true)
texdoc debug-texdocs: texdocs[1] using index: /usr/local/texlive/2011/texmf-dist (shift=doc/)

~注意:我在输出中掩盖了我家的真实根。

相关内容