虽然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}