およびオプションreport
を持つクラスを使用して、関数 を定義し、目次の前に垂直および水平に揃えた (ページの中央に) 引用を表示します。twoside
openright
\mycentered[1]
テキストは正しく表示され、 が\cleardoublepage
使用されると\tableofcontents
、空白ページが挿入されるだけです。しかし、ページクリアと目次の間に\newgometry
(パッケージで提供される) を使用すると、3 つの空白ページが挿入されます。ただし、テキストに置き換えると、それらのページは挿入されません。これらの 2 つの余分なページが追加されないようにするにはどうすればよいですか?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}}