MathGroup Archive 1999

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

Search the Archive

Re: Output format of partial derivatives

  • To: mathgroup at smc.vnet.net
  • Subject: [mg16886] Re: Output format of partial derivatives
  • From: Jens-Peer Kuska <v-jkuska>
  • Date: Mon, 5 Apr 1999 02:24:24 -0400
  • Organization: Wolfram Research, Inc.
  • References: <7e1amq$b7u@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hi Christian,

I append a Mathematica 3.x package that does what you want

Regards
  Jens

Christian Zemlin wrote:
> 
> Hi all,
> 
> I am working with expressions that contain MANY partial derivatives, and
> they would be much easier to read if instead of Mathematica's notation,
> 
>         (1,1)
>        f     (x,y)
> 
> I could get something like
> 
>       f
>        xy
> 
> Does anybody know how to get such output?
> 
> Thanks,
> 
> Christian
 filename="FormatPDiff.m"

BeginPackage["FormatPDiff`"]

FormatPDiff::usage="FormatPDiff.m defines the format for traditional partial derivatives."

Begin["`Private`"]

protected=Unprotect[Derivative]

MakeBoxes[Derivative[dorder__][f_][args__Symbol] /; Length[{args}]>1, form_:StandardForm]:=
    Module[{sm,num,den,arglst,lbr,rbr},
        Switch[form,
          TraditionalForm, lbr="(";rbr=")",
          StandardForm, lbr="[";rbr="]",
          _,lbr="[";rbr="]"
         ];
        sm=Plus @@ {dorder};
        If[sm>1,
          num=RowBox[{SuperscriptBox["\[PartialD]",sm],MakeBoxes[f,form]}],
          num=RowBox[{"\[PartialD]",MakeBoxes[f,form]}]
         ];
        den={"\[PartialD]",SuperscriptBox[#[[2]],#[[1]]] }& /@ 
              Transpose[{{dorder},MakeBoxes[#,form] & /@ {args}}];
        den=Select[den,MatchQ[#,{_,SuperscriptBox[_,n_ /; n>0]}] &] //. 
          SuperscriptBox[a_,1] :> a;
        den=RowBox[Flatten[den]];
        arglst=Drop[
                 Flatten[
                   Transpose[
                     {#,Table[",",{i,Length[#]}]}
                    ]& [{args}]],
                 -1
                ];
        RowBox[
          {FractionBox[num,den],RowBox[{lbr,Sequence @@ arglst,rbr}]}
         ]
     ]

Format[Derivative[dorder__][f_][args__Symbol] /; Length[{args}]>1,TeXForm]:=
  MakeBoxes[Derivative[dorder][f][args],TraditionalForm]

Protect[Evaluate[protected]]

End[] (* private context *)

EndPackage[]



  • Prev by Date: Problem Display Format
  • Next by Date: Re: extracting lhs or rhs of equations
  • Previous by thread: Re: Output format of partial derivatives
  • Next by thread: Problems with ContourPlot