\documentclass[a4paper,11pt]{report}
\usepackage{enumitem}
\renewcommand{\labelenumi}{\bf Matter \arabic{enumi}.}
\renewcommand{\labelenumii}{\bf Matter \arabic{enumi}.\arabic{enumii}.}
\begin{document}
There are \ref{1-item} main matters in total.
\begin{enumerate}
\item bla1
\item bla2
\item This matter consists of \ref{2-item} submatter.
\begin{enumerate}
\item bla3
\item bla4\label{2-item}
\end{enumerate}
\item bla4 \label{1-item}
\end{enumerate}
\end{document}
\ref{2-item} = 3b
但\ref{2-item}
应该是2
。我们如何才能改变这种情况?
答案1
改变\labelenumi
等确实会影响参考值的存储方式。
使用包时enumitem
,不需要修改\labelenumi
等,而是用更改列表设置\setlist
。
label*=...
将父列表级别标签附加到当前项目标签,并ref=
更改参考格式。
请注意,\ref
在此上下文中不提供可扩展的数字,以防\ifnum
在更详细的文档中需要某些数字等。
\documentclass[a4paper,11pt]{report}
\usepackage{enumitem}
\setlist[enumerate]{leftmargin=*}
\setlist[enumerate,1]{label={\bfseries Matter \arabic*.},ref=\arabic*}}
\setlist[enumerate,2]{label*={\bfseries\arabic*},ref={\arabic*}}
\begin{document}
There are \ref{1-item} main matters in total.
\begin{enumerate}
\item bla1
\item bla2
\item This matter consists of \ref{2-item} submatter.
\begin{enumerate}
\item bla3
\item bla4\label{2-item}
\end{enumerate}
\item bla4 \label{1-item}
\end{enumerate}
\end{document}
答案2
如果文档仍然需要在某处使用“基本”枚举列表,那么使用包的机制enumitem
来定义一个新的枚举类列表(如下matter
例所示)可能是一个好主意,它 (a) 将标签“Matter”添加到枚举项的前缀,并且 (b) 将“Matter”标签和数字都排版为粗体。以下示例显示了如何执行此操作,最多可进行 3 级枚举。
\documentclass[a4paper,11pt]{report}
\usepackage{enumitem}
\newlist{matter}{enumerate}{3} % create a new enumerated list
\setlist[matter,1]{label={\bfseries Matter \arabic*.},
ref=\arabic*,
leftmargin=*}
\setlist[matter,2]{label={\bfseries Matter \thematteri.\arabic{matterii}.},
ref=\arabic*}
\setlist[matter,3]{label={\bfseries Matter \thematteri.\thematterii.\arabic{matteriii}.},
ref=\arabic*}
\begin{document}
\noindent
There are \ref{1-item} main matters in total.
\begin{matter}
\item bla1
\item bla2
\item bla3 -- This matter features \ref{2-item} submatters.
\begin{matter}
\item bla31
\item bla32\label{2-item}
\begin{matter}
\item bla321
\item bla322
\end{matter}
\end{matter}
\item bla4 \label{1-item}
\end{matter}
\end{document}