获取计数器的绝对值

获取计数器的绝对值

我正在尝试获取计数器的绝对值,但在网上找不到任何东西,似乎自己也想不出解决方案。目标不是获取绝对值符号(有很多可以找到),而是获取实际值,就像Math.abs(-1)在 JS 中一样。

目标描述(JS 格式)

有人知道如何实现这一点吗?

答案1

当 TeX 想要处理时\number,它会进行宏扩展;因此当计数器的值为负时,我们可以添加一个减号。

\documentclass{article}

\newcommand{\absolutearabic}[1]{%
  \number\ifnum\value{#1}<0 -\fi\value{#1}%
}

\newcounter{test}

\begin{document}

\setcounter{test}{2}
\absolutearabic{test}

\setcounter{test}{-3}
\absolutearabic{test}

\end{document}

在此处输入图片描述

答案2

两种方法:使用 进行字符串处理xstring以删除任何字符,或使用-进行适当计算。如果计数器为正数,则这两种方法都有效。abs()xfp

\documentclass{article}
\usepackage{xstring}
\usepackage{xfp}
\newcounter{negcnt}
\setcounter{negcnt}{-5}
\begin{document}
counter: \thenegcnt

abs xstring: \StrDel{\thenegcnt}{-}

abs xfp: \fpeval{abs(\value{negcnt})}
\end{document}

结果:

在此处输入图片描述

相关内容