我正在尝试阅读 C++ 标准中的最新变化这一页。在最顶部附近,您会看到以下命令行(我只是猜测这个实体的名称)。这是什么意思?
\indextext{linkage specification|see{specification, linkage}}
附言:您可能已经注意到,我对 Latex 一无所知,但至少我可以识别出链接中的页面显示了Section 7 Declarations
C++ 标准中的段落。
答案1
该宏\indextext
不是标准宏;它在macros.tex
您链接到的源中定义为:
\newcommand{\indextext}[1]{\index[generalindex]{#1}}
使得
\indextext{linkage specification|see{specification, linkage}}
被翻译成
\index[generalindex]{linkage specification|see{specification, linkage}}
使用标准\index
宏。
因此:条目使用 进入generalindex
(文档保留更多内容)\index
。 的参数\index
在 LaTeX 看到之前由特殊工具处理。正如您所猜测的
\index{linkage specification|see{specification, linkage}}
为 创建一个索引条目,linkage specification
该条目引用另外两个索引条目:specification
和linkage
。
答案2
查看您提到的语句之前的几行很重要(来自declarations.tex
):
%!TEX root = std.tex
\rSec0[dcl.dcl]{Declarations}%
\indextext{declaration|(}
%gram: \rSec1[gram.dcl]{Declarations}
%gram:
\indextext{linkage specification|see{specification, linkage}}
第一行,%!TEX root = std.tex
包含一个“元指令”:它是不是由 TeX 处理——因为它以注释字符开头%
——但它是由前端软件(通常称为“编辑器”)处理的。元指令通知编辑器,如果用户在文件declarations.tex
可见时单击“编译”按钮,则要编译的文档不是declarations.tex
,而是std.tex
。该文件std.tex
(可从与相同的网站获得declarations.tex
)是一个“驱动程序”文档,它提供整体文档结构并加载文件(通过\input
语句),其中包含进一步的设置信息或文档的实际章节和部分。在中std.tex
,可以找到以下指令:
\documentclass[ebook,10pt,oneside,openany,final]{memoir}
...
\input{macros}
...
\begin{document}
...
\include{declarations}
...
\end{document}
其中...
表示额外的、省略的指令。该文件macros.tex
包含指令
\newcommand{\indextext}[1]{\index[generalindex]{#1}}
因此,指令
\indextext{linkage specification|see{specification, linkage}}
扩展为
\index[generalindex]{linkage specification|see{specification, linkage}}
索引创建(以及参考书目创建)由 LaTeX 异步处理:在第一次 LaTeX 传递中,每个\index
指令都会导致将与索引相关的元信息写入 .aux 文件(并且,根据文档类别,还会写入其他文件);但是,此时不会创建索引本身。接下来,调用诸如 之类的程序makeindex
根据存储在辅助文件中的信息生成索引。索引(或可能是索引)中的条目通常按字母顺序排序,这是索引创建由 LaTeX 以外的程序处理的主要原因之一。(TeX/LaTeX 具有许多内置功能,但快速排序不在其中。)在以后的 LaTeX 运行中,LaTeX 会makeindex
加载创建的索引文件,通常位于文档的最末尾。
答案3
在里面macros.tex
文件(第 82 行)你可以找到 的定义\indextext
。
\newcommand{\indextext}[1]{\index[generalindex]{#1}}
它包含一个参数并使用该\index
命令。