我希望这个问题不是重复的,但我在 tex.stackexchange 上找不到任何东西。
我想要的是所有已在 LaTeX 中定义的宏所在的位置。例如,我知道命令\hrulefill
定义为
\def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@}
(我得到了这张表格这个问题),但是在哪里可以找到已经为所有 LaTeX 类别定义的所有可能的命令(例如分段命令\chapter
,\part
等等)?
答案1
CTAN 上的“source2e - LATEX2ε 内核文档,将整个系统作为一个文档”可能会让您感兴趣。
该文件为 .pdf 文件,其名称为源2e.pdf。
最新版本源2e.pdf,指的是最新版本的 LaTeX2e 内核,可以从综合 TeX 档案网络 (CTAN) 下载:
https://ctan.org/pkg/source2e
在撰写此答案时(2018 年 5 月 21 日),与最新版本的 LaTeX2e 内核相关的该文档版本的标题是:
LaTeX2e 来源约翰内斯·布拉姆斯、大卫·卡莱尔、艾伦·杰弗里、莱斯利·兰波特、弗兰克·米特尔巴赫、克里斯·罗利、莱纳·绍普夫
2018-04-01 补丁级别 5
该文档不包含有关 LaTeX2e 类和包代码的信息,但包含有关如何实现 LaTex2e 格式/LaTeX2e 内核本身的信息。
在该文档中,您可以找到在 LaTeX2e 内核中如何定义诸如\documentclass
或\usepackage
或\begin
或之类的命令。\end
例如,在关于文件 b: ltplain.dtx 日期: 2017/04/10 版本 v2.3c,在该 .pdf 文件的第 28 页,您可以找到 LaTeX2e 内核定义\hrulefill
:
\hrulefill LaTeX change: \kern\z@ added to end of \hrulefill and \dotfill to make them
\dotfill work in ‘tabular’ and ‘array’ environments. (Change made 24 July 1987). LaTeX
change: \leavevmode added at beginning of \dotfill and \hrulefill so that
they work as expected in vertical mode.
435 \def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@}
The box in \dotfill originally contained (in plain.tex):
\mkern 1.5mu .\mkern 1.5mu;
the width of .44em differs from this by .04pt which is probably an acceptable
difference within leaders.
436 \def\dotfill{%
437 \leavevmode
438 \cleaders \hb@xt@ .44em{\hss.\hss}\hfill
439 \kern\z@}
答案2
这个问题可以简化为 RTFM(阅读精细手册)或 HTFTFM(如何找到精细手册)。你肯定找不到一个包含所有命令、宏、包和类的文档或网页,因为整个 TeX 世界每天都在变化(什么是标准命令?)。希望未来这种增长能持续下去。请注意,某些包或类仅供少数人使用,因此这些命令无法通过此类所有命令的集合来覆盖。
命令类通常在相应的手册中定义和记录,例如https://ctan.org/pkg/koma-script或者https://ctan.org/pkg/memoir. 同样适用于包裹,一些类或包可能具有合理的文档https://ctan.org并出版了一本更全面的手册作为书籍。
某些类或包的文档可能很少,您可以在您选择的搜索引擎上搜索“\foocommand latex”或在此站点或其他 TeX 相关页面上搜索“\foocommand”,这样可能会很幸运。
您可以在此处找到 TeX 基元的列表:https://www.tug.org/utilities/plain/cseq.html. 另一个有用的来源是https://ctan.org/pkg/latex2e-help-texinfo. 一旦你学会了如何使用https://ctan.org/pkg/comprehensive你肯定会发现它很有用(我知道有人只是简单地看了一下它,他不知道如何使用它,而且他认为它没用)。