我创建了一个小型私有包,我想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 twindex
twindex.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
中包含的所有三个地方。texmf
twindex.pdf
我的系统有什么问题?
答案1
texdoc
不会kpathsea
直接调用来查找文档文件。相反,它使用$TEXDOCS
变量,借助它来扩展它kpathsea
,并自行浏览目录中的文档文件。这基本上与直接调用
kpsewhich -path=$TEXDOCS twindex.pdf
然而,有一个重要的区别:如果kpathsea
遇到不需要数据库的目录ls-R
(即路径规范中没有前缀的目录!!
),它会搜索整个文件系统,不管它是否有数据库ls-R
。texdoc
但是,如果存在则依赖于该数据库,因此如果文件不在数据库中,即使它在文件系统中也无法找到它。
所以我怀疑你的ls-R
数据库已经$TEXMFHOME
过时了。尝试使用以下方法更新它
mktexlsr /用户/Tobi/图书馆/texmf
(您必须手动指定路径,因为$TEXMFHOME
中没有$TEXMFDBS
)。另一种可能性是删除文件
/用户/Tobi/图书馆/texmf/ls-R
总之,由于数据库文件不是必需的kpathsea
,texdoc
所以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/)
~
注意:我在输出中掩盖了我家的真实根。