Name: Rolf Mertig Date: 02/08/06-12:10:21 PM Z
>Is this a problem at all to with FeynCalc?
>Or is it to do with the latex/tex installation!
This has nothing to do with FeynCalc.
Check out, e.g.:
http://forums.wolfram.com/mathgroup/archive/2005/Sep/msg00611.html
--
There is also an undocumented function FeynCalcToLaTex
in HighEnergyPhysics/general, but it is broken under
Mathematica 5.2 (should work with 5.0 or so).
I think you (or somebody else on this forum with time?)
could fix it easily. The idea was to functionalize
TeX-creation of (larger) expressions, using TexSave and
subsequent string replacements.
I wrote this for LaTeX-generation of the FeynCalc book
(when working on it with Frederik two years ago ...).
I'll copy the code below.
Rolf
(* :Title: FeynCalcToLaTeX *)
(* :Author: Rolf Mertig *)
(* ------------------------------------------------------------------------ *)
(* :History: useful for documentation, but probably also otherwise *)
(* ------------------------------------------------------------------------ *)
(* ------------------------------------------------------------------------ *)
BeginPackage["HighEnergyPhysics`general`FeynCalcToLaTeX`",
"HighEnergyPhysics`FeynCalc`"];
FeynCalcToLaTeX::usage="FeynCalcToLaTeX[expr] generates LaTeX with line-breaking
for expr.
FeynCalcToLaTeX[expr, 500] generates LaTeX for expr with 500 being the Window width
setting for the Mathematica frontend. Increasing its value will generate less
line breaks.";
F2L::usage="F2L is the same as FeynCalcToLaTeX.";
Begin["`Private`"];
MakeContext[StringChomp];
F2L = FeynCalcToLaTeX;
FeynCalcToLaTeX[expr_, width_:500] := If[!$Notebooks,
Needs["JLink`"];
JLink`InstallJava[];
JLink`UseFrontEnd[f2tex[expr, width]],
f2tex[expr,width]
];
(* this is of course heuristics; should change to java.util.regexp or so ... *)
f2tex[expr_, width_:500] := Module[{r, n, w,y,z},
r = Cell[BoxData[FormBox[(MakeBoxes[#1, TraditionalForm] & )[expr], TraditionalForm]],
"Output"]; n = NotebookPut[Notebook[{r}, WindowSize -> {width, Inherited},
Visible -> False]]; o = StringJoin[$TemporaryPrefix, ToString[Random[Integer, 10^8]],
"fc2latex.tex"]; TeXSave[o, n]; t = Import[o, "Text"];
w = StringDrop[StringChomp[ StringReplace[StringDrop[t,
StringPosition[t, "dispSFoutmath"][[1,1]] + 13],
{"\\end{document}" -> "",
"\\MathBegin{MathArray}{l}"->"",
"\\MathBegin{MathArray}[p]{l}"->"",
"\\MathEnd{MathArray}"->"",
"\\NoBreak" -> ""}
]], -2]; DeleteFile[o]; NotebookClose[n];
y=StringChomp[StringReplace[StringJoin@@(Characters[
w]//.{in___,"\\",_,"s","p","a","c","e","{",___,"}",
fi___}\[RuleDelayed]
{in,fi}) ,"\\noalign{}"->""]];
z = StringReplace[FixedPoint[StringReplace[#, " "->" "]&,y],"\n \n"->"\n"];
z=StringReplace[StringReplace[z,"\\\\\n"->"\n\\\\\n"],"\n\n"->""];
z = StringReplace[z,"\n\\\\ (\n"-> "\n\\\\ \n( "];
If[StringMatchQ[z,"*\\\\"], z=StringDrop[z,-2]];
If[StringLength[z]>1,
If[StringTake[z,1]==="{" && StringTake[z,-1]==="}",
z = StringDrop[StringDrop[z, 1], -1]]
];
(*z = "$\n"<>z<>"\n$";*)
(*not always useful, comment it out for now
CellPrint[Cell[z, "Program"]]
*);z]
End[]; EndPackage[];
(* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)