Estoy escribiendo un informe y quiero asegurarme de que cada nuevo capítulo comience en una página impar. Entonces escribí el siguiente guión que puse antes de cada capítulo:
...
%-- to make sure that a new chapter starts on the right side (odd page) %
\ifodd \thepage
{\newpage
\thispagestyle{empty}
\mbox{}
}
\else
{}
\fi
%-----------------------------------------------------------------------%
\chapter{Chap_name}
...
Funciona de la siguiente manera:
Si la página antes de mi nuevo capítulo es impar, significa que tengo que agregar una página en blanco para comenzar el nuevo capítulo en el siguiente número de página impar.
Funciona bien si la página anterior es una página normal.
Pero cuando tengo una figura en la página anterior, que se movió a una nueva página porque no encajaba en la página y no hay texto en la página junto con el flotante, entonces este script no funciona.
El comando \thepage
devuelve un número de página incorrecto (aparentemente no aumenta si la página solo contiene un flotante) y por lo tanto no agrega una página en blanco en caso de que la última página fuera impar.
No sé cómo solucionar este problema. ¿algunas ideas?
gracias por ayudar.
Respuesta1
Observaciones:
\thepage
puede ser cualquier cosa, números romanos, números de página complejos (1-2
),… Sin embargo,\ifodd
sólo se espera un número arábigo. Mejor es el uso del valor del contador\value{page}
.La rutina de salida se llama asíncrona. Por lo tanto, en
\ifodd
algún momento no está claro cuáles serán las páginas. Mucho más seguro es el lugar en la parte superior de una página.Muchas clases de documentos ofrecen opciones
twoside
y comandos\cleardoublepage
. Por ejemplo, las clases de KOMA-Script proporcionan muchas opciones y comandos. Además, un capítulo suele comenzar con\cleardoublepage
sitwoside
se da.
Para las clases estándar, \cleardoublepage
se puede redefinir para establecer encabezados y pies de página vacíos para páginas vacías:
\makeatletter
\renewcommand*{\cleardoublepage}{%
\clearpage % output floats if necessary
% new page starts here
\if@twoside
\ifodd\value{page}%
\else
\begingroup
\pagestyle{empty}%
\hbox{}\newpage
\if@twocolumn
\hbox{}\newpage
\fi
\endgroup
\fi
\fi
}
\makeatother