2

我有以下一段乳胶代码:

\def\a{1}
\def\b{2}
\def\c{\a+\b}
\def\d{\c/2}

我预计 \d 的值为 1.5。但它没有。但是,将括号添加到 \c 的定义中

\def\c{\a+\b}

也不起作用,因为如果我在某处使用 \c ,它会抱怨括号。有没有办法在 \d 的定义中除以 2 之前评估 \c?喜欢:

\def\d{\eval{\c}/2}

(我做了那个 \eval 来表明我的意思)

4

2 回答 2

3

您可以使用calc包进行算术运算。包fp适用于实数。

如需讨论 LaTeX 问题,请访问tex.stackexchange.com

于 2010-08-19T17:24:19.547 回答
2

您需要记住这\def是关于创建替换文本。除了对数学一无所知之外,它总会把你投入的东西还给你。如果我们假设您正在使用 e-TeX(可能),那么对于整数表达式,您可能会这样做

\def\a{1}
\def\b{2}
\edef\c{\number\intexpr \a + \b \relax}
\edef\d{\number\intexpr \c / 2 \relax}

这使用了 e-TeX 原语\intexpr,它进行整数数学运算。对于实数,Stefan 认为fp包是最好的方法是正确的。

于 2010-08-19T21:31:30.287 回答