在考试中翻阅建议页面

在考试中翻阅建议页面

我喜欢在试卷上添加“翻页”建议,因为它会继续。现在,我手动执行此操作。我需要搜索页面结束的位置并添加

\vspace*{0.5cm}
\hfill \textit{Please turn \(\hookrightarrow\)}

在适当的位置。这不是一个非常好的解决方案,因为需要调整空间,这样它才不会落到下一页上。如果我必须这样做两次或更多次,垂直位置应该始终相同。有没有办法自动实现这一点?这是一个可以玩的最小工作示例。

\documentclass{minimal}
\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}

\begin{enumerate}
\item[\textbf{Task 1}]

\blindtext[5]

\item[\textbf{Task 2}]

\blindtext[3]

\vspace*{0.1cm}
\hfill \textit{Bitte wenden \(\hookrightarrow\)}

\item[\textbf{Task 3}]

\blindtext[2]

\end{enumerate}

\end{document}

答案1

该类exam恰恰提供了这种功能:例如,你可以编写

\documentclass{exam}

\pagestyle{headandfoot}

\runningfooter{}{}{%
  \oddeven{\iflastpage{}{\textbf{Turn over}}}{}
}

只在跨页的右侧放置翻页指示,而不在文档的最后一页放置翻页指示。

如果您想自己实现这一点,您可以看看exam它是如何实现的,但坦率地说,对于这种事情来说,这是一个非常有用的类,我建议您使用它,除非您有紧迫的理由不这样做。

(编辑添加:如果你确实想在不改变你的班级的情况下做到这一点,那么唯一的一点不是包中fancyhdr包含\iflastpage宏,可以相当容易地将其取出:

\makeatletter
\AtEndDocument{%
  \immediate\write\@mainaux
  {\string\gdef\string\mydoc@lastpage{\arabic{page}}}}

\def\iflastpage#1#2{%
  \@ifundefined{mydoc@lastpage}{\def\@@lastpage{-1}}%
          {\edef\@@lastpage{\mydoc@lastpage}}%
  \ifnum\value{page}=\@@lastpage\relax
    #1%
  \else
    #2%
  \fi
}
\makeatother

有了这些,你就可以在序言中使用

\usepackage{fancyhdr}
\fancyfoot{} % clear everything
\fancyfoot[RO]{\iflastpage{}{\textbf{Turn over}}}

以获得您想要的效果。

答案2

如果您想将文本移至右下角,请替换\vspace*{0.1cm}\vfill

还有其他几种方法可以在固定位置添加一些文本,例如 TikZ 及其(current page)节点。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand{\vs}{%
    \tikz[remember picture,overlay]{\node at
        ($(current page.south east)+(-2,3)$)
        [anchor=south east] {Bitte wenden!};}
}

\usepackage{lipsum}% blind text

\begin{document}
\vs
\lipsum[1-3]
\end{document}

您可以将\vs(volti subito) 宏放置在页面上的任何位置,文本始终位于与纸张右下角相同的位置。但是,使用此解决方案,您必须自己找到需要的页面\vs。我不知道您的文档结构,所以我无法判断是否有自动化版本……

答案3

另一种解决方案是使用包totpages对最后一页进行测试,但不使用任何@-ed 命令。此包在两次运行中提供打印纸张所需的总纸张数,我们可以将其与当前页面进行比较。

\documentclass{article}

\usepackage{lipsum}
\usepackage{ifthen}
\usepackage{eso-pic} % Needed only for my lazy definition of the turn-over mark

\newcommand{\turnoverifneeded}{%
  \ifthenelse{\equal{\thepage}{\TotSheets}}
  {}
  {Please turn around and turn the page over}% Redefine this as you wish
}

\AddToShipoutPictureBG{\AtPageLowerLeft \turnoverifneeded}% Same for this, can be replaced with a call to the fancyhdr features for example

\usepackage[pagespersheet=1]{totpages} % To be loaded last

\begin{document}

\lipsum[1-6]

\end{document}

相关内容