PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seitenumbruch auf grade Seite zwingen?



Leviathan07
07-04-2008, 14:26
Servus allerseits,

Mich bringt gerade ein kleines Latex-Problem zur Weissglut:

Mein Dokument (article, twoside) besteht aus einem ersten Teil mit römischen Seitenzahlen, und einem zweiten mit arabischen Seitenzahlen. Die arabischen Seitenzahlen fangen bei Beginn des Teils bei eins an, so wie es in Diplomarbeiten etc üblich ist. Hab also Seiten von i bis iii und von 1 bis 72 (außerdem zwei unnummerierte Seiten fürs Titelblatt). Insgesamt also 76 Seiten.

Am Ende des zweiten Teils möchte ich einen Befehl auf eine ungerade Seite platzieren. Ich will also vor diesem Befehl soviele Seitenumbrüche (einen oder zwei) einfügen, dass der Befehl auf einer geraden Seite landet.

Dafür hab ich einen Code-Schnipsel gefunden, der etwa so geht:

\ifodd \thepage %ungrade Seitenzahl, d.h. seite liegt links
\cleardoublepage
\else %gerade seitenzahl, d.h. seite liegt rechts
\clearpage
\fi

Problem ist bloß, \thepage gibt mir hier nur die arabische Seitenzahl an, nicht die tatsächliche Position im Dokument. D.h. wenn im Anfangsteil eine ungerade Zahl römischer Seiten steht, dann funktioniert die Abfrage nicht mehr, weil die ungeraden Seiten jetzt rechterhand stehen und nicht mehr linkerhand.

Muss ich mir jetzt irgendwie nen neuen Befehl definieren? Oder neue Counter? Oder gibt es schon einen Befehl ähnlich \thepage, der mir die "wahre" aktuelle seitenzahl angibt? Was würdet ihr erfahrenen Latex-Hasen hier tun?

Viele Grüße,
David

Stefan_K
07-04-2008, 19:52
Hallo David,

der Counter heißt page. \thepage gibt dessen Ausgabe an.
Info zum Problem gibts in der UK TeX FAQ: Finding if you’re on an odd or an even page (http://www.tex.ac.uk/cgi-bin/texfaq2html?label=oddpage).

Viele Grüße,

Stefan

Leviathan07
07-04-2008, 23:01
Hi Stefan,

Danke für den Tip!

Hab mir mit vielem Experimentieren eine Methode gebastelt um meine Dokumentplatzierung zu erreichen:

Ich definiere einen neuen counter in der Präambel,

\newcounter{introseiten}

Am Ende des Teils mit den römischen Ziffern lese ich den Counter "page" aus und merke somit, wieviele Seiten der erste Teil hat:

\setcounter{introseiten}{\value{page}}

Wenn ich dann am Ende des Teils mit den arabischen Seitenzahlen angekommen bin, addiere ich den dortigen Wert von page und erhalte die Gesamt-Seitenzahl bis hier (plus zwei für meine Titelseite):

\addtocounter{introseiten}{\value{page}}
\addtocounter{introseiten}{2}

Und dann kann ich direkt im Anschluss meine Abfrage einbauen, die mir alles nachfolgende auf eine rechts liegende Seite schmeißt!

\ifodd\value{introseiten}
\cleardoublepage
\else
\clearpage
\fi

*freu* :D

Probleme treten lediglich auf wenn die erste Abfrage, \setcounter{introseiten}{\value{page}}, fehlschlägt. Kommt bei mir öfters mal vor z.B. nach einer dreiseitigen Nomenclature Umgebung. Wenn dieser Counter richtig steht, klappts aber so gut wie immer.

voss
07-04-2008, 23:02
Mein Dokument (article, twoside) besteht aus einem ersten Teil mit römischen Seitenzahlen, und einem zweiten mit arabischen Seitenzahlen. Die arabischen Seitenzahlen fangen bei Beginn des Teils bei eins an, so wie es in Diplomarbeiten etc üblich ist. Hab also Seiten von i bis iii und von 1 bis 72 (außerdem zwei unnummerierte Seiten fürs Titelblatt). Insgesamt also 76 Seiten.

Am Ende des zweiten Teils möchte ich einen Befehl auf eine ungerade Seite platzieren. Ich will also vor diesem Befehl soviele Seitenumbrüche (einen oder zwei) einfügen, dass der Befehl auf einer geraden Seite landet.

Dafür hab ich einen Code-Schnipsel gefunden, der etwa so geht:

\ifodd \thepage %ungrade Seitenzahl, d.h. seite liegt links
\cleardoublepage
\else %gerade seitenzahl, d.h. seite liegt rechts
\clearpage
\fi



nach \cleardoublepage bist du immer auf einer rechten Seite und die hat eine
ungerade Seitennummer. \thepage kann man in der Regel nicht für derartige
Abfragen benutzen, da es kein Zähler im eigentlichen Sinne ist.
Benutze KomaScript, dann hast du eine entsprechende Funktion.

Herbert

Leviathan07
07-04-2008, 23:12
nach \cleardoublepage bist du immer auf einer rechten Seite und die hat eine
ungerade Seitennummer. \thepage kann man in der Regel nicht für derartige
Abfragen benutzen, da es kein Zähler im eigentlichen Sinne ist.
Benutze KomaScript, dann hast du eine entsprechende Funktion.

Herbert

Hallo Herbert,

Das hatte ich ursprünglich auch so versucht. Das Problem ist bei mir, wenn die arabischen Seitenzahlen auf einer links liegenden Seite loslaufen, dann hilft mir die Abfrage allein dieser Seitenzahl nicht mehr. Alle Pakete bzw. Hilfsfunktionen, die Lösungen dafür anbieten fragen im Endeffekt ja auch nur die aktuelle Seitenzahl, ab, nicht die Gesamt-Seitenzahl im fertigen PDF-Dokument bis dato.

Daher die ursprüngliche Frage, ob man rechts/links-Plazierung auch in solchen Fällen feststellen kann, wo die Seitenzahl alleine nicht ausreicht.