如何解决如何防止Maxima tex1包装其输出?
| 我从批处理脚本中调用了Maximatex1
,如下所示:
maxima --very-quiet -r \"tex1(solve(8*x^2+7*x+5));\" | grep -v false > output.txt
我得到了output.txt
,如下所示:
\\left[ x=-{{\\sqrt{111}\\,i+7}\\over{16}},x={{\\sqrt{111}\\,i-7}\\over{16}} \\righ\\
t]
作为(La)TeX输入文件无效。
如何防止千里马tex1
包装输出?
解决方法
不幸的是,这是硬编码到Maxima中的。解决此问题的方法是编辑文件“ 5”中的函数myprinc。有一个写有70的
cond
格式,它应该读取linel而不是70。如果在进行此更改后重新编译最大值,则可以使用以下代码:
maxima --very-quiet -r \"linel: 1000$ tex1(solve(8*x^2+7*x+5));\" | grep -v false > output.txt
无论如何,我会尽快将补丁发送到Maxima列表,以便该程序的将来版本不会有此缺点。
, 这么晚才回复很抱歉。
代替
tex1(解决(8 * x ^ 2 + 7 * x + 5));
写:
?princ(tex1(solve(8 * x ^ 2 + 7 * x + 5)))$
问题是显示格式化程序正在打印tex1返回的字符串(如果您在交互式会话中使用Maxima,则该函数将打印该字符串)。显示格式化程序以行字符(默认= 79)分隔字符串并插入反斜杠。相反,出于您的目的,您想完全避开显示格式化程序,因此使用?princ打印字符串(使用Lisp函数仅打印字符串),并用\“ $ \”而不是\“; \”终止输入以告知千里马不要调用显示格式器。
请注意,MYPRINC中的硬编码常数70在这里不起作用。在给定的示例中未调用MYPRINC。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。