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?
Asked
Active
Viewed 316 times
8
kjo
- 11,717
- 1
- 30
- 89
1 Answers
15
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.
Jens
- 97,245
- 7
- 213
- 499
-
-
2To 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 – Jens Jan 12 '13 at 22:50 -
2I 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 sayTraditionalFormis Mathematica's "pretty-print formula" typesetting mode. – Jens Jan 13 '13 at 00:12
x[2]which is meant to be $x_2$ andf[x]orf[0]which are $f(x)$ or $f(0)$. – Szabolcs Jan 12 '13 at 23:10