Ich schreibe einen Bericht und möchte sicherstellen, dass jedes neue Kapitel auf einer ungeraden Seite beginnt. Daher habe ich das folgende Skript geschrieben, das ich vor jedes Kapitel setze:
...
%-- to make sure that a new chapter starts on the right side (odd page) %
\ifodd \thepage
{\newpage
\thispagestyle{empty}
\mbox{}
}
\else
{}
\fi
%-----------------------------------------------------------------------%
\chapter{Chap_name}
...
Es funktioniert wie folgt:
Wenn die Seite vor meinem neuen Kapitel ungerade ist, bedeutet das, dass ich eine leere Seite hinzufügen muss, um mit dem neuen Kapitel auf der nächsten ungeraden Seitenzahl beginnen zu können.
Es funktioniert einwandfrei, wenn die vorherige Seite eine normale Seite ist.
Wenn ich aber auf der Seite davor eine Abbildung habe, die auf eine neue Seite verschoben wurde, da sie nicht auf die Seite passte und auf der Seite neben dem Float kein Text vorhanden ist, funktioniert dieses Skript nicht.
Der Befehl \thepage
gibt eine falsche Seitenzahl zurück (offenbar wird sie nicht erhöht, wenn die Seite nur einen Float enthält) und fügt daher keine leere Seite hinzu, falls die letzte Seite tatsächlich ungerade war.
Ich weiß nicht, wie ich dieses Problem lösen soll. Irgendwelche Ideen?
Danke fürs Helfen.
Antwort1
Bemerkungen:
\thepage
kann alles sein, römische Zahlen, komplexe Seitenzahlen (1-2
), … Erwartet jedoch\ifodd
nur eine arabische Zahl. Besser ist die Verwendung des Zählerwertes\value{page}
.Die Ausgaberoutine wird als asynchron bezeichnet. Daher
\ifodd
ist zum Zeitpunkt der Ausgabe nicht klar, was auf den Seiten erscheinen wird. Viel sicherer ist die Platzierung am Anfang einer Seite.Viele Dokumentklassen bieten Optionen
twoside
und Befehle\cleardoublepage
. KOMA-Script-Klassen bieten beispielsweise viele Optionen und Befehle. Außerdem beginnt ein Kapitel normalerweise mit,\cleardoublepage
wenntwoside
dies angegeben ist.
Für die Standardklassen \cleardoublepage
kann neu definiert werden, um leere Kopf- und Fußzeilen für leere Seiten festzulegen:
\makeatletter
\renewcommand*{\cleardoublepage}{%
\clearpage % output floats if necessary
% new page starts here
\if@twoside
\ifodd\value{page}%
\else
\begingroup
\pagestyle{empty}%
\hbox{}\newpage
\if@twocolumn
\hbox{}\newpage
\fi
\endgroup
\fi
\fi
}
\makeatother