
我需要索引字串$@
\documentclass[a4paper,10pt,openany]{scrbook}
\usepackage{imakeidx}
\makeindex
\newcommand{\indexthing}[1]%
{%
\index{#1@\texttt{#1} (thing)}%
\index{things!\texttt{#1}}%
}
\begin{document}
\chapter{ch1}
foo\index{foo}
bar\index{bar}
\index{\$\@} % PROBLEM A
\indexthing{\$\@} % PROBLEM B
\chapter{ch2}
baz\index{baz}
\printindex
\end{document}
如果註解掉 PROBLEM B 行,文檔會編譯,但$
會出現在索引中,而不是$@
.
如果你留下 PROBLEM B 行,它根本不會編譯
! Extra }, or forgotten \endgroup.
l.17 \subitem m {}}
, 1
如何包含@
在索引中?
答案1
您可以使用引用前綴字符實際的特點:
\documentclass[a4paper,10pt,openany]{scrbook}
\usepackage{imakeidx}
\makeindex
\newcommand{\indexthing}[1]%
{%
\index{#1@\texttt{#1} (thing)}%
\index{things!\texttt{#1}}%
}
\begin{document}
\chapter{ch1}
foo\index{foo}
bar\index{bar}
\index{\$"@} % PROBLEM A
\indexthing{\$"@} % PROBLEM B
\chapter{ch2}
baz\index{baz}
\printindex
\end{document}
這些字元取決於 MakeIndex 樣式。有關更多信息,請參閱,例如,部分輸入樣式說明符在 MakeIndex 手冊中。