处理数字和计算

处理数字和计算

我必须处理我的 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}

相关内容