我有以下一段乳胶代码:
\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 来表明我的意思)
我有以下一段乳胶代码:
\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 来表明我的意思)
如需讨论 LaTeX 问题,请访问tex.stackexchange.com。
您需要记住这\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包是最好的方法是正确的。