ページスタイルを変更し、\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*\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}

関連情報