MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: TeXForm

  • To: mathgroup at smc.vnet.net
  • Subject: [mg132020] Re: TeXForm
  • From: Roland Franzius <roland.franzius at uos.de>
  • Date: Sun, 17 Nov 2013 18:22:35 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <l6528j$5c3$1@smc.vnet.net>

Am 15.11.2013 12:58, schrieb Themis Matsoukas:
> TeXForm seems to apply additional transformations to expressions
> before exporting into latex. Here is an example:
>
> ((-1 + n + \[Phi] - n \[Phi]) a + (1 + (-1 + n) \[Phi]) b)/((-1 + n +
> \[Phi]) a + b - \[Phi] b) // TeXForm
>
> \frac{a (n (-\phi )+n+\phi -1)+b ((n-1) \phi +1)}{a (n+\phi -1)+b
> (-\phi )+b}
>
> The exported expression has been manipulated by some unknown rules.
> The  (-\phi) in particular is especially annoying. Is there a way to
> export the expression in the form that pretty much matches the
> original expression?

The TeXForm is pretty clear, use FullForm. It does nothing. Its only the 
Output filter that translates to LaTeX. This works slightly different 
for screen or Export as TeX-file.

The same is true for import. The screen output converted to a string 
cannot be pasted as a TeX-expression in ToExpression.



Ordering before conversion can be accomplished by some tricks. Isolate 
numerator and denominator and order terms as a polynom in \[Phi] and put 
the fraction together again applying Divide

expr =
  Divide @@
   Collect[
    Expand@{Numerator[#], Denominator[#]} &[
    ((-1 + n + \[Phi] - n \[Phi]) a + (1 + (-1 + n) \[Phi]) b)/
     ((-1 + n + \[Phi]) a + b - \[Phi] b)],
    \[Phi]]


    (-a + b + a n + (a - b - a n + b n) \[Phi])/(-a + b +
        a n + (a - b) \[Phi])


You can export it directly as a LaTeX document

Export[$UserDocumentDirectory<>"\\test.tex",TexForm[expr],"LaTeX"]



%% AMS-LaTeX Created by Wolfram Mathematica 9.0 : www.wolfram.com

\documentclass{article}
\usepackage{amsmath, amssymb, graphics, setspace}

\newcommand{\mathsym}[1]{{}}
\newcommand{\unicode}[1]{{}}

\newcounter{mathematicapage}
\begin{document}

\[\text{$\backslash \backslash $frac$\{\backslash \backslash $phi  (a 
(-n)+a+b n-b)+a n-a+b$\}\{\backslash \backslash $phi  (a-b)+a n-a+b$\}$}\]

\end{document}




Or replace the TeXForm  wrapper by String

str = ToString[TeXForm[ expr]]

  "\\frac{\\phi  (a (-n)+a+b n-b)+a n-a+b}{\\phi  (a-b)+a n-a+b}"


The main conversion problem is the total incompatiblity at the 
Mathematica level of the Mathematica string escape "\\" and the TeX 
escape "\", the different use of bracket types and the implicit 
multiplication with blanks " ".

But the cut and paste machine of Mathematica pretty good formates 
TeX-texts.

-- 

Roland Franzius



  • Prev by Date: Programming Fail
  • Next by Date: Animate cannot be combined?
  • Previous by thread: Re: TeXForm
  • Next by thread: Plot InverseSurvivalFunction