有人能像我五岁一样解释一下吗:制作这样的索引条目的正确语法是什么?
hierarchy: see `polymorphism`
overloading,
operator: see `operator overloading`
我正在使用包hyperref
和imakeidx
。
什么确切地是什么“see”语法,我该如何调用它?我对以下两者的区别感到困惑:
\index{x|see{y}}
\index{x|see {y}}
\index{x|\see{y}}
\index{x|\see {y}}
\indexentry{x|see{y}}
我特别困惑,因为有些答案(比如这个)提到“\see
宏”,这符合我的直觉,即 TeX 中的特殊单词应该用反斜杠拼写……但后来我看到人们写了实际的索引条目没有反斜杠,但不知何故它仍然有效!
推论:上述例子中的格式是什么{y}
?我可以(并且应该)在“see”中使用诸如{e@$e$}
或 之类的词吗?{constant!Euler's}
推论:makeindex
除了“看”之外,还能识别出其他特殊动词吗?
答案1
首先是简单的部分:\indexentry
永远不应该在文档中使用;它通常没有定义,仅用于写入将转换为LaTeX 可以输入的文件的文件.idx
。makeindex
.ind
语法是
\index{abc|see{x}}
空格无关紧要,因此也是可以接受的。您不能使用反斜杠,只需在适当的位置添加它\index{abc|see {x}}
即可。makeindex
的定义\see
是
\newcommand*\see[2]{\emph{\seename} #1}
但可以在文档序言中进行更改以满足您的需要。
以下文件
\documentclass{article}
\usepackage{imakeidx}
\makeindex
\begin{document}
a\index{x|see{y}}
\printindex
\end{document}
将生成一个.idx
包含以下内容的文件
\indexentry{x|查看{y}}{1}
将通过makeindex
生成一个.ind
文件来处理
\begin{theindex}
\item x, \see{y}{1}
\end{theindex}
您会看到第二个参数\see
是页码,通常人们想要省略它,但通过改变定义\see
可以获得其他效果。
该makeidx
包(以及 so imakeidx
)也定义了\seealso
,因此您可以使用
\index{z|seealso{u}}
也\see
可以这样说。您可以以相同的方式使用任何两个参数命令。
之前的部分|
可以是任何合法的条目\index
,因此
\index{a@bcd|see{x}}
\index{a!b|see{x}}
都很好,符合 的规则,预期结果也一样makeindex
。唯一的区别是“看出现“x”而不是页码。