Дополнительные пустые страницы вставляются при использовании \cleardoublepage и \newgeometry

Дополнительные пустые страницы вставляются при использовании \cleardoublepage и \newgeometry

Используя reportкласс с параметрами twosideи openright, я определил функцию \mycentered[1]для отображения вертикально и горизонтально выровненной (по центру страницы) цитаты перед оглавлением.

Текст отображается правильно, и когда \cleardoublepageиспользуется перед \tableofcontentsвставкой просто пустая страница. Но если я использую \newgometry(предоставленный пакетом geometry) между очисткой страницы и оглавлением, вставляются три пустые страницы. Однако если я заменяю \mycenteredтекстом, эти страницы не вставляются. Как избежать добавления этих двух дополнительных страниц?

В следующем MWE стиль страницы также изменен, чтобы показать, что введены дополнительные пустые страницы.послеявный \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}

Я попробовал удалить, \topskip0ptи проблема с пустыми страницами решена. Но содержимое не совсем центрировано, так как сверху оставлено некоторое пространство. Это не заметно с не очень длинными цитатами, но следующее изображение показывает разницу, если использовать для вертикального центрирования больших блоков. С левой стороны \topskip0ptпоказан результат с , а с правой стороны наложен результат без него.

введите описание изображения здесь

решение1

Явная компенсация \topskipвместо установки его в значение 0ptрешила проблему, и никакого дополнительного пространства вверху не появилось.

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

Связанный контент