Usando una report
clase con las opciones twoside
y 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 \cleardoublepage
se utiliza antes de \tableofcontents
insertar solo una página en blanco. Pero, si uso \newgometry
(proporcionado por el geometry
paquete) entre el borrado de páginas y la tabla de contenido, se insertan tres páginas en blanco. Sin embargo, si lo reemplazo \mycentered
con 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 \topskip0pt
y 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 \topskip0pt
se muestra el resultado con y en el lado derecho se superpone el resultado sin él.
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}}