ページ番号のスタイルを変更すると、予想よりも 1 ページ早く発生しますか?

ページ番号のスタイルを変更すると、予想よりも 1 ページ早く発生しますか?

レポートの最初のいくつかのセクションにはローマ数字 (i、ii、iii...) を使用し、レポートの本文にはページ番号としてアラビア数字 (1、2、3...) を使用するようにします。

問題は、コードから予想されるよりも 1 ページ早く切り替えが行われているように見えることです。

\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}

3 番目のセクションの下の行にコマンドを配置すると問題が解決することはわかります\pagenumbering{arabic}が、モジュール ドキュメントがあり、セクションをコメント アウトすると、 の位置を変更し続ける必要があるため、これは不便です\pagenumbering{arabic}

さらに、前に改行を入れると、% === Body of report ===MWE の問題は修正されます (ただし、何らかの理由で実際のレポートでは修正されません)。この動作には非常に困惑しています。

これはバグでしょうか?解決策はあるでしょうか?

答え1

この\pagebreakコマンドは、段落内で指定する場合と段落間(つまり、その前に空白行がある場合)で動作が異なります。

あなたの場合、2番目は\pagebreakテキストを含む段落に属します

Want this to be page ii, but it appears as 1 instead

これは、段落が行に分割された後にのみ有効になります。これは、LaTeX がスキャンして\section*{third section}ページ番号を に変更したときに発生しますarabic

空白行を残すことを恐れないでください。ただし、\clearpageこのような状況では、 を使用します。このようなコマンドは、前に空白行がない場合、現在の段落を終了するため、問題は解決します。

\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}

\pagebreakとには別の違いがあります\clearpage\flushbottomが有効な場合 (bookクラスでは有効です)、\pagebreakは利用可能なテキストでページを埋めようとしますが、\clearpageは空白で埋めます。

\pagebreakページ区切りを微調整するのに最適ですが、\clearpageまたは は\cleardoublepage「ここでページを終了」するように指示するときに使用します。

関連情報