% We're meant to typeset a reference. The first job is to see whether
% there's an optional argument. If so, grab it; otherwise |\relax| will do.
% \begin{macrocode}
% We're meant to typeset a reference. The first job is to see whether
% there's an optional argument. If so, grab it; otherwise |\relax| will do.
% \begin{macrocode}