I have several Mathematica expressions in which subscripts are expressed with square brackets. E.g. x[12]
is meant to represent x12, etc. If I evaluate TeXForm
on such an expression, x[12]
, e.g., gets converted to x(12)
. Is there a way to get it to produce the x_{12}
form instead?
$\begingroup$
$\endgroup$
1
1 Answer
$\begingroup$
$\endgroup$
3
Probably the easiest solution here is to use
Format[x[arg_],TraditionalForm]:=Subscript[x, arg]
This makes sure that the subscript form is used when the display is in TraditionalForm
, which is also an intermediate step in creating TeXForm
. Then you get for example
1+x[13]//TeXForm
$x_{13}+1$
The Format
can't be specified directly for TeXForm
because then expressions where your x[12]
is surrounded by other things as in 1 + x[12]
won't get translated correctly.
-
$\begingroup$ Your answer suggests that Mathematica itself can render TeX. Can it? $\endgroup$– kjoJan 12, 2013 at 22:29
-
2$\begingroup$ To a certain extent you can render $\LaTeX$, but it's very incomplete. The general idea is to use something like
TraditionalForm@ToExpression["\\sin\\alpha", TeXForm, HoldForm]
. I discussed this in this answer $\endgroup$– JensJan 12, 2013 at 22:50 -
2$\begingroup$ I just realized you may be looking for something simpler: when we say "render" $\LaTeX$, it could also mean to produce traditional-looking formulas from Mathematica standard form input. That is simply done by wrapping any such input in
TraditionalForm[ ...]
. You could sayTraditionalForm
is Mathematica's "pretty-print formula" typesetting mode. $\endgroup$– JensJan 13, 2013 at 0:12
x[2]
which is meant to be $x_2$ andf[x]
orf[0]
which are $f(x)$ or $f(0)$. $\endgroup$