我有以下乳胶代码:
\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以显示我的意思)
答案 0 :(得分:3)
为了讨论LaTeX问题,请您访问tex.stackexchange.com。
答案 1 :(得分: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包是最好的方法。