Wie kann ich eine Zeichenfolge indizieren, die @ enthält, wenn \index selbst @ verwendet?

Wie kann ich eine Zeichenfolge indizieren, die @ enthält, wenn \index selbst @ verwendet?

Ich muss die Zeichenfolge indizieren$@

\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}

Wenn Sie die Zeile PROBLEM B auskommentieren, wird das Dokument kompiliert, $erscheint aber im Index anstelle von $@.

Wenn Sie die Zeile PROBLEM B drin lassen, wird es überhaupt nicht kompiliert

! Extra }, or forgotten \endgroup.
l.17     \subitem m {}}
                       , 1

Wie nehme ich @in einen Index auf?

Antwort1

Du kannst den ... benutzenZitatZeichen, das demtatsächlichCharakter:

\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}

Die Zeichen hängen vom MakeIndex-Stil ab. Weitere Informationen finden Sie beispielsweise im AbschnittEingabestil-Spezifikationenim MakeIndex-Handbuch.

verwandte Informationen