TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there anything (command/script/function) that can convert a Octave expression to LaTeX. What I am asking for is something like this:

I type

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

and then do something like textify_me(a) which produces

1 & 0 & 0 \\ blah blah blah


syms x



I am not asking for "sweaving" of codes, exporting figures or anything similar. I am simply asking for conversion of variables and symbolic expressions directly to LaTeX format.

MATLAB has a function latex which does this. But it is closed source. Is there something Open Source or should I attempt to try and accumulate people to write it?

share|improve this question
In the comments to this answer: tex.stackexchange.com/a/11716/86 Jan Hlavacek explains how to get Octave to print out a matrix in LaTeX format. It's an extremely useful comment! – Loop Space Feb 7 '12 at 18:20
I'm afraid LaTeX output is not possible with Octave. :( If I may suggest one application I like, it's Maxima. And it has a LaTeX output, e.g. tex(factor(x^2+2*x+1)); gives you $$\left(x+1\right)^2$$. :) – Paulo Cereda Feb 7 '12 at 18:45
up vote 6 down vote accepted

If all you need is a matrix, you can do this:


where A is your matrix. That will give you the body of your matrix, without the \begin{matrix} and \end{matrix}


will generate the whole thing.

I don't think there is a more comprehensive solution in Octave.

Another option seems to be using scilab. It is also more or less MATLAB compatible (some say even more than Octave), and it has a prettyprint function that seems to do what you want. I have no experience with scilab, though.

share|improve this answer

But it is closed source. Is there something Open Source or should I attempt to try and accumulate people to write it?

If you aren't completely wedded to Octave, you can use Sage to do this.

sage: M = matrix([[2,3],[3,2]])
sage: latex(M)
2 & 3 \\
3 & 2
sage: a = integral(x^2,x)
sage: latex(a)
\frac{1}{3} \, x^{3}

If you really do need to do this with Octave, you can use the Sage to Octave and back interface as well. I don't have a local Octave install so I can't post some code, but I don't think there should be a huge problem with the flow Octave -> Sage -> Latex.

share|improve this answer
This doesn't seem so satisfactory. At best it needs Sage, which is huge, and at worst you're suggesting switching languages entirely... – qubyte Feb 7 '12 at 17:25
Not exactly. Ignoring whether size is an issue these days with downloads (that depends a lot on where Nunoxic is), the same thing would work going to an online Sage server, assuming it has Octave installed (our local one, which I can't advertise, does). Again, untested... but it's worth a shot. – kcrisman Feb 7 '12 at 18:05
I need code compatibility with MATLAB so sage isn't the best alternative. – user10961 Feb 7 '12 at 19:02
Unfortunately (and, to me, surprisingly), it looks like we don't have a rudimentary reverse parser yet, like we do with Maple and Mathematica. I've opened a ticket for this at trac.sagemath.org/sage_trac/ticket/12467. – kcrisman Feb 7 '12 at 19:52

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.