如何用 \cleardoublepage 更改页面样式并打印注释?

如何用 \cleardoublepage 更改页面样式并打印注释?

我正在使用提供的解决方案这里当由于使用类openright中的选项report\cleardoublepage命令而引入空白页时清除页面样式:

\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{\clearpage{\pagestyle{empty}\origdoublepage}}
\let\cleardoublepage\clearemptydoublepage

但是,除了清除页面样式外,我还想在页面中间显示一条注释。我尝试过eso-pic并且tikz(使其居中,考虑到左右边距):

\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{
\clearpage{\pagestyle{empty}\AddToShipoutPictureBG*{
 \begin{tikzpicture}[overlay]
  \pgfmathsetmacro{\correct}{((\rmargin-\lmargin)/(2*28.453)}
  \node[font=\normalfont] at ($(current page.center)+(\correct,0)$) {\blanknote};
 \end{tikzpicture}
}
\origdoublepage}}
\let\cleardoublepage\clearemptydoublepage

由于\AddToShipoutPictureBG*在 之前执行\origdoublepage,即\cleardoublepage,注释被添加到空白页(如果插入)或下一章的第一页。我想避免后一种行为,即不执行\AddToShipoutPictureBG*if\origdoublepage不执行任何操作。

我在用着eso-pic代替background因为\NoBgThispage目前无法使用,我用它来创建其他背景,如问题。但我也愿意接受其他方法。

MWE(不正确的行为见第 5 页):

\documentclass[a4paper,titlepage,11pt,twoside,openright]{report}
\usepackage{lipsum}
\usepackage{eso-pic}
\def\lmargin{3.5cm}
\def\rmargin{1.5cm}
\def\blanknote{This page intentionally left blank}
\usepackage[left=\lmargin, right=\rmargin]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc,positioning}

\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{
\clearpage{\pagestyle{empty}\AddToShipoutPictureBG*{
 \begin{tikzpicture}[overlay]
  \pgfmathsetmacro{\correct}{((\rmargin-\lmargin)/(2*28.453)}
  \node[font=\normalfont] at ($(current page.center)+(\correct,0)$) {\blanknote};
 \end{tikzpicture}
}
\origdoublepage}}
\let\cleardoublepage\clearemptydoublepage

\begin{document}
Introduction text...
\chapter{First}  \lipsum[1-9]
\chapter{Second} \lipsum[10-12]
\chapter{Third}  \lipsum[15]
\end{document}

答案1

我认为你把它弄得比需要的复杂得多,\cleardoublepage已经生成了页面:你只需要添加文本,不需要挂接到输出例程 shipout。

\documentclass[a4paper,titlepage,11pt,twoside,openright]{report}
\usepackage{lipsum}

\def\lmargin{3.5cm}
\def\rmargin{1.5cm}
\def\blanknote{This page intentionally left blank}
\usepackage[left=\lmargin, right=\rmargin]{geometry}

\makeatletter
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
 \thispagestyle{empty}%
 \hbox{}\vfill\centerline\blanknote\vfill\hbox{}\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother

\begin{document}
Introduction text...
\chapter{First}  \lipsum[1-9]
\chapter{Second} \lipsum[10-12]
\chapter{Third}  \lipsum[15]
\end{document}

相关内容