一个简单的解决方法是只使用texdoc
包名称,但几乎每个人都知道这并不适用于所有包。以下是一些示例:
- 我不知道有
usrguide
- 有一个
lshort.pdf
,但我不能texdoc lshort
tikz
在 TeX 社区中经常被提及,但我需要texdoc pgfmanual
在哪里可以获得texdoc
安装中所有可能的列表(以及描述,可能还有搜索功能)?是的,有 MiKTeX 软件包管理器和 MacTeX TeX Live 实用程序,但正如我所说,软件包名称或 PDF 文件名不一定是名称texdoc
。
答案1
首先,必须注意texdoc
TeX live 和 MikTeX 下的 是不一样的。在 MikTeX 下,用于搜索文档的真正命令是 ,mthelp
它具有不同的行为和不同的选项。以下注释是关于 TeX Live 版本的texdoc
。
texdoc <filename>
如果存在 .pdf,简单形式应该始终会找到它。此外,从版本 0.70(首次在 TL2009 更新中可用)开始,新形式texdoc <tlpkgname>
会查找 TeX Live 包中命名的所有文档(通常与 CTAN 名称相同,但并非总是如此),并texdoc <ltxpkgname>
查找 TeX Live 包中包含<ltxpkgname>.sty
或(<ltxpkgname>.cls
如果其中一个存在)的所有文档。显然,如果 texdoc 的参数既是 TeX Live 包名称,又是 LaTeX 包名称和 pdf 文件的名称,则会返回所有结果。顺便说一句,texdoc -l
如果您想查看所有结果而不仅仅是第一个结果,请记住使用 Caramdir 注释的内容。
这应该可以回答你的序言“一个简单的解决方法就是只对包名称进行 texdoc,但几乎每个人都知道这并不适用于所有包。”:现在它确实适用于所有包,至少对于最近的 TeX Live 来说是这样。
对于实际问题(安装中的所有文档文件的列表),这里有两个部分答案(部分答案在于它们可能列出本地安装中实际上不存在的文档):
答案2
我通常会在尝试之前先 Google 一下软件包名称texdoc
。这样更容易理解。
答案3
kpsewhich -var-value TEXDOCS
给出 texdoc 将搜索 pdf 的所有位置的列表。
您可以通过执行类似这样的操作来获取所有 pdf 的列表。
for i in $(find $(kpsewhich -var-value TEXDOCS|sed -e 's/[{}!]//g;s/,/ /g') -name '*.pdf' 2>/dev/null); do basename $i;done|sort|uniq
排序有点慢。或者您可以完全删除 for 循环,只使用 find 命令打印出每个文件的完整路径。
答案4
如果您的发行版是 MiKTeX,则可以使用mthelp <package>
。这将列出 的所有已安装的文档<package>
。例如,mthelp pgf
将列出 pgfmanual.pdf 作为 pgf 包附带的文档之一。
否则,您将需要浏览 texmf 目录的 doc 分支或搜索 CTAN 以获取信息。