如何在命令行中搜索有关 Linux 上 LaTeX 中的某些函数的内容?
已尝试texdoc
,但是texdoc cite
,例如,不起作用。
我想要一个在终端中搜索 LaTeX 函数的工具,就像pydoc if
搜索 python 的 if 语句一样。
答案1
(La)TeX 的构建方式与 Python 不同,Python 可以在代码本身中存储和构建文档。您需要找出哪个包正在定义宏(又称“命令”),然后使用 加载包手册texdoc <package name>
。除了 Google & Co. 所做的之外,没有从宏到其包的交叉引用。TeX 也不了解命名空间等。虽然它是图灵完备的,但不应将其与软件编程语言进行比较,尤其是那些年轻 30 多年的语言。
您正在寻找的最接近的东西是 Perl 脚本texdef
(也可以安装为latexdef
),它通常显示宏的定义,但它还有一个--find
/-f
选项来显示给定宏的首次定义位置。 问题是你需要自己加载它应该搜索的包。 它在内部使用 LaTeX,无法自动将所有已安装的包加载到一个文档中。 因此,例如latexdef -f -p hyperref href
告诉您 的定义\href
并且它首先由 定义url.sty
(由 加载hyperref
)。 这可用于查找列表中的哪些包定义了宏。 不幸的是,这很麻烦,网络搜索可能更容易,更有成效。
答案2
一般来说,你不能。没有这样的文件包含全部TeX 中的宏。
不过有些书和文档是可以搜索宏的,而且针对不同层次的书籍和文档也很多。
对于用户级 LaTeX 命令和环境,你需要一本好书,例如LaTeX 指南。您可以在索引中找到命令。为了快速参考,您可以查看
latex2e-help-texinfo
和tex-refs
一些其他电子文档。尝试texdoc latex2e-help-texinfo
这些不是全面的文件,但确实有用。
\cite
当然,您可以在这些书籍/文档中找到命令。对于 LaTeX 包中的任何宏,大多数时候你必须阅读包文档 --- 它是获取信息的唯一来源。如果你想知道它在哪个包中,据我所知,Google 是最好的方法。
比如你在Google里搜索关键字“LaTeX \citep”,就会知道这
\citep
是包中提供的命令natbib
,然后你可以阅读包的文档natbib
来查看详细信息。对于某些特殊用途,可能会有特殊的文档。几乎所有的 LaTeX 符号都可以在综合 LaTeX 符号列表
texdoc symbols
例如( )。其他文件包括:epslatex
(TeX Live 中仅有法语版本)、、mathmode
(tamethebeast
用于参考书目)等等。你可以找到全部LaTeX2e 内核中的宏和标准类位于 LaTeX2e 的文档化源代码中:
source2e
和classes
文档。但是您在这些文档中找不到任何在包中定义的宏。请注意,文档化源代码更适合包编写者。在阅读它们之前,请尝试其他用户级文档。对于 Plain TeX 和 TeX 基元,你可以阅读 Knuth 的电子书。 还缺乏耐心的 TeX(
texdoc impatient
) 和TeX 按主题分类(texdoc texbytopic
)很方便。
答案3
我想没有办法搜索全部单个命令的软件包文档。使用 ,texdoc
您只能访问完整的软件包文档,例如texdoc biblatex
。
如果我需要有关特殊命令的信息但不知道它在哪个包中,我会尝试用谷歌搜索它;-)
如果你对 latex 实现有更多了解,可以看看source2e
(或者texdoc source2e
)