simon
19-07-2012, 20:52
Liebes Forum.
Über den umdefinierten Befehl \author definiere ich mir beliebig viele Namen, die dann per \PrintNames der Reihe nach und untereinander ausgebeben werden sollen. Das funktioniert auch ganz prima -- siehe Quellcode.
\documentclass{article}
\RequirePackage{ifthen}
\makeatletter
\newcounter{@AuthorCounter}
\setcounter{@AuthorCounter}{0}
\newcounter{@CurAuthor}
\renewcommand\author[1]{\stepcounter{@AuthorCounter}
\expandafter\def\csname author\the\value{@AuthorCounter} \endcsname{#1}}
\newcommand\PrintNames{
\setcounter{@CurAuthor}{0}
\whiledo{\value{@CurAuthor}<\value{@AuthorCounter}}{%
\stepcounter{@CurAuthor}%
\def\temp{\csname author\the\value{@CurAuthor} \endcsname}
%% \ifthenelse{\equal{\temp}{}}{}%
{Name:~\temp\par}
}}
\makeatother
\begin{document}
\author{Alice}\author{Bob}\author{}
\PrintNames
\end{document}
Wenn ich nun aber die mit %% markierte Zeile dazunehme (um "leere" Namen zu unterdrücken), dann gibt es eine Fehlermeldung:
You can't use `the charachter 1' after \the.
Leider konnte ich das Beispiel nicht noch weiter runterdampfen. Umso mehr würde ich mich freuen, wenn jemand von Euch Rat weiß.
Danke und Gruß,
Simon
Über den umdefinierten Befehl \author definiere ich mir beliebig viele Namen, die dann per \PrintNames der Reihe nach und untereinander ausgebeben werden sollen. Das funktioniert auch ganz prima -- siehe Quellcode.
\documentclass{article}
\RequirePackage{ifthen}
\makeatletter
\newcounter{@AuthorCounter}
\setcounter{@AuthorCounter}{0}
\newcounter{@CurAuthor}
\renewcommand\author[1]{\stepcounter{@AuthorCounter}
\expandafter\def\csname author\the\value{@AuthorCounter} \endcsname{#1}}
\newcommand\PrintNames{
\setcounter{@CurAuthor}{0}
\whiledo{\value{@CurAuthor}<\value{@AuthorCounter}}{%
\stepcounter{@CurAuthor}%
\def\temp{\csname author\the\value{@CurAuthor} \endcsname}
%% \ifthenelse{\equal{\temp}{}}{}%
{Name:~\temp\par}
}}
\makeatother
\begin{document}
\author{Alice}\author{Bob}\author{}
\PrintNames
\end{document}
Wenn ich nun aber die mit %% markierte Zeile dazunehme (um "leere" Namen zu unterdrücken), dann gibt es eine Fehlermeldung:
You can't use `the charachter 1' after \the.
Leider konnte ich das Beispiel nicht noch weiter runterdampfen. Umso mehr würde ich mich freuen, wenn jemand von Euch Rat weiß.
Danke und Gruß,
Simon