Angenommen, ich habe in der Mitte meines Dokuments einen Absatz über Eulen: Here is a new paragraph about owls. Owls are extraordinary.
Ich möchte diesen Absatz mit imakeidx indizieren, also schreibe ich:
\index{owls}Here is a new paragraph about owls. Owls are extraordinary.
Problematisch ist jedoch, dass, wenn dieser Absatz am Anfang einer neuen Seite k landet, der Eintrag für Eulen im Index auf die vorherige Seite verweist; daneben steht die Seite „k-1“ statt eines „k“ (siehe beispielsweise das minimale funktionierende Beispiel unten).
\index
Die einfachste Lösung besteht darin, den Befehl direkt in den Absatz zu verschieben :Here\index{owls} is a new paragraph about owls. Owls are extraordinary.
Für mich ist das allerdings nicht ideal. Ich habe ein langes Dokument und viele der Absätze haben viele zugehörige \index
Befehle. Das Verschieben dieser \index
Befehle in die entsprechenden Absätze macht die Absätze für die Bearbeitung weniger lesbar.
Während oben der einfachste Fall von beschrieben wird \index
, gibt es ein ähnliches Problem bei der Angabe eines Seitenbereichs. Ich möchte einfach und
\index{owls|(}Here is a new paragraph about owls. Owls are extraordinary.\index{owls|)}
statt schreiben Here\index{owls|(} is a new paragraph about owls. Owls are extraordinary.\index{owls|)}
.
Dies führt mich zu meiner Frage. Wie definiere ich einen neuen Befehl, \indexn
der in den folgenden beiden Fällen korrekte Seitenzahlen im Index ausgibt:
\indexn{owls}Here is a new paragraph about owls. Owls are extraordinary.
und,
\indexn{owls|(}Here is a new paragraph about owls. Owls are extraordinary.\indexn{owls|)}
?
Unten finden Sie ein minimales funktionierendes Beispiel des Problems.
\documentclass{book}
\usepackage{imakeidx}
\makeindex
\begin{document}
% This code block just generates 552 copies of the word "lorem".
\newcount\zz
\loop
lorem
\advance\zz1
\ifnum\zz<552
\repeat
\index{owls}Here is a paragraph about owls. Owls are extraordinary.
%\index{owls|(}Here is a new paragraph about owls. Owls are extraordinary.\index{owls|)}
\printindex
\end{document}
Antwort1
\mbox{}\index{owls}
oder \leavevmode\index{owls}
würde funktionieren