我正在使用计数器,但是索引遇到了一些问题。
这是我的问题:
\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}