mdwref.dtx: Include help text with errors.
authorMark Wooding <mdw@distorted.org.uk>
Fri, 22 Jul 2022 10:26:15 +0000 (11:26 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 22 Jul 2022 10:26:15 +0000 (11:26 +0100)
Otherwise things get even worse when they're triggered.

mdwref.dtx

index 10134d3..66c2d07 100644 (file)
   \ifx\hyperref\@@undefined #1{#2}~\ref{#3}%
   \else \hyperref[#3]{#1{#2}~\ref*{#3}}\fi%
 }
+\def\xref@fallback#1{\formatxref\relax{?\texttt{#1}}{#1}}
 %    \end{macrocode}
 % \end{macro}
 %
   \def\@tempa{#2}\def\@tempb{#3}%
   \ifx\@tempb\q@delim%
     \PackageError{xref}{Bad ref syntax}%
+      {A reference name doesn't contain a `:'-delimited prefix.  Did you %
+       mean to use plain \string\ref here?}%
+     \xref@fallback{#2}%
   \else%
     \expandafter\let\expandafter\@tempa\csname xref$#2\endcsname%
     \ifx\@tempa\relax%
       \PackageError{xref}{Unknown ref kind `#2'}%
+        {The ref name's prefix `#2' is unknown: either it's been mistyped %
+         or there's a missing \string\defxref somewhere.}%
+     \xref@fallback{#2:#3}%
     \else%
       \toks@\expandafter{\@tempa}%
       \edef\next@##1{##1{\the\toks@}}%