如何在 exsheets 问题中恢复 enumi?

如何在 exsheets 问题中恢复 enumi?

\setcounter{enumi}{\thetemp}我可以在第一个项目之前添加,\setcounter{temp}{\theenumi}在最后一个项目之后添加,这样就temp可以恢复我的新计数器了。但是这种方法看起来不太优雅。我不想手动输入这些调整。有没有更好的方法通过修补来注入这些调整?

\documentclass{article}
\usepackage{exsheets}
\usepackage{enumitem}

\begin{document}
\begin{question}
\begin{enumerate}[label=\arabic*.]
    \item one
    \item two
\end{enumerate}
\end{question}
\begin{solution}
\end{solution}

\begin{question}
\begin{enumerate}[resume,label=\arabic*.]
    \item must be three rather than one.
    \item must be four rather than two.
\end{enumerate}
\end{question}
\begin{solution}
\end{solution}
\end{document}

在此处输入图片描述

答案1

如果您希望整个文档中的“子问题”使用同一系列进行编号,则可以使用以下命令:

\documentclass{article}
\usepackage{exsheets}

\newcounter{globalenumerate}
\newenvironment{genumerate}
 {\begin{enumerate}\setcounter{enumi}{\value{globalenumerate}}}
 {\setcounter{globalenumerate}{\value{enumi}}\end{enumerate}}

\begin{document}
\begin{question}
\begin{genumerate}
    \item one
    \item two
\end{genumerate}
\end{question}
\begin{solution}
\end{solution}

\begin{question}
\begin{genumerate}
    \item must be three rather than one.
    \item must be four rather than two.
\end{genumerate}
\end{question}
\begin{solution}
\end{solution}
\end{document}

这不会影响 的其他用途enumerate

在此处输入图片描述

答案2

您可以使用以下series密钥:

\documentclass{article}
\usepackage{exsheets}
\usepackage{enumitem}

\begin{document}

\begin{question}
\begin{enumerate}[label=\arabic*., series=A]%
    \item one
    \item two
\end{enumerate}
\end{question}
\begin{solution}
\end{solution}

\begin{question}
\begin{enumerate}[resume*=A]
    \item must be three rather than one.
    \item must be four rather than two.
\end{enumerate}
\end{question}
\begin{solution}
\end{solution}

\end{document} 

在此处输入图片描述

答案3

enumitem软件包有一个resume选项,您正尝试使用它。但是,此选项仅在本地有效,即不适用于其他编号环境。但是,该软件包还提供了一种方法,可使恢复功能全局应用;有关完整详细信息,请参阅软件包用户指南第 3.5 节。的全局形式resume与的局部形式不同,resumeresume指向一个“系列”。我建议您创建一个专用的枚举类环境(称为myenum),如下所示:

\newlist{myenum}{enumerate}{1}
\setlist[myenum]{label=\arabic*.,resume=xyz}

这样,您仍然可以访问enumerate文档其他地方的“常规”环境。

完整的 MWE(我将跳过屏幕截图):

\documentclass{article}
\usepackage{exsheets}
\usepackage{enumitem}
\newlist{myenum}{enumerate}{1}
\setlist[myenum]{label=\arabic*.,resume=xyz}

\begin{document}
\begin{question}
\begin{myenum}
    \item one
    \item two
\end{myenum}
\end{question}
\begin{solution}
\end{solution}

\begin{question}
\begin{myenum}
    \item three
    \item four
\end{myenum}
\end{question}
\begin{solution}
\end{solution}
\end{document}

相关内容