I use the first style you gave:
Options[tListPlot]=Join[
Options[ListPlot],
Options[tLegend],
{
Rule[ShowLegend,False]
}
];
The function is then defined as
tListPlot[data_,options:OptionsPattern[]]:=...
I don't see any reason to use SetDelayed (:=) in this context. EDIT As Brett Champion mentions in the comments, the default options for
System`Plot
will change if you use SetOptions on Plot. Hence, if you want your custom plot to always have the same options as Plot, use :=. I would prefer to specifically change the options for my Plot separately, so I would still use simply Set (=).
You might also want to check out this instructive question on Options in custom functions: Functions with Options
Plotwill change if you useSetOptions. UsingSetDelayedwill pick up that change, unlessSetOptionshas also been applied tomyPlot. – Brett Champion Apr 22 '12 at 02:57FilterRulescan be used to strip out any additional options that are not present in the wrapped function. – rcollyer Apr 23 '12 at 03:44