我想利用Maxima作为后端来解决我的LaTeX输入文件中使用的一些计算.我做了以下步骤.
下载并安装Maxima.
创建一个名为cas.bat(例如)的批处理文件,如下所示.
rem cas.bat
echo off
set PATH=%PATH%;"C:\Program Files (x86)\Maxima-5.31.2\bin"
maxima --very-quiet -r %1 > solution.tex
Run Code Online (Sandbox Code Playgroud)
将批处理保存在下面的输入文件所在的同一目录中.这只是为了简单起见.
创建名为main.tex(例如)的输入文件,如下所示.
% main.tex
\documentclass[preview,border=12pt,12pt]{standalone}
\usepackage{amsmath}
\def\f(#1){(#1)^2-5*(#1)+6}
\begin{document}
\section{Problem}
Evaluate $\f(x)$ for $x=\frac 1 2$.
\section{Solution}
\immediate\write18{cas "x: 1/2;tex(\f(x));"}
\input{solution}
\end{document}
Run Code Online (Sandbox Code Playgroud)
编译输入文件,pdflatex -shell-escape main您将得到一个很好的输出,如下所示.
!
完成.
显然,Maxima的输出如下.我不知道如何让它更清洁.
solution.tex
1
-
2
$${{15}\over{4}}$$
false
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是
\frac{15}{4}没有$$...$$?Rob*_*ier 10
(1)要抑制输出,请使用美元符号(即$)而不是分号(即;)终止输入表达式.
(2)为了得到TeX-ified表达式sans环境分隔符(即$$),调用tex1而不是tex.请注意,tex1返回一个字符串,您必须自己打印(同时tex为您打印).
将这些想法与您展示的内容相结合,我认为您的程序可能如下所示:
"x: 1/2$ print(tex1(\f(x)))$"
Run Code Online (Sandbox Code Playgroud)
我想您可能会发现Maxima邮件列表很有帮助.[1]我很确定已经有多次尝试创建一个系统,例如你描述的系统.你也可以看看[2].
[1] http://maxima.sourceforge.net/maximalist.html [2] http://maxima.sourceforge.net/relatedprojects.html