Das Problem ist, dass bei obiger Lösung \thepage nicht expandiert in die Index-Datei geschrieben wird. Daher funktioniert das nicht. Jetzt könnte man natürlich auf die Idee kommen, das \thepage im Argument von \index erst zu expandieren, bevor man es an \index übergibt. Das wird aber wegen der asynchronen Ausgabe nicht funktionieren. Stattdessen müsste man entweder \@wrindex so umdefinieren, dass \theindex nicht mehr (nur) als letztes Argument von \indexentry geschrieben wird, sondern mit dem gewünschten Präfix "Seite" und gefolgt von "@" dem ersten Argument vorangestellt wird.
Man könnte auch auf die Idee kommen, definiert sich einen Makeindex-Stil (vgl. \jobname.ist im Beispiel), der aus dem normalen
\indexentry{Gretchen weinte -- Goethe hatte hier ziemliches Magendr\IeC {\"u}cken, deshalb ist sein Faust so grimmig zum Getchen}{1}
wie man es nach
\index{Seite~\thepage!Gretchen weinte -- Goethe hatte hier ziemliches
Magendrücken, deshalb ist sein Faust so grimmig zum Getchen|ignorepages}
im Text in der idx-Datei erhalten würde, dann etwas wie:
\myindexitem{Gretchen weinte -- Goethe hatte hier ziemliches Magendr\IeC {\"u}cken, deshalb ist sein Faust so grimmig zum Getchen}{1}
in der ind-Datei erzeugt. Dann kann man \myindexitem leicht so definieren, dass es zu etwas wie
\item Seite 1
\subitem Gretchen weinte -- Goethe hatte hier ziemliches Magendr\IeC {\"u}cken, deshalb ist sein Faust so grimmig zum Getchen
expandiert.
Allerdings ergibt sich hier ein größeres Problem: Makeindex sortiert nicht nach Seitenzahlen, sondern nach Eintragstext. Deshalb würde man mit diesem Ansatz nicht das gewünschte Ergebnis erhalten.
Da das ganze IMHO ohnehin nicht sortiert werden muss, sondern die Einträge einfach in der Reihenfolge ausgegeben werden können, wie sie gespeichert werden, dürfte der Weg über MakeIndex (und damit über \index) aber eher nicht erforderlich sein. Stattdessen würde ich eher eine neue Hilfsdatei schreiben. Das könnte man vermutlich recht einfach gestalten. Teilweise kann dabei vermutlich sogar
tocbasic behilflich sein. Es geht aber auch ohne Zusatzpaket. Leider fehlt noch immer ein
Minimalbeispiel und ich bin langsam aber sicher zu faul, alles selbst auf gut Glück einzutippen. Daher auch das nur grob skizziert und ohne Verwendung der
tocbasic-Möglichkeit das über echte Verzeichniseinträge und einen eigenen Verzeichnisstil zu realisieren:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{tocbasic}
\makeatletter
\addtotoclist[Notes]{notes}
\newcommand*{\ext@notes}{notes}
\newcommand*{\listofnotesname}{Glossar}
\newcommand*{\MakeNote}[2]{%
\addtocontents{\ext@notes}{\string\DoNote{\thepage}\detokenize{{#1}{#2}}}%
}
\newcommand*{\DoNote}[3]{%
\def\reserved@a{#1}\ifx\reserved@a\@LastNotePage\else
\addvspace{\baselineskip}%
Seite #1:\par\nobreak
\let\@LastNotePage\reserved@a
\fi
\@hangfrom{\hspace*{2em}}\textbf{#2} -- #3\par
\addvspace{.5\baselineskip}%
}
\newcommand*{\printNotes}{\listoftoc{notes}}
\BeforeStartingTOC[notes]{\let\@LastNotePage\@empty}
\makeatother
\begin{document}
\section{Test}
Goethe\MakeNote{Gretchen weinte}{Goethe hatte hier ziemliches
Magendrücken, deshalb ist sein Faust so grimmig zum Getchen}
\newpage
Gretchen\MakeNote{Gretchen weinte}{Gretchen ist eine starke
Frau, dass Goethe sie hier weinen lässt \dots}
\printNotes
\end{document}
Der Umweg über \addtocontents ist mehr oder weniger zwingend, wenn es möglich sein soll, das Glossar nicht auf einer neuen Seite zu beginnen bzw. noch nach dem Glossar Eintrage erstellt werden können sollen.
Kleiner Nebeneffekt des Ganzen: Theoretisch kann man die Hilfsdatei (Endung notes) natürlich auch in einem eigenen Dokument laden, wie man das von Lektüreschlüsseln kennt.
Das Problem ist, dass bei obiger Lösung [tt]\thepage[/tt] nicht expandiert in die Index-Datei geschrieben wird. Daher funktioniert das nicht. Jetzt könnte man natürlich auf die Idee kommen, das [tt]\thepage[/tt] im Argument von [tt]\index[/tt] erst zu expandieren, bevor man es an [tt]\index[/tt] übergibt. Das wird aber wegen der asynchronen Ausgabe nicht funktionieren. Stattdessen müsste man entweder [tt]\@wrindex[/tt] so umdefinieren, dass [tt]\theindex[/tt] nicht mehr (nur) als letztes Argument von [tt]\indexentry[/tt] geschrieben wird, sondern mit dem gewünschten Präfix "Seite" und gefolgt von "@" dem ersten Argument vorangestellt wird.
Man könnte auch auf die Idee kommen, definiert sich einen Makeindex-Stil (vgl. [tt]\jobname.ist[/tt] im Beispiel), der aus dem normalen [code]\indexentry{Gretchen weinte -- Goethe hatte hier ziemliches Magendr\IeC {\"u}cken, deshalb ist sein Faust so grimmig zum Getchen}{1}[/code]
wie man es nach
[code]\index{Seite~\thepage!Gretchen weinte -- Goethe hatte hier ziemliches
Magendrücken, deshalb ist sein Faust so grimmig zum Getchen|ignorepages}[/code]
im Text in der [tt]idx[/tt]-Datei erhalten würde, dann etwas wie: [code]\myindexitem{Gretchen weinte -- Goethe hatte hier ziemliches Magendr\IeC {\"u}cken, deshalb ist sein Faust so grimmig zum Getchen}{1}[/code] in der [tt]ind[/tt]-Datei erzeugt. Dann kann man [tt]\myindexitem[/tt] leicht so definieren, dass es zu etwas wie [code]\item Seite 1
\subitem Gretchen weinte -- Goethe hatte hier ziemliches Magendr\IeC {\"u}cken, deshalb ist sein Faust so grimmig zum Getchen[/code] expandiert.
Allerdings ergibt sich hier ein größeres Problem: Makeindex sortiert nicht nach Seitenzahlen, sondern nach Eintragstext. Deshalb würde man mit diesem Ansatz nicht das gewünschte Ergebnis erhalten.
Da das ganze IMHO ohnehin nicht sortiert werden muss, sondern die Einträge einfach in der Reihenfolge ausgegeben werden können, wie sie gespeichert werden, dürfte der Weg über MakeIndex (und damit über [tt]\index[/tt]) aber eher nicht erforderlich sein. Stattdessen würde ich eher eine neue Hilfsdatei schreiben. Das könnte man vermutlich recht einfach gestalten. Teilweise kann dabei vermutlich sogar [p]tocbasic[/p] behilflich sein. Es geht aber auch ohne Zusatzpaket. Leider fehlt noch immer ein [m][/m] und ich bin langsam aber sicher zu faul, alles selbst auf gut Glück einzutippen. Daher auch das nur grob skizziert und ohne Verwendung der [p]tocbasic[/p]-Möglichkeit das über echte Verzeichniseinträge und einen eigenen Verzeichnisstil zu realisieren: [code]\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{tocbasic}
\makeatletter
\addtotoclist[Notes]{notes}
\newcommand*{\ext@notes}{notes}
\newcommand*{\listofnotesname}{Glossar}
\newcommand*{\MakeNote}[2]{%
\addtocontents{\ext@notes}{\string\DoNote{\thepage}\detokenize{{#1}{#2}}}%
}
\newcommand*{\DoNote}[3]{%
\def\reserved@a{#1}\ifx\reserved@a\@LastNotePage\else
\addvspace{\baselineskip}%
Seite #1:\par\nobreak
\let\@LastNotePage\reserved@a
\fi
\@hangfrom{\hspace*{2em}}\textbf{#2} -- #3\par
\addvspace{.5\baselineskip}%
}
\newcommand*{\printNotes}{\listoftoc{notes}}
\BeforeStartingTOC[notes]{\let\@LastNotePage\@empty}
\makeatother
\begin{document}
\section{Test}
Goethe\MakeNote{Gretchen weinte}{Goethe hatte hier ziemliches
Magendrücken, deshalb ist sein Faust so grimmig zum Getchen}
\newpage
Gretchen\MakeNote{Gretchen weinte}{Gretchen ist eine starke
Frau, dass Goethe sie hier weinen lässt \dots}
\printNotes
\end{document}[/code]
Der Umweg über [tt]\addtocontents[/tt] ist mehr oder weniger zwingend, wenn es möglich sein soll, das Glossar nicht auf einer neuen Seite zu beginnen bzw. noch nach dem Glossar Eintrage erstellt werden können sollen.
Kleiner Nebeneffekt des Ganzen: Theoretisch kann man die Hilfsdatei (Endung notes) natürlich auch in einem eigenen Dokument laden, wie man das von Lektüreschlüsseln kennt.