PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inhalt von Befehlen automatisch zurücksetzen funktioniert nicht



rstuby
29-06-2012, 13:30
Hallo! Ich habe heute zum ersten Mal eine if-Abfrage gebastelt, die an sich auch funktioniert. Dann habe ich die vier Befehle \otitle, \tdata, \transl, \mdata als Variablen gesetzt und vier entsprechende Befehle mit \set..., um den Inhalt dieser Variablen im Dokument zu ändern.
Wenn ich diese direkt aufrufe, funktioniert auch das.
Auch die Ausgabe über den komplexen Befehl \makeinfo läuft. Aber dieser sollte außerdem jedesmal die vier Variablen auf einen Defaultwert/text zurücksetzen, was er aber offenbar nicht tut. Kann mir einer erklären warum?


\documentclass[parskip]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\newcommand*{\otitle}{}
\newcommand*{\tdata}{}
\newcommand*{\transl}{}
\newcommand*{\mdata}{}
\newcommand*{\leer}{}

\newcommand*{\setotitle}[1]{\renewcommand*{\otitle}{#1}}
\newcommand*{\settdata}[1]{\renewcommand*{\tdata}{#1}}
\newcommand*{\settransl}[1]{\renewcommand*{\transl}{#1}}
\newcommand*{\setmdata}[1]{\renewcommand*{\mdata}{#1}}


\newcommand{\makeinfo}
{{\raggedleft\footnotesize
\ifx\otitle\leer
\textbf{Verfasser: }\tdata;~
\else
\textbf{Originaltitel: }\textit{\otitle~}\tdata;~
\textbf{Deutsch }\transl;~
\fi
\textbf{Melodie: }\mdata\par
\setotitle{}\settdata{unbekannt}\settransl{unbekan nt}\setmdata{unbekannt}
}}

\begin{document}

Lied 0

\makeinfo

Lied 1

\settdata{Max Mustermann 1960}
\setmdata{Monika Neuschreiber 1962}
\makeinfo

Lied 2

\setotitle{Now we sing English}
\settdata{John Smith 2002}
\setmdata{John Smith 2002}
\settransl{Carina Träger 2008}
\makeinfo

Lied 3

\makeinfo

Lied 4

\settdata{Max Mustermann 1960}
\setmdata{Monika Neuschreiber 1962}
\makeinfo

Lied 5

\setotitle{}
\settdata{Max Mustermann 1960}
\setmdata{Monika Neuschreiber 1962}
\makeinfo

\end{document}

u_fischer
29-06-2012, 13:45
Weil du die Befehle innerhalb einer Gruppe zurücksetzt. Den Teil hinter die nächste schließende Klammer.

rstuby
29-06-2012, 13:53
So einfach kann es sein... Vielen Dank!