我想枚举如下列表:
A1, B1, A2, B2,...An, Bn
是否可以?
我的列表应该导致
A1. First Item
B1. Second Item
A2. Third Item
B2. Fourth Item
答案1
定义两个计数器Ax
和Bx
可能是一个解决方案,有效地使用\item[\theAx]
和\item[\theBx]
在每次使用时增加它们......在序言中分别定义为\itemA
和\itemB
。
\documentclass{article}
\newcounter{Ax}
\newcounter{Bx}
\newcommand{\itemA}{%
\addtocounter{Ax}{1}
\item[A\theAx.]}
\newcommand{\itemB}{%
\addtocounter{Bx}{1}
\item[B\theBx.]}
\begin{document}
\noindent
It is always possible to do run two enumerate-series in parallel
by defining two \texttt{counters}--- \texttt{Ax} and \texttt{Bx}.
\begin{enumerate}
\itemA Series A--- point \# 1
\itemB Series B--- point \# 1
\itemA Series A--- point \# 2
\itemB Series B--- point \# 2
\itemB Series B--- again
\itemB Series B--- once more
\itemA Series A--- next point\ldots\ probably \# 3
\end{enumerate}
\end{document}
答案2
您可以使用series
和resume*
enumitem 中的键,但是如果您的列表真的很长,编码可能会很繁琐。
这个想法是定义第一个系列,计数器以字母 A 为前缀,另一个系列以 B 为前缀,在项目之后结束每个系列,然后开始另一个系列,以单个项目结束它,然后恢复第一个系列,依此类推。这里有一小段代码来展示它是如何进行的:
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=A\arabic*., topsep=0pt, series=A]
\item First item
\end{enumerate}
\begin{enumerate}[label=B\arabic*., topsep=0pt, series=B]
\item Second item
\end{enumerate}
\begin{enumerate}[resume*=A]
\item Third item
\end{enumerate}
\begin{enumerate}[resume*=B]
\item Fourth item
\end{enumerate}
\end{document}
答案3
如果定义了一些命令来以正确的方式表示枚举计数器,则文档本身的语法会更简单。然后可以使用enumitem
命令来设置标签来定义列表。
\documentclass{article}
\usepackage{enumitem}
\makeatletter
\newcount\a
\def\calternum#1{\expandafter\c@lternum\csname c@#1\endcsname}
\def\c@lternum#1{%
\ifodd#1%
\a=\number#1%
\advance\a by 1%
\divide\a by 2%
A\the\a%
\else%
\a=\number#1%
\divide\a by 2%
B\the\a%
\fi
}
\makeatother
\AddEnumerateCounter{\calternum}{\c@lternum}{A99}
\newlist{alternum}{enumerate}{1}
\setlist[alternum]{
label=\calternum*.
}
\begin{document}
\begin{alternum}
\item First item
\item Second item
\item Third item
\item Fourth item
\item Fifth item
\item Sixth item
\item Seventh item
\end{alternum}
\end{document}