使用 \cleardoublepage 和 memoir 插入文本

使用 \cleardoublepage 和 memoir 插入文本

当我使用编写我的第一个模板时book,我使用以下宏将文本添加到空白页:

\renewcommand{\cleardoublepage}{
  \clearpage\if@twoside \ifodd\c@page\else
  \hbox{}
  \vspace*{\fill}
  \begin{center}
    \textit{This page intentionally left blank}
  \end{center}
  \vspace*{\fill}
  \thispagestyle{empty}
  \newpage
  \if@twocolumn\hbox{}\newpage\fi\fi\fi
}

相同的宏在 下不起作用memoir,空白页不再打印。即使只是\cleardoublepage从类的源代码复制粘贴定义(而不是上面的宏)也足以破坏它。

我如何将我的宏移植到memoir

最小(非工作)示例:

\documentclass[a4paper,12pt,twoside,openright,final]{memoir}

\usepackage{fontspec}
\usepackage{microtype}

\usepackage{csquotes}
\usepackage{polyglossia}
\setdefaultlanguage{english}

\usepackage[backend=biber,style=authoryear,bibstyle=authoryear]{biblatex}
\addbibresource{references.bib}

\usepackage{lipsum}

\settrims{0pt}{0pt}
\setlrmarginsandblock{2.54cm}{2.54cm}{1.618}
\setulmarginsandblock{2.54cm}{2.54cm}{1.618}
\checkandfixthelayout

\title{StackExchange test}
\author{Amyspark}
\date{\today}

\renewcommand{\cleardoublepage}{
  \clearpage\if@twoside \ifodd\c@page\else
  \hbox{}
  \vspace*{\fill}
  \begin{center}
    \textit{This page intentionally left blank}
  \end{center}
  \vspace*{\fill}
  \thispagestyle{empty}
  \newpage
  \if@twocolumn\hbox{}\newpage\fi\fi\fi
}
\renewcommand{\cleartorecto}{\cleardoublepage}

\begin{document}
  \SingleSpacing
  \frontmatter

  \begin{titlingpage*}
    \maketitle
  \end{titlingpage*}
  \cleartorecto % the back side of the title page should be blank (but instead no page)

  \OnehalfSpacing
  \tableofcontents*
  \cleardoublepage % same as above


  \mainmatter
  \chapter{Test}
  \lipsum[1-6]

  \section{Objectives}
  \lipsum[7-8]

  \section{First section}
  \lipsum[2-3]
  \subsection{Sub}
  \lipsum[3]
  \subsubsection{Subsub}
  \lipsum[4]\Parencite[4]{Foley:2008:CGC:1481349} % or any suitable cite, just to generate bib


  \backmatter
  \printbibliography[heading=bibintoc] % this should go in a recto page (but it doesn't)
\end{document}

答案1

如手册中所述,memoir包括命令\movetoevenpage\cleartoevenpage和,每个命令都可以接受一个可选参数,该参数将打印在跳过的页面上(如果有)。宏停止打印当前页面,然后在下一个合适的页面上继续排版;这些\movetooddpage命令类似,只是它们会在继续排版之前刷新所有浮动。例如:\cleartooddpage\moveto...\clearto...

\cleartooddpage[\vspace*{\fill}THIS PAGE LEFT BLANK\vspace*{\fill}]

将会把“此页空白”放置在任何可能被跳过(空白)的偶数页的中心。

相关内容