如何使Maxima的输出更干净?

kis*_*pit 5 maxima

我想利用Maxima作为后端来解决我的LaTeX输入文件中使用的一些计算.我做了以下步骤.

步骤1

下载并安装Maxima.

第2步

创建一个名为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)

将批处理保存在下面的输入文件所在的同一目录中.这只是为了简单起见.

第3步

创建名为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)

第4步

编译输入文件,pdflatex -shell-escape main您将得到一个很好的输出,如下所示.

!在此输入图像描述

第5步

完成.

问题

显然,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