I'm currently working on creating a generic invoice in LaTeX. Later I don't want to change the document, but a little section which only contains variables. It works fine for now, but now I want to introduce a variable which switches the language between english and ngerman. Because \selectlanguage of the babel package just works in the document section, I have to define a variable for that.

I tried it with




And then in the document section with


Neither of these worked, because of the error "You haven't defined documentLanguage yet". I think the \ somehow gets removed and the parser just reads "documentLanguage" as string.

Is there a way to fix this behavior?


  • 2
    \expandafter\selectlanguage\expandafter{\documentLanguage} should work, but probably there are better methods, if you're implementing a class.
    – egreg
    Dec 15, 2016 at 13:40
  • @egreg Thanks, it works! Exactly what I was looking for.
    – michidk
    Dec 15, 2016 at 13:49

1 Answer 1


You could do


(for historical reasons, \selectlanguage stringifies its argument, so a control sequence there is not expanded).

I'd prefer a different approach, but this requires knowing the details of your implementation.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .