假设我想在 中使用 enumerate \list
。在我的示例中,第一个 enumerate ( 之前some text
) 工作正常,但第二个 enumerate ( 之后some text
) 不工作。我想知道为什么。
\documentclass[12pt]{article}
\usepackage{enumerate}
\newcounter{questioncounter}
\newenvironment{question}{%
\refstepcounter{questioncounter}
\list{\thequestioncounter .}{%
\item
}}{\endlist}
\begin{document}
\begin{question}
\begin{enumerate}[(i)]
\item enumerate 1, item 1 (OK)
\item enumerate 1, item 2 (OK)
\end{enumerate}
some text (OK)
\begin{enumerate}[(i)]
\item enumerate 2, item 1 (NOT OK)
\item enumerate 2, item 2 (NOT OK)
\end{enumerate}
\end{question}
\end{document}
答案1
enumerate
,至少在其标准版本中,from也在内部latex.ltx
使用\list
。外部的\list
fromquestion
环境` 和内部的 from 环境` 会相互干扰,最好将它们分组,以保护列表深度/枚举深度计数器。
\list
我完全不明白为什么要使用外部。
我提供了两种方法——enumitem
及其shortlabels
选项以及更复杂的label=...
方法。
在我看来,使用enumitem
这些indent/leftmargin
功能将提供一种更少的方法。\list
\documentclass[12pt]{article}
\usepackage[shortlabels]{enumitem}
\newcounter{questioncounter}
\newenvironment{question}{%
\refstepcounter{questioncounter}
\list{\thequestioncounter .}{%
\item
\begingroup
}%
\endgroup
}{\endlist}
\begin{document}
\begin{question}
\begin{enumerate}[(i)]
\item enumerate 1, item 1 (OK)
\item enumerate 1, item 2 (OK)
\end{enumerate}
% Some text (OK)
\begin{enumerate}[(i)]
\item enumerate 2, item 1 (Now OK)
\item enumerate 2, item 2 (Now OK)
\end{enumerate}
\end{question}
With more sophisticated \verb!enumitem! - features
\begin{question}
\begin{enumerate}[label={(\alph*)}]
\item enumerate 1, item 1 (OK)
\item enumerate 1, item 2 (OK)
\end{enumerate}
% Some text (OK)
\begin{enumerate}[label={(\alph*)}]
\item enumerate 2, item 1 (Now OK)
\item enumerate 2, item 2 (Now OK)
\end{enumerate}
\end{question}
\end{document}