The package that ParabolicCylinderD autoloads has the ParabolicCylinderD symbol protected, while the package that HypergeometricU autoloads does not have the HypergeometricU symbol protected:
Unprotect[ParabolicCylinderD];
ParabolicCylinderD; (* autoload *)
Attributes[ParabolicCylinderD]
{Listable, NumericFunction, Protected, ReadProtected}
We see that the ParabolicCylinderD symbol is protected after autoloading. The similar code for HypergeometricU does not reprotect the symbol:
Unprotect[HypergeometricU];
HypergeometricU; (* autoload *)
Attributes[HypergeometricU]
{Listable, NumericFunction, ReadProtected}
You might consider using the Initial wrapper from my answer to How can one manually change the rule ordering (note that your question caused me to modify the wrapper so that it is not tripped up by autoloading packages that reprotect symbols, and so that FormatValues get autoloaded as well). The relevant code is:
Initial /: Verbatim[TagSetDelayed][Initial[sym_], lhs_, rhs_] := With[
{
new = Block[{sym},
TagSetDelayed[sym, lhs, rhs];
First @ Language`ExtendedDefinition[sym]
],
protect = Unprotect[sym]
},
sym;
Quiet @ MakeBoxes[sym[], TraditionalForm];
Unprotect[sym];
Replace[new,
Rule[values_, n:Except[{}]] :> (
values[sym] = DeleteDuplicates@Join[n, values[sym]]
),
{2}
];
Protect@protect;
]
You would use it as follows (note that I changed Set to SetDelayed in your definition):
Initial[ParabolicCylinderD] /: Format[ParabolicCylinderD, TeXForm] := "\\text{ParabolicCylinderD}"
Check:
TableForm[FullForm /@ FormatValues[ParabolicCylinderD]]
RuleDelayed[HoldPattern[Format[ParabolicCylinderD,TeXForm]],"\\text{ParabolicCylinderD}"]
RuleDelayed[HoldPattern[Condition[MakeBoxes[ParabolicCylinderD[Pattern[BoxForm`a$,Blank[]],Pattern[BoxForm`b$,Blank[]]],TraditionalForm],BoxForm`sufficientVersionQ[6.1`]]],TemplateBox[List[MakeBoxes[BoxForm`a$,TraditionalForm],MakeBoxes[BoxForm`b$,TraditionalForm]],"ParabolicCylinderD"]]
RuleDelayed[HoldPattern[MakeBoxes[ParabolicCylinderD[Pattern[BoxForm`v,Blank[]],Pattern[BoxForm`z,Blank[]]],TraditionalForm]],RowBox[List[SubscriptBox[TagBox["D",ParabolicCylinderD],BoxForm`ToTrad[BoxForm`v]],"(",BoxForm`ToTrad[BoxForm`z],")"]]]
Unprotect[], etc.ParabolicCylinderD; Unprotect[(* stuff *)]; (* etc. *)– J. M.'s missing motivation Aug 22 '17 at 00:58