![¿El cambio de estilo de numeración de páginas se produce una página antes de lo esperado?](https://rvso.com/image/286979/%C2%BFEl%20cambio%20de%20estilo%20de%20numeraci%C3%B3n%20de%20p%C3%A1ginas%20se%20produce%20una%20p%C3%A1gina%20antes%20de%20lo%20esperado%3F.png)
Quiero que mi informe tenga las primeras secciones con numeración romana (i, ii, iii...) y el cuerpo del informe con numeración arábiga (1, 2, 3...) para los números de página.
El problema es que el cambio parece estar ocurriendo una página antes de lo que esperaría de mi 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}
Puedo ver que si coloco el \pagenumbering{arabic}
comando en la línea debajo de la tercera sección, se soluciona el problema, pero esto es un inconveniente porque si tengo un documento modular y comento una sección, entonces tengo que seguir cambiando la posición de \pagenumbering{arabic}
.
Además, si pongo un salto de línea antes, % === Body of report ===
se soluciona el problema en mi MWE (pero no en mi informe real por algún motivo). Muy confundido por este comportamiento.
¿Es esto un error? ¿Y hay una solución al respecto?
Respuesta1
El \pagebreak
comando funciona de manera diferente cuando se administra dentro de un párrafo o entre párrafos (es decir, con una línea en blanco antes).
En su caso, el segundo \pagebreak
pertenece al párrafo que tiene el texto
Want this to be page ii, but it appears as 1 instead
y tendrá efecto sólo después de que el párrafo se haya dividido en líneas, lo que ocurre cuando LaTeX escanea \section*{third section}
y ya ha cambiado la numeración de páginas a arabic
.
No tengas miedo de dejar líneas en blanco, pero úsalas \clearpage
en situaciones como estas; dicho comando finaliza el párrafo actual, si no está precedido por una línea en blanco, por lo que resuelve el 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}
Hay otra diferencia entre \pagebreak
y \clearpage
: si \flushbottom
está vigente (que está en la book
clase), \pagebreak
intentará llenar la página con el texto disponible, mientras \clearpage
la llena con espacios en blanco.
So \pagebreak
se utiliza mejor para ajustar los saltos de página, mientras que \clearpage
o \cleardoublepage
se utiliza cuando se solicita "finalizar la página aquí".