Die Änderung des Seitennummerierungsstils erfolgt eine Seite früher als erwartet?

Die Änderung des Seitennummerierungsstils erfolgt eine Seite früher als erwartet?

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 \pagebreakBefehl funktioniert unterschiedlich, wenn er innerhalb eines Absatzes oder zwischen Absätzen (d. h. mit einer Leerzeile davor) eingegeben wird.

In Ihrem Fall \pagebreakgehö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 \clearpagein 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 \pagebreakund \clearpage: Wenn \flushbottomaktiv ist (was in der bookKlasse der Fall ist), \pagebreakwird versucht, die Seite mit dem verfügbaren Text zu füllen, während \clearpagesie mit Leerraum gefüllt wird.

Wird daher \pagebreakam besten zur Feinabstimmung der Seitenumbrüche verwendet, während \clearpageoder \cleardoublepageverwendet werden, wenn die Aufforderung „Seite hier beenden“ lautet.

verwandte Informationen