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}
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.
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.
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}
-
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.– egregCommented May 16, 2011 at 13:57 -
1@egreg It was actually Vin who mentioned
mathastext
as 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.– SeamusCommented May 16, 2011 at 14:40
\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
!
-
3@morbusg: this applies
\mathrm
only to the first token in the formula. Try with $a+b$: "a" will be upright, but "b" will be in italics.– egregCommented May 14, 2011 at 9:09 -
@egreg: to be honest, I only tried it with plain-tex:
\let\mathrm=\rm \everymath={\mathrm} $a + b$ \bye
works as advertised. I'll change it to the answer.– morbusgCommented May 14, 2011 at 9:22 -
@morbusg: Maybe it's better to state in the answer that this is a Plain TeX only solution.– egregCommented May 14, 2011 at 9:53
-
1@morbusg: try it with the memoir class;
\rm
is an obsolete command that should not be used in LaTeX any more.– egregCommented May 14, 2011 at 10:04 -
1@egreg, @morbusg: it's in text mode that
\rm
is 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\rm
by\fam0
(or\mathgroup0
), you'll have something which works with all classes. Commented May 14, 2011 at 21:59
If I have to add some comment to some kind of equation I use \textrm
. Hope that's what you need.
\text
command from theamsmath
package.