There are multiple internal forms of x / 2
. I ran into the same problem here (with 1/4
):
Using Hold correctly with Simplify and ComplexityFunction
This appears to work in all cases:
MakeBoxes[expr_ / 2 | Rational[1, 2] expr_, fmt_] :=
FractionBox[MakeBoxes[expr, fmt], "2"]
(3 + Sin[t])/2
You can better see what is going on with FullForm
:
HoldForm @ FullForm[expr_/2]
HoldForm @ FullForm[Rational[1, 2]*expr_]
Times[Pattern[expr,Blank[]],Power[2,-1]]
Times[Rational[1,2],Pattern[expr,Blank[]]]
You need to cover both the Power[2,-1]
and Rational[1, 2]
cases with your pattern.