我正在使用枚举列表,有时我想替换显示的标签而不影响底层计数和引用机制。我知道如何逐个使用\addtocounter
来恢复后续项目的编号,但这还不足以引用。此外,\addtocounter
逐个使用会增加负担,我想一一指定行为。我正在使用它enumitem
来定义我自己的枚举启发列表。
有没有什么办法可以改变默认的计数行为,而不用逐个修改\addtocounter
?
\documentclass{article}
\begin{document}
\begin{enumerate}
\item A
\item[x] B
\item C (The label should be 3, but displays 2)
\end{enumerate}
\begin{enumerate}
\item A
\addtocounter{enumi}{1}
\item[x] \label{two} B \ref{two} (The ref should be 2 but displays 1)
\item \label{three} C \ref{three} (The label and the ref are 3 as desired)
\end{enumerate}
\end{document}
答案1
尝试使用\refstepcounter
而不是\addtocounter
并创建一个新命令,例如\myitem
,以自动执行该步骤:
\documentclass{article}
\newcommand\myitem[1][]{\item[#1]\refstepcounter{enumi}}
\begin{document}
\begin{enumerate}
\item A
\item[x] B
\item C (The label should be 3, but displays 2)
\end{enumerate}
\begin{enumerate}
\item A
\myitem[x] \label{two} B \ref{two} (The ref should be 2 but displays 1)
\item \label{three} C \ref{three} (The label and the ref are 3 as desired)
\end{enumerate}
\end{document}