首先,抱歉我的英语不好,我目前正在学习。
是否存在任何形式,可以在本地环境中先设置数字,然后将其括在括号中?我正在创建我的个人labelist
环境,我遇到了同样的问题。首先是我的预期输出,然后是我的实际代码:
(A) Item 1
(A.1) Other item
(A.2) Other item
(B) Item 2
(B.1) More items.
(B.1.1) Third level.
(B.1.2) Other third-level item.
(C) And so on
这是我的实际自定义环境的代码:
\newcounter{list@depth}
\setcounter{list@depth}{0}
\newenvironment{labelist}{%
\stepcounter{list@depth}
\ifnumcomp{\value{list@depth}}{=}{0}{
\begin{enumerate}[label=\Alpha*]
}{
\begin{enumerate}[label*=.\arabic*]
}
%% Here enclose the actual format between parenthesis
}{%
\ifnumcomp{\value{list@depth}}{=}{1}{
\setcounter{list@depth}{0}
}{
\addtocounter{list@depth}{-1}
}
\end{enumerate}
}
使用此代码,只有我得到这样的输出:
A Item 1
A.1 Other item
A.2 Other item
B Item 2
B.1 More items.
B.1.1 Third level.
B.1.2 Other third-level item.
C And so on
因为我只需要添加括号括起来的标签(“后验”格式)。
答案1
这是使用该enumitem
包的解决方案。
我第一次尝试使用了诸如label*=(\Alph*)
但当然这产生了诸如
(A)(A)
这并不是我们想要的。
下面我labelist
使用\newlist
命令创建了一个newlist环境,并且使用\setlist
命令结合计数器labelisti
(第一级),labelistii
(第二级),labelistiii
(第三级)。
\documentclass{article}
\usepackage{enumitem}
\newlist{labelist}{enumerate}{5}
\setlist[labelist,1]{label*=(\Alph*)}
\setlist[labelist,2]{label=(\Alph{labelisti}.\arabic{labelistii})}
\setlist[labelist,3]{label=(\Alph{labelistii}.\arabic{labelistii}.\arabic{labelistiii})}
\setlist[labelist,4]{label=(\Alph{labelistii}.\arabic{labelistii}.\arabic{labelistiii}.\arabic{labelistiv})}
\setlist[labelist,5]{label=(\Alph{labelistii}.\arabic{labelistii}.\arabic{labelistiii}.\arabic{labelistiv}.\arabic{labelistv})}
\begin{document}
\begin{labelist}
\item First level
\begin{labelist}
\item Second level
\item Second level
\begin{labelist}
\item Third level
\item Third level
\end{labelist}
\end{labelist}
\item First level
\begin{labelist}
\item Second level
\item Second level
\begin{labelist}
\item Third level
\item Third level
\begin{labelist}
\item Fourth level
\item Fourth level
\begin{labelist}
\item Fifth level
\item Fifth level
\end{labelist}
\end{labelist}
\end{labelist}
\end{labelist}
\end{labelist}
\end{document}