当我在LaTeX中编写数学时,我经常需要对我的LaTeX源中的数字执行简单的算术运算,比如515.1544 + 454 = ???
.
我通常将LaTeX代码复制粘贴到Google中以获得结果,但我仍然需要手动更改语法,例如
\ frac {154,7} {25} - (289 - \frac {1337} {42})
必须改为
154,7/25 - (289 - 1337/42)
为最常用的操作编写程序来执行此操作似乎微不足道.有没有一个理解这种语法的计算器?
编辑:我知道完美地做这件事是不可能的(因为停止问题).为我需要的简单案例做这件事是微不足道的.\ frac,\ cdot,\ sqrt和其他一些标签就行了.该程序可能只是为它不理解的情况返回错误.
WolframAlpha可以以TeX形式输入.
http://blog.wolframalpha.com/2010/09/30/talk-to-wolframalpha-in-tex/
LaTeXCalc项目旨在实现这一目标.它将读取TeX文件并进行计算.有关更多信息,请访问主页http://latexcalc.sourceforge.net/
该计算的包可以让你在源,但仅限于类似的命令做一些计算\setcounter
和\addtolength
.据我所知,这不是你想要的.
如果你已经使用了sage,那么sagetex包非常棒(如果没有,那就太过分了).它允许您从输入中获得格式良好的输出,如下所示:
The square of $\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}$ is \sage{matrix([[1, 2], [3,4]])^2}. The prime factorization of the current page number is \sage{factor(\thepage)}
正如Andy所说,答案是肯定的,有一个计算器可以理解大多数乳胶配方:Emacs.
尝试以下步骤(假设为vanilla emacs):
打开emacs
打开.tex文件(或激活乳胶模式)
将点定位在两个$$之间或者例如在公式(或甚至矩阵)的开始/结束环境中.
使用calc嵌入模式可以获得最大的惊人效果
所以你在上面给出的公式中有一点:
$\frac{154,7}{25} - (289 - \frac{1337}{42})$
按下C-x * d
以复制下面一行中的公式,然后输入calc-embedded
已经为您激活了乳胶变量calc的模式.您的缓冲区现在看起来像这样:
$\frac{154,7}{25} - (289 - \frac{1337}{42})$ $\frac{-37651}{150}$`
请注意,已尽可能转换的分数.再次执行相同操作(C-x * d
)并按下c f
将小数转换为浮点数会产生以下缓冲区:
$\frac{154,7}{25} - (289 - \frac{1337}{42})$ $\frac{-37651}{150}$ $-251.006666667$
我曾经C-x * d
复制公式然后进入嵌入模式以获得中间值,但是也C-x * e
有避免重复并且只是进入当前公式的嵌入模式.
如果您有兴趣,您应该查看Emacs Calc - Embedded Mode的信息页面.一般来说,Gnu Emaca Calculator的帮助以及令人敬畏的互动教程.
考虑到LaTeX本身是图灵完备的标记语言,我强烈怀疑你可以构建这样的东西,而不是直接构建到LaTeX中.此外,LaTeX数学matkup本身几乎没有语义含义,它只描述了视觉外观.
话虽这么说,你可能会破解一些识别LaTeX数学标记的非可编程子集并以相同方式吐出结果的东西.如果您感兴趣的只是简单的算术,包含分数和整数(但要注意小数部分,因为它们可能3{,}141...
在德语文本中显示:))这不应该太难.但是一旦你从积分,矩阵等开始,我担心LaTeX缺乏准确描述你的意图的表现力.毕竟它是一个文件准备系统,因此不太适合作为计算机代数系统的输入.
旁注:您可以切换到其当前版本的Word - 一种数学标记语言,该语言与LaTeX类似,但对于更简单的术语仍然适合Google:
数学标记在Microsoft Word http://hypftier.de/dump/word_math_1.png中的插图
使用免费的Microsoft Math加载项,您甚至可以让Word就地计算表达式:
Microsoft Word的Microsoft Math加载项的插图,计算表达式http://hypftier.de/dump/word_math_2.png
您可以在(通常是带有某些R的TeX)文件上运行一个称为Sweave的R函数,该函数可以将R表达式替换为Tex中的结果。
可以在这里找到教程:http : //www.scribd.com/doc/6451985/Learning-to-Sweave-in-APA-Style