如何在整个文档中使用两列的同时将“故意留空”放在页面中间?

如何在整个文档中使用两列的同时将“故意留空”放在页面中间?

这个问题如果某个部分以奇数页结束,或者整个文档以奇数页结束(因为某种原因它不会将空白页添加到最后一部分),我使用以下代码来添加一个空的故意留下的空白页

\newcommand*{\blankpage}{%
%\setlength{\topskip}{0pt}%
   % \setlength{\parskip}{0pt}%
\vspace*{\fill}
{ \centering INTENTIONALLY LEFT BLANK.\par}
\vspace{\fill}}

\makeatletter 
\renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
\blankpage
\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother

\AtEndDocument{%

 \ifthenelse{\isodd{\pageref{LastPage}}}{\null\blankpage}{}}

现在,这是我自己的问题:著名的 @DavidCarlisle 编写的代码似乎暗示,如果使用两列设置​​,它仍会将“INTENT...BLANK”部分放在页面的中间。它确实做到了!然后突然,它停止这样做,并开始将其放在页面的左侧,我猜想它应该位于左列的中央。那么,我怎样才能推翻这两列,并仍然将句子放在中间?最后一页似乎做对了,尽管 \end{multicols} 是最后一节。

答案1

如果您正在使用 KOMA-Script 类,则可以使用:

\documentclass[twoside,twocolumn]{scrbook}

\usepackage{scrlayer}
\usepackage{mwe}

\DeclareNewLayer[%
  background,
  align=c,
  area={.5\paperwidth}{.5\paperheight}{0pt}{0pt},
  contents={\makebox[0pt][c]{INTENTIONALLY LEFT BLANK.}}
]{ilb}
\DeclareNewPageStyleByLayers{ilb}{ilb}
\KOMAoptions{cleardoublepage=ilb}

\begin{document}
\chapter{First Test Chapter}
This short chapter will result in an empty next page.

\blinddocument
\end{document}

对于标准类,您还需要包scrextend

\documentclass[twoside,twocolumn]{book}

\usepackage{scrextend}
\usepackage{scrlayer}
\usepackage{mwe}

\DeclareNewLayer[%
  background,
  align=c,
  area={.5\paperwidth}{.5\paperheight}{0pt}{0pt},
  contents={\makebox[0pt][c]{INTENTIONALLY LEFT BLANK.}}
]{ilb}
\DeclareNewPageStyleByLayers{ilb}{ilb}
\KOMAoptions{cleardoublepage=ilb}

\begin{document}
\chapter{First Test Chapter}
This short chapter will result in an empty next page.

\blinddocument
\end{document}

要使最后一页成为空白偶数页,您只需添加

\AtEndDocument{\ifodd\value{page}\cleardoublepage\fi}

文件序言。

如果您不使用twocolumn选项而是使用包,它也可以起作用multicols

\documentclass[twoside]{scrbook}

\usepackage{scrlayer}
\usepackage{mwe}
\usepackage{multicol}

\DeclareNewLayer[%
  background,
  align=c,
  area={.5\paperwidth}{.5\paperheight}{0pt}{0pt},
  contents={\makebox[0pt][c]{INTENTIONALLY LEFT BLANK.}}
]{ilb}
\DeclareNewPageStyleByLayers{ilb}{ilb}
\KOMAoptions{cleardoublepage=ilb}

\AtEndDocument{\ifodd\value{page}\cleardoublepage\fi}

\begin{document}
\begin{multicols}{2}
\chapter{First Test Chapter}
This short chapter will result in an empty next page.

\blinddocument

\end{multicols}
\end{document}

相关内容