TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'd like to typeset German weekday names in uppercase using the translator package but I can't get it working:





The result is


How to get MONTAG?

share|improve this question
up vote 4 down vote accepted

This works:


or for the pgf example

share|improve this answer
Even though egreg's explanation is better you got the answer for my problem, I wrapped your code in a \newcommand{\weekdaynameUC}[1]{...#1->##1...} which perfectly fits my needs. Thanks @David, and thanks @egreg as well for the good explanation. – buergi Nov 28 '12 at 17:47
@cgnieder thanks for the reminder, now I did so – buergi Nov 28 '12 at 18:29

With \uppercase{\translate{Monday}} you're simply doing


which results in "MONDAY" because the string isn't know. The same happens with the other tries, because \translate doesn't expand in a unique step (and is not fully expandable either).

Here's a way out: the command \translate{xyz} actually calls


that is it stores the translated string into \trans@temp and then uses the string. So we can use the same mechanism and put \MakeUppercase in the proper place. I'll define \translateUC with the same syntax as \translate:







enter image description here

share|improve this answer
Perhaps my MWE was a little bit to simple, actually I'd like to make \pgfcalendarweekdayname{0} uppercase. However from the answers I can't figure out how to do this, I thought it just has something to do with the correct order of expansion. – buergi Nov 28 '12 at 16:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.