![处理数字和计算](https://linux22.com/image/302242/%E5%A4%84%E7%90%86%E6%95%B0%E5%AD%97%E5%92%8C%E8%AE%A1%E7%AE%97.png)
我必须处理我的 latex 文档中的大量数字。到目前为止,我一直在使用基本方法\newcommand{\VarOne}{1000}
进行定义,然后像在文档中\VarOne
一样使用它。\VarOne{}
我可以使用 LaTeX 执行基本运算,例如加/减/乘/除数字--整数/非整数吗?
另外,有没有办法打印用逗号分隔的非整数值?那么,\newcommand{\VarOne}{1000.97}
在文档中使用时会产生 1,000.97?我只能使用\newcommand\mynum[1]{\num[group-separator={,},group-minimum-digits=4]{\the\numexpr(#1)\relax}}
宏对整数执行此操作。
答案1
是的。这是 LaTeX3 的实现:
\documentclass{article}
\usepackage{expl3, xparse, siunitx}
\ExplSyntaxOn
\NewDocumentCommand { \calcnum } { O{} m }
{ \num [ round-mode=places , round-precision=2 , group-separator={,}, group-minimum-digits=4, #1] { \fp_to_decimal:n {#2} } }
\ExplSyntaxOff
\begin{document}
\calcnum{1000.97}
\newcommand{\VarOne}{1000.97}
\calcnum{\VarOne}
\calcnum{\VarOne+13}
\calcnum{\VarOne + 2*\VarOne / 3 - \VarOne}
\end{document}
输出为
1,000.97
1,000.97
1,013.97
667.31
答案2
pgf
您也可以使用数学引擎:
笔记:
- 除了
siunitx
的\num
宏之外,您还可以使用它\pgfmathprintnumber
来控制数值结果的格式。
代码:
\documentclass{article}
\usepackage{pgfmath}
\usepackage{siunitx}
\newcommand{\calcnum}[1]{%
\pgfmathparse{#1}%
\num[group-separator={,},group-minimum-digits=4]{\pgfmathresult}%
}
\begin{document}
\calcnum{1000.97}
\newcommand{\VarOne}{1000.97}
\calcnum{\VarOne}
\calcnum{\VarOne+13}
\calcnum{\VarOne + 2*\VarOne / 3 - \VarOne}
\end{document}