如何为每个偶数页输入“虚线”页面

如何为每个偶数页输入“虚线”页面

在为我的学生准备教科书时,我想让偶数页有条不紊地留空或划线,以便让他们在这些页面上写下他们的评论或自己的作品。最后,我给出了用于制作 3 页的程序,即“手工制作”。

我想创建一个宏,对文档的所有页面执行相同的操作。例如,文档的表达式(如大方程式或可拆分框)要从一页延续到另一页,tcolorbox必须从奇数页拆分到奇数页,并在其间插入 DashedPage。有什么想法吗?例如,软件包是否everypage执行此类操作?

\documentclass{article}

\usepackage{multido}

\newcommand{\DottedLines}[2][1.5]{%     %%  THE #1 ARGUMENT (MULTIPLE OF BASELINESKIP) IS OPTIONAL THE DEFAULT IS 1.5
  \par\nobreak
  \noindent\rule{0pt}{1.5\baselineskip}
  \multido{}{#2}{\noindent\makebox[\linewidth]{\rule{0pt}{#1\baselineskip}\dotfill}\\}}
\def\DashedPage{\newpage\DottedLines[2.5]{15}\newpage}

\begin{document}
A first page
\DashedPage
A second page
\end{document}

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

答案1

对评论页面进行编号(请参阅下面的替代方法):

在中创建基线文档几乎正常方式。唯一的怪癖是让它以 2 为单位对每页进行编号,从 开始1。以下是lipsum30.tex

\documentclass{article}
\usepackage{lipsum}
\renewcommand\thepage{\the\numexpr\value{page}+\value{page}-1\relax}
\begin{document}
\lipsum[1-30]
\end{document}

创建一个 6 页的文件lipsum30.pdf,页码为 1、3、5、7、9、11。

lipsum30.pdf一旦创建了基线文档(此处):

\documentclass{article}
\usepackage{everypage}
\usepackage{graphicx}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\atxy[3]{%
 \AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
  \raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{\textcolor{red}{#3}}}}}
% VERIFIED THAT SETTING \hoffset AND \voffset DO NOT BREAK SOLUTION.
%\hoffset=0.4in
%\voffset=0.2in
\usepackage{pgffor,pdfpages}
\begin{document}
\foreach\x in {1,...,6}{
  \includepdf[pages=\x]{lipsum30.pdf}
  \atxy{0in}{\paperheight}{\includegraphics[height=\paperheight]{lined-paper-template-9898}}
  \vspace*{-1.2in}\noindent\hspace{-45pt}%
  \Huge \underline{Your comments for page \the\numexpr\x+\x-1\relax:}
}
\end{document}

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

页码注释

如果不想在评论页上进行编号,而是将奇数页(文档)连续编号为 1-6,则只需消除\thepage基础文档中的重新定义,并在拼接文档中设置\pagestyle{empty}。如果您通过编号引用页面,就像我在评论页上所做的那样,您也需要修改它,以反映新的编号方案:\Huge \underline{Your comments for page \x:}


文件lined-paper-template-9898.jpg位于http://www.wordmstemplates.com/wp-content/uploads/2015/08/lined-paper-template-9898.jpg。如果您不喜欢这种形式的纸张定线,请选择其他图像,或者只需在循环中设置您自己的页面定线pgffor

答案2

尽管已经有了一个可以接受的答案,但这里还有另一种方法。

警告: 因为这使用了afterpage,所以它不适用于twocolumn文档,并且不够健壮,即它可能很容易损坏。

这也意味着,虽然 Steven B. Segletes 的答案会起作用,但这个答案可能不起作用。

此解决方案不需要pdfpages。相反,最终结果来自一个来源。它还具有其他功能:可以在文档中更改注释页面的外观,并且可以隐藏注释页面。

有三个命令:

\EverySecondPage{...}开始添加评论页面。此命令在文档中只允许使用一次,并且不能放在环境中!后者是必要的,因为某些环境可能会多次扩展其内容。参数是一个命令,它生成一个评论页面,例如\DashedPage

\ChangeEverySecondPage{...}可以通过向其传递不同的命令来改变评论页面的外观。

\NomoreEverySecondPage禁用添加评论页面。要重新启用它们,\ChangeEverySecondPage{...}必须使用。

命令从 TeX 首次扩展的页面开始生效。这意味着,如果 TeX 决定将页面上读取的内容移动到n转到下一页,可能看起来好像命令生效得太早。即,文档中命令出现的位置位于第n+2,但它的效果已经可以在评论页面看到了n+1。因此可能需要将命令向上或向下移动一个段落。

例如,命令可以在tcolorbox环境内部使用。但是它的效果将从环境启动的页面开始可见,因为tcolorbox(据我所知)在给出任何内容之前会读取其全部内容。这同样适用于许多其他环境。

设置评论页面的命令应该在序言中定义,因此\EverySecondPage只需\ChangeEverySecondPage获取一个简单的命令作为参数。

以下是代码:

\documentclass[a4paper]{article}
\usepackage[breakable]{tcolorbox}
\usepackage{notespages}
\usepackage{multido}
\usepackage{afterpage}
\usepackage{lipsum}

\newcommand{\DottedLines}[2][1.5]{%     %%  THE #1 ARGUMENT (MULTIPLE OF BASELINESKIP) IS OPTIONAL THE DEFAULT IS 1.5
  \par\nobreak
  \noindent\rule{0pt}{1.5\baselineskip}% <- added to remove spurious space
  \multido{}{#2}{\noindent\makebox[\linewidth]{\rule{0pt}{#1\baselineskip}\dotfill}\\}}
\def\DashedPage{\newpage\DottedLines[2.5]{15}\newpage}

\makeatletter
% set initial contents for second pages and start it
% only to be called once!
\newcommand{\EverySecondPage}[1]{\gdef\@esp@content{#1}\@everysecondpage}
% to change the contents for second pages
\newcommand{\ChangeEverySecondPage}[1]{\gdef\@esp@content{#1}}
% suppress subsequent second pages
\newcommand{\NomoreEverySecondPage}{\global\let\@esp@content\relax}
% internal macro
\newcommand{\@everysecondpage}{\afterpage{\@esp@content\@everysecondpage}}
% necessary, otherwhise there will be two pages at the end
\AtEndDocument{\NomoreEverySecondPage}
\makeatother

\begin{document}
\EverySecondPage{\DashedPage}
\lipsum[1-12]

\ChangeEverySecondPage{\notespage[notesstyle=lines,vparts=25,titletext={Your comments:}]}
\lipsum[13-25]

\NomoreEverySecondPage
\begin{tcolorbox}[title=Just a test,breakable]
\lipsum[1-10]
\end{tcolorbox}

\ChangeEverySecondPage{\notespage[hparts=20,titletext={Your comments:}]}
\begin{tcolorbox}[title=And another test,breakable]
\lipsum[11-20]
\end{tcolorbox}
\end{document}

结果如下:

在此处输入图片描述

相关内容