Unfortunately, the *Mathematica*'s *Copy As > LaTeX* command is *not* (as you'd expect) a command that copies the selected expressions as *LaTeX*. Instead, it performs additional reformatting that can only be avoided by changing behavior of the relevant built-in function with:

```
System`FEDump`CopyAsTeXMakeBoxes = #&
```

## Details

### Why copied boxes are reformatted

**Copy As > LaTeX** command, under the hood, calls `FrontEnd`CopyAsTeX`

function.

If we spelunk it:

```
Import["https://raw.githubusercontent.com/szhorvat/Spelunking/master/Spelunking.m"]
Spelunk@FrontEnd`CopyAsTeX
```

we'll see it performs several steps. Relevant, for answer to this question, is call to `System`FEDump`TransformBoxesToTraditionalFormBoxes`

function.
We can "discover" it using pop-up that appears after clicking on this function's name.

We'll see that, basically, it calls `MakeExpression[..., "StandardForm"]`

on given boxes, than passes resulting expression to
`System`FEDump`CopyAsTeXMakeBoxes`

function, together with boxes.
`CopyAsTeXMakeBoxes`

function calls `MakeBoxes[..., "TraditionalForm"]`

on given expression.

This is the place where reformatting occurs.

If we take expression from question and pass it, converted to boxes, to `TransformBoxesToTraditionalFormBoxes`

we'll get:

```
HoldForm[Equal[Subscript[W,1][1],Times[Power[ρ,5],Subscript[ω,1],Power[ρ,Times[-1,5]]]]] // MakeBoxes
System`FEDump`TransformBoxesToTraditionalFormBoxes[%]
(* TagBox[RowBox[{RowBox[{SubscriptBox[W,1],(,1,)}],==,FractionBox[RowBox[{SuperscriptBox[ρ,5], ,SubscriptBox[ω,1]}],SuperscriptBox[ρ,5]]}],HoldForm] *)
% // DisplayForm
```

$W_1(1)=\frac{\rho ^5 \omega _1}{\rho ^5}$

We see that `HoldForm`

`TagBox`

is still there.
`TransformBoxesToTraditionalFormBoxes`

and `CopyAsTeXMakeBoxes`

are written in safe way, there's no evaluation leak. Expression created from boxes is wrapped with `HoldComplete`

and function applied to it has properly set `HoldAllComplete`

attribute. Reformatting is done purely by `MakeBoxes`

function.

`TransformBoxesToTraditionalFormBoxes`

was added in *Mathematica* version 9.
Verison 8 copies expressions without reformatting.

### How to change **Copy As > LaTeX** behavior

`System`FEDump`CopyAsTeXMakeBoxes`

takes two arguments first are (almost) original boxes, second is expression obtained from those boxes. Original boxes are returned when reconverting expression to boxes encounters any problems.

If we don't mind changing behavior of built-in function, we can force `CopyAsTeXMakeBoxes`

to always return unchanged boxes by setting:

```
System`FEDump`CopyAsTeXMakeBoxes = #&
```

Solution tested in *Mathematica* versions 9 and 10. Previous versions don't need it.

It's not clear to me exactly what your scenario is, but if you're just interested in typesetting, then this recent answer may be applicable.

– Jens – 2015-03-09T23:54:20.793@Jens: I was hoping to find a way to prevent MMA from changing the formatting of my expressions when I copied them. (A pretty general "scenario".) – orome – 2015-03-10T00:18:58.660

1Yes, but how are you creating the "expressions" - the question should probably state that they are generated as output from

Mathematicacode (just guessing). The other scenario would be that you are just typing them in by hand. The optimal solutions would be quite different depending on the starting point... – Jens – 2015-03-10T02:27:17.603@raxacoricofallapatorius: Is my answer of any help? – Jinxed – 2015-03-10T07:22:16.540

@Jens: A, sorry, I forgot to link.

– orome – 2015-03-10T13:42:25.983