PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : If-Abfrage in Latex



Server
07-07-2006, 09:38
Hallo,

hab das Forum grad erst gefunden. Vielleicht kann mir ja jemand helfen...?

Ich versuche in LaTeX eine if-Abfrage zu bauen. Undzwar würde ich gerne, je nachdem ob "oneside" oder "twoside" eingestellt ist, unterschiedliche Befehle verwenden...

hier mal mein Kopf:


\documentclass[
a4paper,
12pt,
chapterprefix,
pdftex,
pointlessnumbers,
oneside,
% twoside,
halfparskip,
]{scrreprt}

nun würde ich gerne sowas in der Art einbauen


if (oneside) {
...
}
else if (twoside) {
...
}

Hab das leider nur bisher nicht hinbekommen... Hat jemand da eine Idee wie das geht???

Besten Dank!

- Server

RedCloud
07-07-2006, 10:22
nun würde ich gerne sowas in der Art einbauen


if (oneside) {
...
}
else if (twoside) {
...
}

Hab das leider nur bisher nicht hinbekommen... Hat jemand da eine Idee wie das geht???





\documentclass[
% oneside,
twoside,
]{scrreprt}
\begin{document}

\makeatletter
\if@twoside Zweiseitig \else Einseitig \fi
\makeatother

\end{document}


rc

Server
07-07-2006, 11:26
Hallo,

danke für die schnelle Antwort!

Auf den ersten Blick funktioniert das sehr schön. Doch leider irgendwie nicht 100%ig. Bei oneside klappt alles wie es soll.

Nach der document definition kommt dies heir:
%% Bedingte Ausgabe -> Anfang
\makeatletter
\if@twoside %% Für Doppelseitig
\fancyhead[EL]{\leftmark} % gerade Seiten, links
\fancyhead[ER]{\thepage} % gerade Seiten, rechts
\fancyhead[OL]{\thepage} % ungerade Seiten, links
\fancyhead[OR]{\rightmark} % ungerade Seiten, rechts
\else %% Für Einseitig
\fancyhead[OL]{\leftmark} % gerade Seiten, rechts
\fancyhead[OR]{\thepage} % gerade Seiten, links
\fi
\makeatother
%% Bedingte Ausgabe -> Ende


und noch später überschreibe ich die Kopf- und Fusszeilen des layouts "plain"
%% Kopf- und Fusszeilenlayout für Seitenstyle "plain" überschreiben
\fancypagestyle{plain}{
\renewcommand\headrulewidth{0.0pt}

%% Bedingte Ausgabe -> Anfang
\makeatletter
\if@twoside %% Für Doppelseitig
\fancyhead[OL]{} % ungerade Seiten, links
\fancyhead[OR]{} % ungerade Seiten, rechts
\fancyhead[EL]{} % gerade Seiten, links
\fancyhead[ER]{} % gerade Seiten, rechts
\else %% Für Einseitig
\fancyhead[OL]{} % ungerade Seiten, links
\fancyhead[OR]{} % ungerade Seiten, rechts
\fi
\makeatother
%% Bedingte Ausgabe -> Ende
}
%%%


Das funktioniert alles wunderbar. Bis auf, bei "twoside" wird im "plain" syle weder die if Anweisung noch die else Anweisung aufgerufen... Bei "oneside" funktioniert es im "plain" style... Was hab ich da falsch gemacht? Kann ich die Abfrage nur ein mal machen? Oder ist es wegen dem fancypagestyle{plain}???

Vielen Vielen Dank!!!
- Server

RedCloud
07-07-2006, 11:33
und noch später überschreibe ich die Kopf- und Fusszeilen des layouts "plain"
%% Kopf- und Fusszeilenlayout für Seitenstyle "plain" überschreiben
\fancypagestyle{plain}{
\renewcommand\headrulewidth{0.0pt}

%% Bedingte Ausgabe -> Anfang
\makeatletter
\if@twoside %% Für Doppelseitig
\fancyhead[OL]{} % ungerade Seiten, links
\fancyhead[OR]{} % ungerade Seiten, rechts
\fancyhead[EL]{} % gerade Seiten, links
\fancyhead[ER]{} % gerade Seiten, rechts
\else %% Für Einseitig
\fancyhead[OL]{} % ungerade Seiten, links
\fancyhead[OR]{} % ungerade Seiten, rechts
\fi
\makeatother
%% Bedingte Ausgabe -> Ende
}
%%%


Das funktioniert alles wunderbar. Bis auf, bei "twoside" wird im "plain" syle weder die if Anweisung noch die else Anweisung aufgerufen... Bei "oneside" funktioniert es im "plain" style... Was hab ich da falsch gemacht? Kann ich die Abfrage nur ein mal machen? Oder ist es wegen dem fancypagestyle{plain}???




\makeatletter
\if@twoside %% Für Doppelseitig
\fancypagestyle{plain}{%
\renewcommand\headrulewidth{0.0pt}
\fancyhead[OL]{} % ungerade Seiten, links
\fancyhead[OR]{} % ungerade Seiten, rechts
\fancyhead[EL]{} % gerade Seiten, links
\fancyhead[ER]{} % gerade Seiten, rechts
}
\else %% Für Einseitig
\fancypagestyle{plain}{%
\fancyhead[OL]{} % ungerade Seiten, links
\fancyhead[OR]{} % ungerade Seiten, rechts
}
\fi
\makeatother


rc

Server
07-07-2006, 12:40
Besten Dank!
Funktioniert...

Dann kann ich ja nun erst einmal weiter machen...
Klasse hier!

- Server