Octave 到 LaTeX

Octave 到 LaTeX

是否有任何东西(命令/脚本/函数)可以将 Octave 表达式转换为 LaTeX。我想要的是这样的:

我输入

a = eye(3,3); %Identity Matrix

然后做一些类似的textify_me(a)事情

\begin{array}{ccc}
1 & 0 & 0 \\ blah blah blah
\end{array}

和/或

syms x
int(sym('x^2'))

生产

\frac{x^3}{3}

我并不是要求“转换”代码、导出图形或类似的东西。我只是要求将变量和符号表达式直接转换为 LaTeX 格式。

MATLAB 有一个函数latex可以实现这个功能。但它是闭源的。有没有开源的东西,或者我应该尝试聚集人手来写它?

答案1

如果您需要的只是一个矩阵,您可以这样做:

strrep(strrep(mat2str(A),",","&"),";","\\\\\n")(2:end-1)

其中 A 是矩阵。这将给出矩阵的主体,不带\begin{matrix}and\end{matrix}

strcat("\\begin{bmatrix}\n",strrep(strrep(mat2str(A),",","&"),";","\\\\\n")(2:end-1),"\n\\end{bmatrix}\n")

将生成整个事物。

我认为 Octave 中没有更全面的解决方案。

另一个选择似乎是使用科学实验室。它或多或少与 MATLAB 兼容(有人说甚至比 Octave 还要兼容),并且它有一个漂亮的打印函数似乎可以完成您想要的操作。不过,我没有使用过 scilab。

答案2

现在该latex功能可在八度锻造在里面象征性的包裹。

>> pkg install -forge symbolic
>> pkg load symbolic

>> a = eye(3);
>> latex(sym(a))
\left[\begin{matrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{matrix}\right] 

>> syms x
>> latex(int(sym('x^2')))
\frac{x^{3}}{3}

答案3

但它是闭源的。有开源的东西吗?还是我应该尝试聚集人手来编写它?

如果你不是完全依赖 Octave,你可以使用智者去做这个。

sage: M = matrix([[2,3],[3,2]])
sage: latex(M)
\left(\begin{array}{rr}
2 & 3 \\
3 & 2
\end{array}\right)
sage: a = integral(x^2,x)
sage: latex(a)
\frac{1}{3} \, x^{3}

如果你确实需要用 Octave 来做这件事,你可以使用Sage 到 Octave 及后台接口以及。我没有本地安装 Octave,因此无法发布一些代码,但我认为 Octave -> Sage -> Latex 的流程应该不会有什么大问题。

答案4

您还可以使用这个强大的函数将 MATLAB 数组转换为 LaTeX 表。 https://www.mathworks.com/matlabcentral/fileexchange/4894-matrix2latex

相关内容