中断文件及其辅助材料

中断文件及其辅助材料

假设我想创建一个课堂文本。进一步假设,作为一名讲师,我想我的文本副本包含大量辅助材料(笔记、练习答案、黑板示例等)。大量的附加材料无法舒适地放在页边空白处,因此我想要做的是在每个部分的末尾添加额外的插入页,这样,如果我从我的文本版本中删除它们,则生成的页面将与学生的版本完全相同(以便页码完全对应)。

这是一个简单的在环境中添加或删除材料的最小工作示例ancillary

\documentclass{article}
\usepackage{lipsum}
\usepackage{verbatim}

\newif\ifshowancil \showanciltrue

\ifshowancil
\newenvironment{ancillary}%
    {\itshape
    \newpage
    %And other stuff...
    }%
    {\newpage
    %And other stuff...
    }
\else
\newenvironment{ancillary}{\comment}{}
\fi

\begin{document}

\lipsum[1-20]

\begin{ancillary}
\textbf{Here is the beginning.}
\lipsum[21-30] 
\textbf{And the end.}
\end{ancillary}

\lipsum[31-40]

\end{document}

我希望anciltrue版本编译后与ancilfalse版本相同,但环境中的内容ancillary排版独立于文档的其余部分,从下一页开始(像浮点数一样),使用“临时”页码(例如,如果它在第 30 页之后,则为 30a、30b 等)。

这样的方案是否可行且不需要太多的劳动?我认为解决方案需要修改输出例程,因此有了这个标签。

答案1

\documentclass{article}
\usepackage{lipsum}
\usepackage{afterpage,environ,pageslts,fancyhdr}
\AtBeginDocument{%
  \pagenumbering{arabic}%
}
\pagestyle{fancy}
\renewcommand\headrulewidth{0pt}
\fancyhf{}
\fancyhf[cf]{\thepage}
\fancypagestyle{fancil}{%
  \fancyhf{}%
  \fancyhf[cf]{\arabic{savepage}(\thepage)}%
}
\newcounter{savepage}

\newif\ifshowancil \showanciltrue
% \showancilfalse

\ifshowancil
  \newcommand\saveancil{}%
  \environbodyname\envancil
  \NewEnviron{ancillary}%
  {%
    \global\let\saveancil\envancil
    \setcounter{savepage}{\thepage}%
    \afterpage{%
      \pagenumbering{roman}%
      \pagestyle{fancil}%
      \itshape
      \saveancil
      \newpage
      \pagenumbering{arabic}%
      \pagestyle{fancy}%
    }%
  }
\else
  \NewEnviron{ancillary}{}{}
\fi

\begin{document}

\lipsum[1-20]

\begin{ancillary}
\textbf{Here is the beginning.}
\lipsum[21-30]
\textbf{And the end.}
\end{ancillary}

\lipsum[31-40]

\end{document}

附属的

相关内容