How can I get roman font by default in math mode?
6 Answers
Add the following code to the preamble, basically what it does is changing the default symbol font for letters to the Roman font.
\DeclareSymbolFont{letters}{OT1}{cmr}{m}{n}
- 3,131
- 3
- 29
- 33
If you’re using unicode-math (which I recommend), \DeclareSymbolFont doesn’t seem to work, but
\usepackage[math-style=upright]{unicode-math}
does, per http://mirror.ctan.org/macros/latex/contrib/unicode-math/unicode-math.pdf.
- 269
- 3
- 7
Thanks again for those who have answered. I'm glad to see the LaTeX community is so helpful (it's my first post). The solution I'm using at present is the mathastext package, which gives good results in most cases without any strange parameters.
- 262,582
- 163
\everymath={\fam0}
\everymath is a token list that gets read before any math-material. With it you can set up special conventions that you wish to apply to all formulas.
Note that with the above, accents doesn't work correctly with amsmath!
- 25,490
- 4
- 81
- 162
-
3@morbusg: this applies
\mathrmonly to the first token in the formula. Try with $a+b$: "a" will be upright, but "b" will be in italics. – egreg May 14 '11 at 09:09 -
@egreg: to be honest, I only tried it with plain-tex:
\let\mathrm=\rm \everymath={\mathrm} $a + b$ \byeworks as advertised. I'll change it to the answer. – morbusg May 14 '11 at 09:22 -
@morbusg: Maybe it's better to state in the answer that this is a Plain TeX only solution. – egreg May 14 '11 at 09:53
-
@egreg: why would I do that when it's not?
\documentclass{article} \everymath={\rm} \begin{document} $a+b$ \end{document}– morbusg May 14 '11 at 09:58 -
1@morbusg: try it with the memoir class;
\rmis an obsolete command that should not be used in LaTeX any more. – egreg May 14 '11 at 10:04 -
@egreg: So LaTeX doesn't have an equivalent of
\rm? ie. one that, instead of taking an argument, changes the family from there on? – morbusg May 14 '11 at 10:11 -
-
1@egreg, @morbusg: it's in text mode that
\rmis obsolete and should not be used, as it can't stack properly. In math mode, that's not a problem as the command is more or less just\fam0. So by replacing\rmby\fam0(or\mathgroup0), you'll have something which works with all classes. – Philippe Goutet May 14 '11 at 21:59 -
-
@Andrey:
Command \upshape invalid in math mode. What Philippe says is right, but it's not a "LaTeX equivalent", it's just primitive TeX. – egreg May 15 '11 at 08:15 -
-
@morbusg: a major problem with this solution is that it's incompatible with the
amsmathpackage as it will mess with accents. E.g.\documentclass{article}\usepackage{amsmath}\begin{document}\everymath={\fam0} $\vec{E}$\end{document}will produce a tilde instead of an arrow (same phenomenon as in http://tex.stackexchange.com/q/69526). – Philippe Goutet Aug 31 '12 at 07:26
As mentioned in the comments on the question, you can achieve this with certain fonts that have this as an option.
For example the following makes the greek alphabet and the uppercase Roman letters upright (as is apparently the style in France):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[upright]{kpfonts}
\begin{document}
Here is an equation $e^{i\pi}+1=0$.
Note the slanted e$e$.
Note the upright N$N$.
\end{document}

- 73,242
-
1With kpfont's code, it's almost trivial to obtain French style math letters: it's just a long list of
\re@DeclareMathSymbol. For the main question there's also the mathastext package, as mentioned by Martin. – egreg May 16 '11 at 13:57 -
1@egreg It was actually Vin who mentioned
mathastextas far as I can tell... Also, I didn't mention mathastext (which would be my preferred solution) because it's already in a different answer. I only added this because it was mentioned in the comments, but not made clear exactly how to do it. – Seamus May 16 '11 at 14:40
If I have to add some comment to some kind of equation I use \textrm. Hope that's what you need.
- 262,582
- 2,976
\textcommand from theamsmathpackage. – Alan Munn Apr 05 '11 at 18:19