接收数字 #1 并返回 #1-1 的包

接收数字 #1 并返回 #1-1 的包

我正在使用计数器,但是索引遇到了一些问题。

这是我的问题:

\arabic{#1}我正在使用带有一些输入的命令#1。但我需要打印\arabic{#1-1}

我想知道是否有某个包可以接收一个数字#1并返回该数字#1-1

答案1

我认为,您的意思是\@arabic而不是\arabic?前者需要一个数字,后者需要一个计数器名称。

可以通过 e-TeX 以可扩展的方式完成计算\numexpr

\@arabic{\numexpr(#1)-1\relax}

软件包intcalc还支持非 e-TeX:

\@arabic{\intcalcDec{#1}}

这两个命令都运行良好:

\documentclass{article}
\usepackage{intcalc}

\makeatletter
\newcommand*{\testA}[1]{\@arabic{\numexpr(#1)-1\relax}}
\newcommand*{\testB}[1]{\@arabic{\intcalcDec{#1}}}
\makeatother

\begin{document}
\testA{1}, \testA{2}, \dots, \testA{1000}

\testB{1}, \testB{2}, \dots, \testB{1000}
\end{document}

结果

相关内容