我想要一些看起来像这样的东西:
1.
A.
B.
C.
D.
2.
F.
G.
H.
J.
3.
A.
B.
C.
D.
如此循环下去。注意字母有时不是连续的。
到目前为止
\renewcommand{\labelenumii}{\textbf{\Alph{enumii}.}}
\begin{enumerate}
\item
\begin{enumerate}
\item foo
\item foo
\item foo
\item foo
\end{enumerate}
\item
\begin{enumerate}
\item foo
\item foo
\item foo
\item foo
\end{enumerate}
\end{enumerate}
但显然这只是一遍又一遍地循环 A、B、C 和 D。
答案1
定义一个新的计数器表示,使用计数器的值模 8。最简单的方法是使用expl3
。然后用enumitem
定义一个合适的列表。
\documentclass{article}
\usepackage{enumitem,xparse}
\newlist{nelson}{enumerate}{1}
\setlist[nelson,1]{label=\nelsonalph*.,resume}
\AddEnumerateCounter{\nelsonalph}{\donelsonalph}{D}
\newcommand{\nelsonalph}[1]{\expandafter\donelsonalph\csname c@#1\endcsname}
\ExplSyntaxOn
\cs_new:Npn \donelsonalph #1
{
\int_case:nn { \int_mod:nn { #1 } { 8 } }
{
{0}{J}
{1}{A}
{2}{B}
{3}{C}
{4}{D}
{5}{E}
{6}{F}
{7}{G}
}
}
\ExplSyntaxOff
\begin{document}
\begin{enumerate}
\item
\begin{nelson}
\item foo
\item foo
\item foo
\item foo
\end{nelson}
\item
\begin{nelson}
\item foo
\item foo
\item foo
\item foo
\end{nelson}
\item
\begin{nelson}
\item foo
\item foo
\item foo
\item foo
\end{nelson}
\end{enumerate}
\end{document}
答案2
您可以使用series
以下设施enumitem
\documentclass{Article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item
\begin{enumerate}[label=\Alph*.,series=myseries]
\item foo
\item foo
\item foo
\item foo
\end{enumerate}
\item
\begin{enumerate}[resume*=myseries,start=6] %% start at F.
\item foo
\item foo
\item foo
\item foo
\end{enumerate}
\item
\begin{enumerate}[resume*=myseries,start=1] %% start at A. again
\item foo
\item foo
\item foo
\item foo
\end{enumerate}
\end{enumerate}
\end{document}
答案3
这是一个使用选项enumitem
和你自己的柜台:
\documentclass{article}
\usepackage{enumitem}
\newcounter{cycleenum}
\newcommand{\cyclealph}[1]{%
\ifcase\value{#1}% 0
\or A% 1
\or B% 2
\or C% 3
\or D% 4
\or F% 5
\or G% 6
\or H% 7
\or J% 8
\or \setcounter{#1}{1}\cyclealph{#1}%
\fi}
\newcommand{\cycleitem}{\refstepcounter{cycleenum}\item[\textbf{\cyclealph{cycleenum}.}]}
\begin{document}
\begin{enumerate}
\item
\begin{enumerate}[series=cyclealph]
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\end{enumerate}
\item
\begin{enumerate}[resume,series=cyclealph]
\cycleitem foo
\cycleitem foo
\cycleitem foo
\cycleitem foo
\end{enumerate}
\end{enumerate}
\end{document}