PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if-then-else-Befehl



rawry
12-04-2006, 16:20
Hallo,
inzwischen kann ich die meisten meiner Latex-Probs selbst lösen, was ich aber noch nicht gemacht habe ist ein "Macro zu programmieren"... Ich weiß allerdings nicht mal ganz sicher, ob das was ich möchte, überhaupt ein Macro ist.

Zur Sache:
In der Class "Exam" gibt es den Befehl \printanswers bzw. \noprintanswers.
Ich möchte, wenn ich \printanswers verwende, nach jeder Aufgabe eine neue Seite beginnen lassen, verwende ich \noprintanswers, dann soll kein \newpage erfolgen...

Bisher hab' ich jedes mal das \newpage eingefügt und dann wieder ein "%" davor gemacht, je nachdem was ich eben haben wollte - das geht mir inzwischen auf die Nerven!

Kann ich nicht etwas programmieren, das ich dann vor jeder neuen Aufgabe einfüge?

Mal von der Idee her, in etwa so:
\if{\printanswers}\then{\newpage}\else{}

Ich weiß das ist falsch, habe aber einen ifhenelse-Befehl noch nie verwendet...

Vielen Dank!

Gruß
Rawry

edico
12-04-2006, 22:43
Hmm, einacher mit einem Macro '\pas' statt '\printanswers' :
...
\newcommand{\pas}{\printanswers\newpage}
...
\pas
...
edico
P.S. noch einfacher:
\renewcommand{\printanswers}[1]{\newpage}

rawry
13-04-2006, 13:53
Ok. Vielen Dank.

Das hilft mir schon mal, obwohl ich das etwas anders meinte:
Ich stelle zu Beginn der gesamten Fragen und Antworten einmalig ein, ob es \printanswers oder \noprintanswers sein soll.

Im Verlauf, d.h. nach jeder einzelnen Aufgabe, soll Latex dann wissen, dass wenn zu Beginn des Dokuments \printanswers steht, dass dann auch zwischen den Aufgaben \newpage sein soll. Steht zu Beginn des Dokuments \noprintanswers, dann soll zwischen den einzelnen Aufgaben auch kein \newpage erfolgen.

Mit Deinem Tip geht es auch ganz gut, ich mache das dann so:

\newcommand{\pas}{\printanswers\newpage}
%\newcommand{\pas}{\noprintanswers}

und wechsle einfach das % -je nach dem was ich brauche- aus.

Jetzt ist es aber so, dass das dann für die allererste Aufgabe nicht funzt, bzw. wenn ich \newcommand{\pas}{\printanswers\newpage}, dann macht er einen Seitenumbruch vor der ersten Aufgabe.

O.k. O.k es gibt schon eine Lösung:

\newcommand{\pas}{\printanswers\newpage}\newcomman d{\pat}{\printanswers}
%\newcommand{\pas}{\noprintanswers}\newcommand{\pa t}{\noprintanswers}

wobei ich das pat dann eben vor die erste Aufgabe stelle. --> Problem gelöst - Vielen Dank!

Dein Tip war super (und viel einfacher als ich dachte)!

Trotzdem:
Daher meinte ich "ifthenelse":
also wenn zu Beginn des Dokuments \printanswers steht, dann \newpage, sonst nicht...
Geht das auch irgendwie?



Rawry