如何在 latexcalc 的计算宏中重复使用术语?

如何在 latexcalc 的计算宏中重复使用术语?

虽然latexcalc似乎不再处于积极开发中,我想知道是否可以重复使用我想要显示和计算但只维护一次的术语,例如

\def\myterm{1+2+4 \cdot{\frac{1}{2}}}
$\myterm = \calc{\myterm}$

我预计结果会是

1+2+4*1/2 = 5

如果参数中放置了用户定义的宏,则\calc和都会\varcalc失败。如果用 定义术语,则结果相同,例如。error (line xy): empty or invalid equation block\newcommand\newcommand{\myterm}{...}

我理解问题在于,latexcalc命令行上明确调用了一个外部程序,并且显然没有解析文档中的宏定义,也没有在第二次运行计算之前替换它们。我只是想确保我没有错过任何与解决方法有关的内容。

使用sagetex是不可接受的,因为它不能处理 LaTeX 标记,例如,\frac这会大大降低可重用性。

我在 Ubuntu 14.10 上使用 latexcalc 1.0.1。

可编译示例(带有latexcalc --pdflatex /path/to/file.tex):

\documentclass{article}
\begin{document}
\def\myterm{1+2+4 \cdot \frac{1}{2}}
$\myterm = \calc{\myterm}$
\end{document}

\varcalc也不起作用:

\documentclass{article}
\begin{document}
\def\myterm{1+2+4 \cdot \frac{1}{2}}
$\varcalc{x}{\myterm} \solver{x} \myterm = \answer$
\end{document}

(失败

error   (line 4): empty or invalid equation block
error   (line 4): undefined variable x`

\solver)和的组合也是如此\answer,例如

\documentclass{article}
\begin{document}
\def\myterm{1+2+4 \cdot \frac{1}{2}}
$ \solver{\myterm} \myterm = \answer$
\end{document}

(失败error (line 4): empty or invalid equation block)。

答案1

您可以做类似的事情,但仅从给出的信息很难判断它是否符合您的目的。

\documentclass{article}
\usepackage{pgfmath}
\newcommand*\calc[1]{%
  \pgfmathparse{#1}\pgfmathresult}
\begin{document}
\def\myterm{1+2+4}
$\myterm = \calc{\myterm}$
\end{document}

相关内容