Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!julius.cs.uiuc.edu!roundup.crhc.uiuc.edu!ux1.cso.uiuc.edu!csrd.uiuc.edu!s41.csrd.uiuc.edu!eijkhout From: eijkhout@s41.csrd.uiuc.edu (Victor Eijkhout) Newsgroups: comp.text.tex Subject: Re: Explanation requested re: \uppercase and \romannumeral Message-ID: <1991Jan31.154336.600@csrd.uiuc.edu> Date: 31 Jan 91 15:43:36 GMT References: Sender: news@csrd.uiuc.edu (news) Organization: UIUC Center for Supercomputing Research and Development Lines: 20 brister@decwrl.dec.com (James Brister) writes: >Could someone clue me in why line 1 doesn't work, but line 2 does. > 1) \uppercase{\romannumeral\count0} > 2) \uppercase\expandafter{\romannumeral\count0} It is the definition of \uppercase that it takes a token list and uppercases every character token in it. You wouldn't want the reverse, because then things like \def\IsUppercaseChar#1{\uppercase{\if#1}#1} wouldn't work because the \if is expandable. The second line works because \uppercase has to expand in order to find its opening brace: that can be implicit. This in contrast to \def\foo\expandafter{\romannumeral 4} which is *not* the same as \def\foo{iv} Victor.