I'm typing up a short comparison of Maple, Mathematica, and Sage in LaTeX. My problem is this: I'd like to include highlighted source code in one column (left) and output in another (right).
I know how to split the view with minipage
, and about the listings
and minted
packages. I've got nice highlighting for Sage by using the python
language setting for minted
and would like to stick with that package. However, I have not been able to get minted
to properly highlight Maple or Mathematica code. Since these two programs are well-known among TeX users, I was thinking that someone might have a solution. It would be nice if I could download the Maple and Mathematica styles.
Otherwise, is there some "best fit" style that I could use for acceptable highlighting?
Best Answer
Short answer: I'm not aware of a single solution that will do all three languages, at least not without some work on your part.
listings
will likely be easiest.minted
uses the Pygments syntax highlighter. Pygments currently doesn't support Maple or Mathematica (at least, not unless you can track down someone's custom lexer). So the only way to proceed withminted
is probably to write your own lexer (might not be that difficult, but I've never tried).listings
supports Mathematica and Python, but not Maple (but you might look at this). So if you go that route, you will need to define a language (this shouldn't be too difficult; you could start with the link above, and customize to your needs).Regarding other options: The program highlight can highlight Maple and export a LaTeX version. It also does Python, but not Sage or Mathematica. GNU Source-highlight doesn't have Mathematica or Maple. I've never used either of these. I think that covers all the standard and fallback syntax highlighters (there's also t-vim, but that's for ConTeXt). There are also some language specific options, for example, evidently there's a
maple2e
package (see this).You should keep in mind that Sage and Python aren't completely identical (for example,
^
vs.**
for exponents). If you want a more Sage-specific solution, you might see thesagetex
package's approach to using Sage withlistings
. Basically, it defines a new Sage language based on Python, for the Sage console (just search thesagetex
documentation for\lstdefinelanguage{Sage}
, and take a look at what follows).