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
