rstuby
29-06-2012, 14: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}
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}