\thepage vs flotadores

\thepage vs flotadores

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 \thepagedevuelve 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:

  • \thepagepuede ser cualquier cosa, números romanos, números de página complejos ( 1-2),… Sin embargo, \ifoddsó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 \ifoddalgú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 twosidey comandos \cleardoublepage. Por ejemplo, las clases de KOMA-Script proporcionan muchas opciones y comandos. Además, un capítulo suele comenzar con \cleardoublepagesi twosidese da.

Para las clases estándar, \cleardoublepagese 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

información relacionada