Se insertan páginas en blanco adicionales al usar \cleardoublepage y \newgeometry

Se insertan páginas en blanco adicionales al usar \cleardoublepage y \newgeometry

Usando una reportclase con las opciones twosidey openright, he definido una función, \mycentered[1]para mostrar una cita alineada vertical y horizontalmente (en el centro de la página) antes de la tabla de contenido.

El texto se muestra correctamente y cuando \cleardoublepagese utiliza antes de \tableofcontentsinsertar solo una página en blanco. Pero, si uso \newgometry(proporcionado por el geometrypaquete) entre el borrado de páginas y la tabla de contenido, se insertan tres páginas en blanco. Sin embargo, si lo reemplazo \mycenteredcon algún texto, esas páginas no se insertan. ¿Cómo se puede evitar que se agreguen esas dos páginas adicionales?

En el siguiente MWE, el estilo de página también se cambia solo para mostrar que se introducen páginas en blanco adicionales.despuéslo explícito \cleardoublepage.

\documentclass[a4paper,twoside,openright]{report}
\usepackage[top=2cm,bottom=2cm]{geometry}
\newcommand\mycentered[1]{\topskip0pt\vspace*{\fill}{\centering#1\par}\vspace*{\fill}}

\def\mytextblock{
This is some text

with several paragraphs
}

\begin{document}
\pagestyle{empty}
\mycentered{\mytextblock}
\cleardoublepage
\pagestyle{plain}
\newgeometry{top=3cm,bottom=3cm}
\tableofcontents
\chapter{First}

\end{document}

Intenté eliminarlo \topskip0pty el problema de las páginas en blanco se resolvió. Pero el contenido no está realmente centrado, ya que se coloca algo de espacio en la parte superior. No se nota con comillas no muy largas, pero la siguiente imagen muestra la diferencia si se usa para centrar verticalmente bloques más grandes. En el lado izquierdo \topskip0ptse muestra el resultado con y en el lado derecho se superpone el resultado sin él.

ingrese la descripción de la imagen aquí

Respuesta1

Compensar explícitamente \topskip, en lugar de configurarlo en 0pt, resolvió el problema y no se coloca espacio adicional en la parte superior.

\newcommand\th@centered[1]{\hbox{}\vspace*{-\topskip}\vspace*{\fill}{\centering#1\par}\vspace{\fill}}

información relacionada