我正在尝试完成以下工作
\documentclass{book}
\usepackage{makeidx}
\makeindex
\begin{document}
\chapter{One}
\section{One}
Let us try to index the characters '()'. \index{()@()} \\
Let us try to index the character '('. \index{(@(} \\
Let us try to index the character ')'. \index{)@)} \\
Let us try to index the characters '{}'. \index{\{\}@\{\}}
Let us try to index the character '{'. \index{\{@\{}
Let us try to index the character '}'. \index{\}@\}}
\backmatter
\printindex
\end{document}
但似乎无法逃离这些角色{
或}
进入 makeidx。
生成的索引文件如下所示
\indexentry{()@()}{1}
\indexentry{(@(}{1}
\indexentry{)@)}{1}
\indexentry{\{\}@\{\}}{1}
\indexentry{\{@\{} Let us try to index the character '}'. \index{\}@\}{1}
我所期望的是 -
\indexentry{()@()}{1}
\indexentry{(@(}{1}
\indexentry{)@)}{1}
\indexentry{\{\}@\{\}}{1}
\indexentry{\{@\{}{1}
\indexentry{\}@\}}{1}
我怎样才能摆脱不匹配}
和{
索引条目。
我使用无与伦比的}
和,因为我有一个传统的 True Type Devanagari 字体,其中有这些字符的特殊字形。{
答案1
这MakeIndex 的文档,第 6 页,说:
请记住,命令的参数必须始终具有匹配的括号,其中或命令
\index
中的括号才有效。\{
\}
因此,在您的例子中,匹配的括号\{\}
已很好地编入索引,但最后两行没有匹配的括号,这是造成问题的原因。您可以轻松地用宏包装它们:
\documentclass{book}
\usepackage{makeidx}
\makeindex
\begin{document}
\chapter{One}
\section{One}
\def\lcurly{\{}
\def\rcurly{\}}
Let us try to index the characters '()'. \index{()@()} \\
Let us try to index the character '('. \index{(@(} \\
Let us try to index the character ')'. \index{)@)} \\
Let us try to index the characters '\{\}'. \index{\{\}@\{\}} \\
Let us try to index the character '\{'. \index{\lcurly@\lcurly} \\
Let us try to index the character '\}'. \index{\rcurly@\rcurly}
\backmatter
\printindex
\end{document}
此外,文本中引号中的括号也应该被转义。