>>676
H[f_, x_] /; PolynomialQ[f, x] :=
  Module[{r, b, c},
    r = (x - b)^2 + c; r /. Flatten[SolveAlways[f == r, x]]]

Example: H[x^2 + 3 x + 2, x]

>>677
TraditionalFormか、別の方法としては、
HoldFormをもちいた並び替え関数を書く。