我需要为我的学生提供答题纸来记录他们的答案。当有分页符时,我希望新页面显示问题的完整嵌套编号,而不仅仅是最深的嵌套编号。
用下面的工作示例来说明:第二页只显示“ii”。因为这是一个新页面,所以我想显示:“2. (b) ii”。我搜索了论坛并查看了 enumitem 文档,但找不到解决方案。理想情况下,我只想在新页面中显示完整的嵌套数字。
\documentclass[12pt]{article}
\usepackage{fullpage}
\begin{document}
\begin{enumerate}
\item
\begin{enumerate}
\item \rule{0pt}{0.0mm} \vspace{8em}
\item \rule{0pt}{0.0mm} \vspace{16em}
\end{enumerate}
\item
\begin{enumerate}
\item \rule{0pt}{0.0mm} \vspace{12em}
\item
\begin{enumerate}
\item \rule{0pt}{0.0mm} \vspace{8em}
\newpage{}
\item \rule{0pt}{0.0mm} \vspace{8em}
\end{enumerate}
\end{enumerate}
\end{enumerate}
end{document}
答案1
一种可能的方法是使用包\AtBeginShipout
中的atbegshi
宏。此宏在页面输出时执行代码,即当 LaTeX 完成页面渲染并准备将页面发送到输出文件时。您可以使用此钩子临时更改标签,enumerate
并在使用后立即将其改回。
梅威瑟:
\documentclass[12pt]{article}
\usepackage{fullpage}
\usepackage{atbegshi}
\begin{document}
\AtBeginShipout{%
\gdef\labelenumiii{\arabic{enumi}(\alph{enumii})\roman{enumiii}.\gdef\labelenumiii{\roman{enumiii}.}}%
}
\begin{enumerate}
\item
\begin{enumerate}
\item \rule{0pt}{0.0mm} \vspace{8em}
\item \rule{0pt}{0.0mm} \vspace{16em}
\end{enumerate}
\item
\begin{enumerate}
\item \rule{0pt}{0.0mm} \vspace{12em}
\item
\begin{enumerate}
\item \rule{0pt}{0.0mm} \vspace{8em}
\newpage{}
\item\label{first} xyz
\item abc
\end{enumerate}
\end{enumerate}
\end{enumerate}
ref: \ref{first}
\end{document}
结果:
似乎引用工作正常。请注意,如果您也想完整打印此类标签,则应为其他级别(\labelenumi
和等)添加重新定义。\labelenumii