![Die Änderung des Seitennummerierungsstils erfolgt eine Seite früher als erwartet?](https://rvso.com/image/286979/Die%20%C3%84nderung%20des%20Seitennummerierungsstils%20erfolgt%20eine%20Seite%20fr%C3%BCher%20als%20erwartet%3F.png)
Ich möchte, dass die ersten Abschnitte meines Berichts römische Nummerierungen (i, ii, iii …) und die Seitenzahlen im Hauptteil des Berichts arabische Nummerierungen (1, 2, 3 …) aufweisen.
Das Problem besteht darin, dass der Wechsel offenbar eine Seite früher erfolgt, als ich es aufgrund meines Codes erwarten würde:
\documentclass{report}
\begin{document}
% === Abstract etc ===
\pagenumbering{roman}
\section*{first section}
Want this to be page i
\pagebreak
\section*{second section}
Want this to be page ii, but it appears as 1 instead
\pagebreak
% === Body of report ===
\pagenumbering{arabic} %change to arabic for final page
\section*{third section}
Want this to be page 1, but it appears as 2 instead
\section*{fourth section}
\end{document}
Ich sehe, dass \pagenumbering{arabic}
das Problem behoben ist, wenn ich den Befehl in die Zeile unter dem dritten Abschnitt setze. Das ist jedoch unpraktisch, da ich, wenn ich ein modulares Dokument habe und einen Abschnitt auskommentiere, die Position ständig ändern muss \pagenumbering{arabic}
.
Wenn ich außerdem davor einen Zeilenumbruch einfüge, % === Body of report ===
wird das Problem in meinem MWE behoben (aus irgendeinem Grund jedoch nicht in meinem eigentlichen Bericht). Dieses Verhalten verwirrt mich sehr.
Ist das ein Fehler? Und gibt es eine Lösung dafür?
Antwort1
Der \pagebreak
Befehl funktioniert unterschiedlich, wenn er innerhalb eines Absatzes oder zwischen Absätzen (d. h. mit einer Leerzeile davor) eingegeben wird.
In Ihrem Fall \pagebreak
gehört der zweite zu dem Absatz mit dem Text
Want this to be page ii, but it appears as 1 instead
und es wird erst wirksam, nachdem der Absatz in Zeilen umgebrochen wurde, was passiert, wenn LaTeX scannt \section*{third section}
und die Seitennummerierung bereits in geändert hat arabic
.
Scheuen Sie sich nicht, Leerzeilen zu lassen, aber verwenden Sie sie \clearpage
in Situationen wie diesen; ein solcher Befehl beendet den aktuellen Absatz, wenn ihm keine Leerzeile vorangeht, und löst somit das Problem.
\documentclass{report}
\begin{document}
% === Abstract etc ===
\pagenumbering{roman}
\section*{first section}
This is page i
\clearpage
\section*{second section}
This is page ii
\clearpage
% === Body of report ===
\pagenumbering{arabic} %change to arabic for final page
\section*{third section}
This is page 1
\section*{fourth section}
\end{document}
Es gibt einen weiteren Unterschied zwischen \pagebreak
und \clearpage
: Wenn \flushbottom
aktiv ist (was in der book
Klasse der Fall ist), \pagebreak
wird versucht, die Seite mit dem verfügbaren Text zu füllen, während \clearpage
sie mit Leerraum gefüllt wird.
Wird daher \pagebreak
am besten zur Feinabstimmung der Seitenumbrüche verwendet, während \clearpage
oder \cleardoublepage
verwendet werden, wenn die Aufforderung „Seite hier beenden“ lautet.