是否有一种快速(命令行)的方法来找出命令需要使用哪个样式文件(无需使用互联网连接)?

是否有一种快速(命令行)的方法来找出命令需要使用哪个样式文件(无需使用互联网连接)?

到目前为止,每当我需要知道某个命令(或者我对某个特定任务的模糊概念)的具体定义位置时,我都会使用搜索引擎来查找。

但是,如果我了解特定的包,我们可以使用texdoc。例如,如果我们需要了解有关graphicx包的更多信息,我们使用,

texdoc graphicx

然后那个特定的文档就会弹出来。

现在,假设我知道命令\AtBeginEnvironment,但不确定要使用哪个样式文件。除了使用网络搜索引擎之外,还有其他方法可以找到确实etoolbox需要使用的样式文件吗?

如果我使用,

texdoc AtBeginEnvironment

我明白了,

Sorry, no documentation found for AtBeginEnvironment.
If you are unsure about the name, try searching CTAN's TeX catalogue at
http://ctan.org/search.html#byDescription.

更进一步说,假设我对要做的事情有一个模糊的概念(例如在环境启动时输入一些命令),但不知道如何实现这一点,有没有办法指出我正确的软件包?同样,不使用搜索引擎?

我知道我们都已经习惯了随手可得的互联网,并视其为理所当然。但是当互联网接入受限或完全不可用时,事情就会变得有点困难。

答案1

您可以tlmgr使用文件名、详细描述等搜索有关已安装软件包的信息。这不是搜索命令。它更像 CTAN 的搜索,但功能较弱。您可以使用正则表达式等。

您并不总是能获得完整的结果。例如,搜索patch不会返回etoolbox

$ tlmgr search patch
HA-prosper - Patches and improvements for prosper.
issuulinks - Produce external links instead of internal ones.
jknapltx - Miscellaneous packages by Joerg Knappen.
ltabptch - Bug fix for longtable.
lualatex-math - Fixes for mathematics-related LuaLaTeX issues
marginfix - Patch \marginpar to avoid overfull margins.
memoir - Typeset fiction, non-fiction and mathematical books.
oberdiek - A bundle of packages submitted by Heiko Oberdiek.
ogham - Fonts for typesetting Ogham script.
patch - Patch loaded packages, etc..
patchcmd - Change the definition of an existing command.
pittetd - Electronic Theses and Dissertations at Pitt.
realscripts - Access OpenType subscript and superscript glyphs.
regexpatch - High level patching of commands.
shapepar - A macro to typeset paragraphs in specific shapes.
sphack - Patch LaTeX kernel spacing macros.
tamefloats - Experimentally use \holdinginserts with LaTeX floats.
xltxtra - "Extras" for LaTeX users of XeTeX.
xpatch - Extending etoolbox patching commands.

尽管最终结果至少提到了etoolbox

类似地,您可以使用texdoc搜索单词,但仅限于文件路径名。因此,此选项比 提供的搜索功能(tlmgr还搜索包描述)更受限制。

$ texdoc -l patch
 1 /usr/local/texlive/2015/texmf-dist/doc/latex/patchcmd/patchcmd.pdf
   = Package documentation
 2 /usr/local/texlive/2015/texmf-dist/doc/latex/regexpatch/regexpatch.pdf
   = Package documentation
 3 /usr/local/texlive/2015/texmf-dist/doc/latex/xpatch/xpatch.pdf
   = Package documentation
 4 /usr/local/texlive/2015/texmf-dist/doc/latex/regexpatch/README
   = Readme
 5 /usr/local/texlive/2015/texmf-dist/doc/latex/xpatch/README
   = Readme
 6 /usr/local/texlive/2015/texmf-dist/doc/latex/oberdiek/hopatch.pdf
 7 /usr/local/texlive/2015/texmf-dist/doc/latex/base/patches.txt
 8 /usr/local/texlive/2015/texmf-dist/doc/latex/flabels/makedoc-patched
Please enter the number of the file to view, anything else to skip: 

如果您真的很绝望,您可以搜索所有软件包文件,然后在这些文件中搜索某个模式。例如,在 Unix 系统上,find $(kpsewhich -var TEXMFMAIN)/tex/latex -path '*.sty'然后grep '\\AtBeginEnvironment'对结果运行类似的操作。但您需要相当绝望(但不要着急!)才能这样做。另一方面,如果您知道它可能在哪个软件包中,只需 grep 六个软件包文件就非常快了。

相关内容