A alteração do estilo de numeração de páginas ocorre uma página antes do esperado?

A alteração do estilo de numeração de páginas ocorre uma página antes do esperado?

Quero que meu relatório tenha as primeiras seções com numeração romana (i, ii, iii...) e o corpo do relatório com numeração arábica (1, 2, 3...) para os números das páginas.

O problema é que a mudança parece estar ocorrendo uma página antes do que eu esperaria do meu código:

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

Posso ver que se eu colocar o \pagenumbering{arabic}comando na linha abaixo da terceira seção, o problema será resolvido, mas isso é inconveniente porque se eu tiver um documento modular e comentar uma seção, terei que continuar mudando a posição de \pagenumbering{arabic}.

Além disso, se eu colocar uma quebra de linha antes, % === Body of report ===isso resolverá o problema no meu MWE (mas não no meu relatório real por algum motivo). Muito confuso com esse comportamento.

Isso é um inseto? e existe uma solução em torno disso?

Responder1

O \pagebreakcomando funciona de maneira diferente quando fornecido dentro de um parágrafo ou entre parágrafos (ou seja, com uma linha em branco antes dele).

No seu caso, o segundo \pagebreakpertence ao parágrafo que contém o texto

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

e terá efeito somente após o parágrafo ter sido dividido em linhas, o que acontece quando o LaTeX faz a varredura \section*{third section}e já alterou a numeração das páginas para arabic.

Não tenha medo de deixar linhas em branco, mas utilize \clearpageem situações como essas; tal comando encerra o parágrafo atual, se não for precedido por uma linha em branco, resolvendo o problema.

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

Há outra diferença entre \pagebreake \clearpage: se \flushbottomestiver em vigor (o que está na bookturma), \pagebreaktentará preencher a página com o texto disponível, enquanto \clearpagea preenche com espaço em branco.

So \pagebreaké melhor usado para ajustar as quebras de página, enquanto \clearpageou \cleardoublepagedeve ser usado ao solicitar “terminar a página aqui”.

informação relacionada