Usando uma report
classe com as opções twoside
e openright
, defini uma função, \mycentered[1]
, para exibir uma citação alinhada vertical e horizontalmente (no centro da página) antes do índice.
O texto é exibido corretamente e quando \cleardoublepage
é usado antes de \tableofcontents
inserir apenas uma página em branco. Mas, se eu usar \newgometry
(fornecido pelo geometry
pacote) entre a limpeza de página e o índice, serão inseridas três páginas em branco. Porém, se eu substituir \mycentered
por algum texto, essas páginas não serão inseridas. Como evitar que essas duas páginas extras sejam adicionadas?
No MWE seguinte o estilo de página também é alterado apenas para mostrar que as páginas em branco adicionais são introduzidasdepoiso 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}
Tentei remover \topskip0pt
e o problema das páginas em branco foi resolvido. Mas o conteúdo não fica realmente centralizado, pois é colocado algum espaço no topo. Não é perceptível com citações não muito longas, mas a imagem a seguir mostra a diferença se usada para centralizar verticalmente blocos maiores. No lado esquerdo \topskip0pt
é mostrado o resultado com e no lado direito o resultado sem ele é sobreposto.
Responder1
Compensar explicitamente o \topskip
, em vez de defini-lo como 0pt
, resolveu o problema e nenhum espaço extra foi colocado no topo.
\newcommand\th@centered[1]{\hbox{}\vspace*{-\topskip}\vspace*{\fill}{\centering#1\par}\vspace{\fill}}