I don't understand the following behavior (in v 9.0.1) of TraditionalForm regarding insertion of parenthesis.
Let us start with the a definition for myfuncF to make boxes in traditional form:
myfuncF /: MakeBoxes[myfuncF[a_, b_], TraditionalForm] := RowBox[{"f(", Sequence @@ Riffle[Map[ToBoxes, {a, b}], ","], ")"}] Now look at what I get as output for the following two commands:
x myfuncF[a,b] // TraditionalForm myfuncF[a,b] > 0 //TraditionalForm 
Notice that in the first case, an unnecessary pair of parenthesis is inserted for multiplication.
Now I modify the MakeBoxes definition by inserting a small space: (in LHS, change RowBox[{"f(",… to RowBox[{" f(",…):
myfuncF /: MakeBoxes[myfuncF[a_, b_], TraditionalForm] := RowBox[{" f(", Sequence @@ Riffle[Map[ToBoxes, {a, b}], ","], ")"}] Run the two commands again, and look what we get:

Now we get an unnecessary pair of parenthesis in the inequality!
So my questions are:
- How do I understand this odd behavior (what's going on behind the scenes)?
- What can I do to get rid of these superfluous parentheses?


