ich hänge an einem Problem fest, wo ich nicht recht voran komme. Für die Weiterarbeiten eines Namens habe ich folgendes Kommando definiert:
\newcommand*{\Name}[2]{\textsc{#1 #2\index[Person]{\textsc{#2}, #1}}}
\Name{Vorname}{Nachname}
Soweit funktioniert es. Gerne hätte ich eine Abfrage, ob eines der beiden Felder leer ist, um in diesem Fall kein Komma auszugeben. Momentan führt die Angabe von
\Name{}{Mustermann}
In einem anderen Forum riet man mir zu folgendem Code:
\newcommand*{\Name}[2]{\textsc{#1\IfArgIsEmpty{#2}{}{ #2}}\index[Person]{#2, #1@\IName{#1}{#2}}}% \DeclareRobustCommand*{\IName}[2]{\textsc{\IfArgIsEmpty{#2}{}{#2, }#1}}%
Erprobt habe ich es dann mit folgenden Minimalbeispiel:
%Definition des Dokumentes "Buch" \documentclass[11pt,a4paper,twoside,bibliography=totoc]{scrbook} %Verzeichnisse \usepackage{imakeidx} \makeindex[name=Person, title=Personenverzeichnis] %neu definierte Befehle \newcommand*{\Name}[2]{\textsc{#1\IfArgIsEmpty{#2}{}{ #2}}\index[Person]{#2, #1@\IName{#1}{#2}}}% \DeclareRobustCommand*{\IName}[2]{\textsc{\IfArgIsEmpty{#2}{}{#2, }#1}}% %Beginn des Dokuments \begin{document} Ein Satz. \Name{Max}{Mustermann} \printindex[Person] \end{document}
faultier