LATEX-L Archives

Mailing list for the LaTeX3 project

LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

Options: Use Forum View

Use Proportional Font
Show HTML Part by Default
Condense Mail Headers

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

Print Reply
Sender:
Mailing list for the LaTeX3 project <[log in to unmask]>
Subject:
From:
David Carlisle <[log in to unmask]>
Date:
Tue, 17 Jun 1997 13:59:21 +0100
In-Reply-To:
<[log in to unmask]> (message from Vladimir Volovich on Sat, 14 Jun 1997 22:36:18 +0400)
Reply-To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Parts/Attachments:
text/plain (35 lines)
> \def\uppercase#1{\protect\tmpe@uppercase{#1}}
> \def\tmpe@uppercase#1{\edef\tmpd@uppercase{#1}%

Please don't redefine the \uppercase primitive!!!

\uppercase is fairly useless for making text uppercase. What it's real
purpose is, is as the low level TeX primitive to change the character
code of a character token without changing its catcode.

Hence you find

      \uppercase{%
   \egroup
      \def~%
   }%

in inputenc.sty and the rather similar

  \uppercase{\def~}

in dcolumn.sty

Such uses really rely that \uppercase works the way it works.
Any redefinition is likely to break these packages.

Secondly you have applied \edef to a random user-supplied argument.
This is the canoncal `moving argument' and so you should set \protect
so as to give the user some way of preventing commands dying in the
\edef. So the second line above should use \protected@edef rather than
\edef. As \protected@edef ... \uppercase .... is essentially the
definition of \MakeUppercase, you should probably just redefine that
LaTeX command rather than the TeX primitive.

David

ATOM RSS1 RSS2