Als erstes könntest Du neben einem
vollständigen Minimalbeispiel (← dies ist ein geprüfter Link mit relevanten Informationen!) mal die Fehlermeldung angeben, falls es eine gibt, was ich stark vermute, weil in Deinem Codeschnippsel bei der Definition von \createCoverAndTitlePage höchstwahrscheinlich eine schließende Klammer fehlt.
Bei der Gelegenheit sei auch noch darauf hingewiesen, dass Deine Definitionen Leerzeichen enthalten, sie im horizontalen Modus
signifikant sind.
bloodworks hat geschrieben:Du verwendest einen neuen Befehl BEVOR du ihn Deklarierst. Dass muss doch schief gehen.
Das spielt (fast) keine Rolle. Entscheidend ist, wann expandiert wird:
\newcommand*{\BefehlA}{\BefehlB}
\newcommand*{\BefehlB}{Befehl B}
...
\BefehlA
funktioniert einwandfrei. Probleme gibt es, bei Befehlen, die TeX bereits im Tokenizer auswertet, also vor der Expansion. Im Augenblick fallen mir da nur \if..., die zu \iffalse expandieren ein. So dürfte folgendes schief gehen:
\documentclass{article}
\begin{document}
\newcommand*{\definiereifgehtdas}{\newif\ifgehtdas}
\iffalse
\definiereifgehtdas
\ifgehtdas
ja
\else
nein
\fi% BOING
\else
noch ein nein
\fi
\end{document}
Der Grund ist schlicht, dass beim \iffalse alles bis zum mit BOING markierten \fi weggeworfen wird, weil TeX zu dem Zeitpunkt \ifgehtdas noch nicht als Fallunterscheidung erkennt. Zieht man \definiereifgehtdas vor das erste \iffalse, so funktioniert es. Paketautoren machen hier übrigens gerne Fehler. Deshalb hier ein Beispiel, wie man es nicht machen sollte:
\documentclass{article}
\newcommand*{\ifgleich}[2]{\ifnum #1=#2}
\begin{document}
\iffalse
\ifgleich{1}{2}
gleich
\else
ungleich
\fi
\else
noch ein nein
\fi
\end{document}
Stattdessen wäre folgendes zu empfehlen:
\documentclass{article}
\newcommand*{\ifgleich}[2]{\ifnum #1=#2
\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
\begin{document}
\iffalse
\ifgleich{1}{2}{gleich}{ungleich}
\else
noch ein nein
\fi
\end{document}
Die \expandafter braucht man in dem Beispiel übrigens, damit \@firstoftwo und \@secondoftwo ihre beiden Argumente erst lesen, wenn die Fallunterscheidung beendet ist.
Edit: Ich bleibe dabei, dass ein vollständiges Minimalbeispiel eine gute Idee wäre. Dein Beispiel ist nämlich weder minimal noch vollständig.
Als erstes könntest Du neben einem [url=http://www.golatex.de/wiki/index.php?title=Minimalbeispiel]vollständigen Minimalbeispiel[/url] (← dies ist ein geprüfter Link mit relevanten Informationen!) mal die Fehlermeldung angeben, falls es eine gibt, was ich stark vermute, weil in Deinem Codeschnippsel bei der Definition von \createCoverAndTitlePage höchstwahrscheinlich eine schließende Klammer fehlt.
Bei der Gelegenheit sei auch noch darauf hingewiesen, dass Deine Definitionen Leerzeichen enthalten, sie im horizontalen Modus [url=http://www.komascript.de/signifikanteLeerzeichen]signifikant[/url] sind.
[quote="bloodworks"]Du verwendest einen neuen Befehl BEVOR du ihn Deklarierst. Dass muss doch schief gehen.[/quote]
Das spielt (fast) keine Rolle. Entscheidend ist, wann expandiert wird: [code]\newcommand*{\BefehlA}{\BefehlB}
\newcommand*{\BefehlB}{Befehl B}
...
\BefehlA[/code] funktioniert einwandfrei. Probleme gibt es, bei Befehlen, die TeX bereits im Tokenizer auswertet, also vor der Expansion. Im Augenblick fallen mir da nur \if..., die zu \iffalse expandieren ein. So dürfte folgendes schief gehen:
[code]\documentclass{article}
\begin{document}
\newcommand*{\definiereifgehtdas}{\newif\ifgehtdas}
\iffalse
\definiereifgehtdas
\ifgehtdas
ja
\else
nein
\fi% BOING
\else
noch ein nein
\fi
\end{document}
[/code] Der Grund ist schlicht, dass beim \iffalse alles bis zum mit BOING markierten \fi weggeworfen wird, weil TeX zu dem Zeitpunkt \ifgehtdas noch nicht als Fallunterscheidung erkennt. Zieht man \definiereifgehtdas vor das erste \iffalse, so funktioniert es. Paketautoren machen hier übrigens gerne Fehler. Deshalb hier ein Beispiel, wie man es nicht machen sollte: [code]\documentclass{article}
\newcommand*{\ifgleich}[2]{\ifnum #1=#2}
\begin{document}
\iffalse
\ifgleich{1}{2}
gleich
\else
ungleich
\fi
\else
noch ein nein
\fi
\end{document}[/code] Stattdessen wäre folgendes zu empfehlen: [code]\documentclass{article}
\newcommand*{\ifgleich}[2]{\ifnum #1=#2
\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
\begin{document}
\iffalse
\ifgleich{1}{2}{gleich}{ungleich}
\else
noch ein nein
\fi
\end{document}[/code]
Die \expandafter braucht man in dem Beispiel übrigens, damit \@firstoftwo und \@secondoftwo ihre beiden Argumente erst lesen, wenn die Fallunterscheidung beendet ist.
Edit: Ich bleibe dabei, dass ein vollständiges Minimalbeispiel eine gute Idee wäre. Dein Beispiel ist nämlich weder minimal noch vollständig.