我有一个枚举环境
\begin{enumerate}[font={\bfseries}, label={\arabic*}, wide=0pt, labelindent=1em, leftmargin=*]
\item
\end{enumerate}
其中 \arabic 以 1 为步长计数(1、2、3、4 等)我知道,我可以在 \arabic* 后面放一个 0,但我想知道是否有任何功能可以更改枚举的计数器步骤
答案1
这是为任何算术级数定义计数器表示的一种方法。
\documentclass{article}
\usepackage{xparse,enumitem}
\ExplSyntaxOn
\cs_new:Nn \progression_evaluate:nnn
{% #1 = start, #2 = difference, #3 = counter name
\int_eval:n { #1 + ( #3 - 1 ) * #2 }
}
\cs_generate_variant:Nn \progression_evaluate:nnn { nnc }
\NewDocumentCommand{\defineprogression}{mmm}
{% #1 = macro name, #2 = start, #3 = difference
\cs_new:cn { __progression_\cs_to_str:N #1:n }
{
\progression_evaluate:nnc { #2 } { #3 } { c@##1 }
}
\NewExpandableDocumentCommand{#1}{m}
{
\use:c { __progression_\cs_to_str:N #1:n } { ##1 }
}
\exp_args:NNc \AddEnumerateCounter #1 { __progression_\cs_to_str:N #1:n } { 0 }
}
\ExplSyntaxOff
\defineprogression{\bytens}{10}{10}
\defineprogression{\foo}{1}{5}
\newlist{tens}{enumerate}{1}
\setlist[tens,1]{
label=\bytens*.,ref=\bytens*,
font=\bfseries,
wide=0pt,
labelindent=1em,
leftmargin=*
}
\begin{document}
This is numbered by tens
\begin{tens}
\item A
\item B
\item\label{C} C
\end{tens}
This is numbered like foo
\begin{enumerate}[label=\foo*.,ref=\foo*]
\item AA
\item BB
\item\label{CC} CC
\end{enumerate}
References: \ref{C} and \ref{CC}
\end{document}