New answers tagged

6

The test fails to show equality on (at least) two levels. First level \MakeUppercase and \MakeLowercase are instructions to print the uppercased or lowercased versions of their arguments. They don't “directly” transform their arguments. Second level \ifx only compares the “surface meaning” of two tokens without any macro expansion. In particular, two macros (...


9

Like Donald Hosek said, \ifx doesn’t expand its arguments. You’re comparing the unexpanded macros \MakeUppercase{1} and \MakeLowercase{1}. You could fix this by fully expanding the macros you compare. However, that doesn’t give you a complete solution, because \MakeUppercase and \MakeLowercase are not expandable. So, \edef\upperone{{\MakeUppercase 1}} ...


11

You're going to get different results because you're comparing the definitions of the two macros. \MakeUppercase{1} is not the same as \MakeLowercase{1} It's worth noting that the \MakeUppercase and \MakeLowercase macros are themselves complicated enough that the naïve approaches to trying to expand them to get the results in plain text will still not give ...


Top 50 recent answers are included