我试图将两个值相加,然后将它们乘以一个数字,但为了按此顺序进行操作,我必须使用括号。问题是,当我添加括号时,会出现编译错误。
下面是我正在做的事情的一个例子:
\value{#2} is 10.
\value{#1} is 5.
(\value{#1}+\value{#2})*.5
我想要达到的值是 7.5。上面的代码只有在添加括号时才会出错。
如果我做不带括号的等式,我会得到 10。
重要提示,我无法知道#1
或中的 2 个值#2
,我仅将值作为示例。
为了获得更多上下文,这是在节点中完成的。
\path (\value{#1}+\value{#2}*.5,-\value{cou}),-\value{cou}) node(msg) {node msg}
我现在的解决方案是制作一个计数器并将两个值相加然后乘以 1/2。
当前解决方案
\newcounter{avg}
\addtocounter{avg}{\value{#1}+\value{#2}}
\path (\value{avg}*.5,-\value{cou}) node(msg) {node msg}
答案1
如果有更多背景信息就更好了。也许这不是最终答案。
我觉得xfp
,与fpeval
,可以为您做到这一点。这是一个使用节号进行加法和乘法的简单示例。
\documentclass{article}
\usepackage{xfp}
\def\a{\fpeval{\value{section}*2+1}}
\def\b{\fpeval{round(sqrt(2)+2,3)}}
\newcommand\ccc[2]{%
\fpeval{(#1 * #2)*.5}}
\begin{document}
\section{test 1}
\a
\section{test 2}
\a
\begin{center}
\b
\ccc{2}{5}
\end{center}
\end{document}