如何使章节从四的倍数页开始?

如何使章节从四的倍数页开始?

我教授编程,我使用 Latex 的方法之一是将整个班级提交的程序生成一个大型 PDF 文档,然后发送到打印机。(大约有 100 名学生,单独创建和打印 100 份文档很烦人。)为了保护树木,我想在每张纸上打印四页(正面两页,背面两页)。我的打印机自然支持此设置。

问题是学生的程序不能写在同一张纸上。例如,如果第一个学生的程序有三页,第二个学生的程序也有三页,那么第一张纸上的 1-3 位置将写第一个学生的程序,第 4 位置将写第二个学生程序的第一页。然后第二张纸上的 1 和 2 位置将写第二个学生程序的后两页,第 3 和 4 位置将写第三个学生的程序,等等。

我想要的是一个 LaTeX 命令,根据当前绝对页数插入 0 到 3 页。如果当前绝对页数是 4 的倍数,则插入 0 页。如果不是,则最多插入 3 页,因此下一个命令将从 4 的倍数开始。

用 LaTeX 来类比,我想要一个 \cleartooddpage 版本,它可以清除到第四页。这实际上是我目前用来进行双面打印的方法,但如上所述,我希望每张纸打印四页。

答案1

欢迎使用 TeX-SE!本提案使用这个答案,似乎有效。(如果需要,您也可以删除\ifcase。)

\documentclass[11pt]{article}    
\usepackage{lipsum}
\usepackage{pgffor}
% from https://tex.stackexchange.com/a/398999/121799
\newcommand\InsertBlankPages[1]{% \InsertBlankPages{n} => insert n blank pages
  \foreach \blank in {1,...,#1} {
    \newpage
    \thispagestyle{plain}
    \mbox{}
  }%
}
\newcommand\cleartoquadpage{\pgfmathtruncatemacro{\qcpg}{mod(\value{page},4)}%
\ifcase\qcpg%
\InsertBlankPages{3}\clearpage%
\or%
\InsertBlankPages{2}\clearpage%
\or%
\InsertBlankPages{1}\clearpage%
\or%
\clearpage%
\fi}
\begin{document}
\section{A}
\lipsum[1-10]
\cleartoquadpage
\section{B}
\lipsum[1-2]
\cleartoquadpage
\section{C}
\lipsum[1-12]
\cleartoquadpage
\section{D}
\lipsum[1-18]
\cleartoquadpage
\end{document}

您可以将其推广为任意数字。(4此处为默认值。)

\documentclass[11pt]{article}    
\usepackage{lipsum}
\usepackage{pgffor}
% from https://tex.stackexchange.com/a/398999/121799
\newcommand\InsertBlankPages[1]{% \InsertBlankPages{n} => insert n blank pages
  \foreach \blank in {1,...,#1} {
    \newpage
    \thispagestyle{plain}
    \mbox{}
  }%
}
\newcommand\cleartopage[1][4]{\pgfmathtruncatemacro{\qcpg}{#1-1-mod(\value{page},#1)}%
\ifnum\qcpg=0%
\else%
\InsertBlankPages{\qcpg}%
\fi%
\clearpage}
\begin{document}
\section{A}
\lipsum[1-10]
\cleartopage[4]
\section{B}
\lipsum[1-2]
\cleartopage[4]
\section{C}
\lipsum[1-12]
\cleartopage[4]
\section{D}
\lipsum[1-18]
\cleartopage[4]
\end{document}

相关内容