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'm using pdftex and I want to define a command for the typesetting of quantum mechanical operators that produces upright letters with a \hat accent. The problem is that the obvious solution


does only work for roman letters but I also use at least one operator that should be represented by a greek letter for which the \mathrm command produces rubbish output. So it would be nice to define a command that distinguishes between greek and roman letters via an if statement. Since I have very little experience with TeX I don't really know how to tackle this problem.

share|improve this question
up vote 4 down vote accepted

As long as you strictly use one token in the argument of \op, here is a way:


The command is robust because it would break if used in captions. Use it only as

\op{A} \op{x} \op{\Gamma} \op{\beta}

You might consider also to add \mathop:


that will provide correct spacing of the symbol used as an operator.

share|improve this answer
Wow, that was quick. Thank you very much. This really solves my problem. I go with the first alternative since the \mathop command produces wrong output, when used with indices such as \op{H}_{i}. – Philipp Jul 24 '11 at 17:13
Sorry, I forgot a key command. – egreg Jul 24 '11 at 17:13
Thanks again. Now it works perfectly. – Philipp Jul 24 '11 at 17:48
@egreg: Sorry if I dig out this old post, but: Would it be the same if I wrote \ifcat#1a\mathrm{#1}\else#1\fi instead? – campa Aug 14 '15 at 11:42
@campa Yes, that's the same – egreg Aug 14 '15 at 19:37

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.