LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Donald Arseneau <[log in to unmask]>
Sun, 16 May 2004 18:37:28 -0700
text/plain (41 lines)
Frank Mittelbach <[log in to unmask]> writes:

>  > It was supposed to hit at \label time.  But since putting a label
> i still don't see how that would work

You did analyze it already: it is a confusing undefined control
sequence  error, where the "real" error message is the csname.  The
\csname must be constructed in a way that does not equate it to \relax.

Url.sty contains:

 \ifx\let\HyPsd@LetCommand % we are already in a pdf string!
  \expandafter\Url@unmove \fi % give the argument and hope for the best
 \ifx\Url@moving\relax\else \expandafter\Url@unmove \fi
\long\def\Url@unmove#1\Url@y{\endgroup \ifx\protect\relax\else\protect\Url\fi}
\edef\Url@moving{\csname Url Error\endcsname}
 {\csname url used in a moving argument.\endcsname}
\expandafter\expandafter\expandafter \let \Url@moving\@undefined

Note the last line!  This gives error messages like:

! Undefined control sequence.
\Url Error ->\url used in a moving argument.

l.104 \section{\url{moving}}

Anyway, We should still allow \label for purposes of \pageref, so the
error should indeed be encoded to occur at \ref.  It would be nice if
\label would put the current \inputlineno into the error message, but
that requires altering the definition of \label.  The error message
should at least make use of the page number also stores.

Donald Arseneau                          [log in to unmask]