I looked for a solution to print derivatives using Traditional form that lok the same as the standard Matematical notation. Despite some good resources, in general they were based on old Mathematica versions and do not explored fully the new Wolfram languages features. Since this might be useful to others struggling with the same subject. I am posting a solution, of course it will be nice if someone could improve it, or present a more general solution.
The idea was to define a set of substitution rules that could transform a TraditionalForm derivative in something easier to read.
generateD[f_, vars_, order_] :=
Module[{iterators, args, args2, funcvar},
funcvar[lis_] := Select[lis, #[[2]] != 0 &] /. {x_, 1} -> x;
iterators =
Sequence @@
Table[{ToExpression["n" <> ToString[i]], 0, order}, {i, 1,
Length[vars]}];
args = Table[ToExpression["n" <> ToString[i]], {i, 1, Length[vars]}];
args2 = Table[{vars[[i]], args[[i]]}, {i, 1, Length[vars]}];
Rest[Flatten[
Table[Rule[Derivative[Sequence @@ args][f][Sequence @@ vars],
Inactivate[D[f[Sequence @@ vars], Sequence @@ funcvar[args2]],
D]], Evaluate[iterators]]]]]
Usage:
eq = D[f[r,q,z],{r,2},z,q];
lissubs = generateD[f, {r, q, z}, 2];
TraditionalForm[eq /. lissubs]
It will be nice if that could be done in a more general way, detecting the derivative expressions and applying the transformative rules.