在 \setcounter 中计算一个值

在 \setcounter 中计算一个值

我正在使用一个enumerate列表。我经常想减少列表的计数器,以获得如下输出:

1. Some text here
2. Some more text here
2. This is a re-use of the number
3. The counter increments
3. Decrement the counter just before this \item

我希望这样做\setcounter{enumi}{\value{enumi}+1},但它不进行算术运算,它只是+1在 PDF 输出中写入。

答案1

您可能希望使用\addtocounter指令 -- 具体来说\addtocounter{enumi}{-1}-- 来实现您的目标。以下 MWE 显示了如何做到这一点。

在此处输入图片描述

\documentclass{article}
\begin{document}
\begin{enumerate}
\item Some text here
\item Some more text here
\addtocounter{enumi}{-1}
\item This is a re-use of the number
\item The counter increments
\addtocounter{enumi}{-1}
\item Decrement the counter just before this \texttt{\textbackslash item}
\end{enumerate}
\end{document}

如果您发现自己\addtocounter{enumi}{-1}经常执行,您可能需要\decri在文档的序言中创建一个名为(“减少项目计数器”的缩写)的快捷宏:

\makeatletter
\newcommand{\decri}{\addtocounter{@enumctr}{-1}}
\makeatother

此定义的优点是,\decri将根据当前枚举列表的深度,根据需要自动对enumienumii等进行操作。即,无需提供单独的宏来减少 LaTeX 的第一级、第二级等枚举计数器。致谢:关于继续工作的这一点,我要感谢@enumctr@egreg。

相关内容