Tell me more ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I want to show in one document different font examples of math fonts, for example Latin Modern, Times and Charter.

I know the command \usefont{T1}{lmr}{m}{n}, but have no idea how to combine that with a math environment.

share|improve this question
2  
You would have to define math versions. But depending on the fonts involved this can be quite complex. Better make external graphics/documents and import them. – Ulrike Fischer Sep 30 '11 at 12:20

2 Answers

up vote 10 down vote accepted

That's a bit complex in LaTeX. Note that the definitions of math symbols are complex. Math fonts are quite different with text fonts.

You may want to read the document of NFSS: LaTeX2𝜀 font selection, section 3; and the documented source code of LaTeX2e: The LaTeX 2𝜀 Sources, section 42.

For examples, any math font package is OK. I suggest mathptmx.sty, it is typical and relatively simple. e.g.

\DeclareSymbolFont{letters}{OML}{ztmcm}{m}{it}

This (re)defines the letter math family. And the command

\DeclareSymbolFontAlphabet{\mathnormal}{letters}

in LaTeX2e kernel makes letters family to be default alphabet font.

People usually don't use many font families in one document. For an example of mixed math fonts, see also my previous answer.

It is not only annoying, but also impossilbe to define many math fonts in one document. In TeX, the number of math alphabet fonts is limited to 16. As Ulrike Fischer said, if you just want to show the results of a few math font packages, just produce some graphics and import them into the document. It is much easier.

share|improve this answer

As the other answers and comments have already pointed out, it's not easy in pdfLaTeX to switch from one math font group (say, Computer/Latin Modern) to another. The packages I'm familiar with which have matching text and math fonts are the default Computer/Latin Modern group (loaded if no other font group is specified), mathptmx (Times Roman look), and mathpazo (Palatino). There are also the txfonts and pxfonts packages, which give you Times and Palatino, but the hinting and glyph substitution isn't as good as with mathptmx and mathpazo. Within just the last few months, the newtxmath (and newtxtext) packages have come along; they correct virtually all of the shortcomings of the txfonts package and add quite a bit of new functionality as well. I'm not familiar with math fonts designed specifically to go with Charter text fonts.

See this webpage for a comparison of various free math fonts available for (pdf)latex users.

Because of various deep design issues embedded in TeX, it is not straightforward (or even possible?!) to switch between entire math font families within the same document if you use pdfLaTeX. In contrast, in XeLaTeX and LuaLaTeX it's quite easy to do so by loading the unicode-math and fontspec packages. The following MWE gives a demonstration for four different matched text and math fonts: Latin Modern, XITS/XITS Math, Palatino/Asana Math, and Cambria Math. (Unfortunately, there are still only relatively few full-blown OpenType-based math font groups.)

% !TeX program = xelatex  % lualatex OK too
\documentclass{article}
\usepackage{xfrac,fontspec,unicode-math}

\setmathfont[version=lm]{Latin Modern Math}
\setmathfont[version=xits]{XITS Math}
\setmathfont[version=asana]{Asana Math}
\setmathfont[version=cambria]{Cambria Math}

\newcommand{\abc}{abcdefghijklmnopqrstuvwxyz}
\newcommand{\abctextrm}{Text roman: \abc}
\newcommand{\abctextit}{Text italic: \ \ \emph{\abc}}
\newcommand{\abcmathit}{Math italic: \ \ensuremath{\abc}}
\newcommand{\formulas}{\ensuremath{\displaystyle
    \int_{0}^{1} x^{2}\,\mathrm{d}x = \sfrac{1}{3} \qquad
    \sum_{k=0}^{\infty} \frac{1}{k^{2}} = \frac{\pi^{2}}{6}}}
\newcommand{\doall}{\abctextrm\\ \abctextit\\ \abcmathit\\ \medskip \formulas}
\begin{document}
\setmainfont{Latin Modern Roman}
\mathversion{lm}
\section*{Latin Modern}
\doall

\setmainfont{XITS}
\mathversion{xits}
\section*{XITS, XITS Math}
\doall

\setmainfont{Palatino nova}
\mathversion{asana}
\section*{Palatino nova, Asana Math}
\doall

\setmainfont{Cambria}
\mathversion{cambria}
\section*{Cambria, Cambria Math}
\doall
\end{document}

Addendum: As pointed out in an answer to this question, unicode-math has the concept of math versions, which allows for efficient back-and-forth switching between math fonts. The code above makes use of this facility.

enter image description here

share|improve this answer
1  
It's been already pointed out that unicode-math has the concept of \mathversion that's more efficient than stating \setmathfont anew. You may wish to update your answer after looking at page 8 of the documentation. – egreg Sep 30 '11 at 13:50
@egreg: Thanks for this suggestion. I've updated the code and provided an additional paragraph to highlight the use of this facility. – Mico Sep 30 '11 at 14:04
1  
Now there are only a few opentype math fonts. Only 4 for free: Latin Modern Math, XITS Math, Asana Math, Neo Euler; 2 commercial: Cambria Math, Minion Pro; and some in development: Lucida Math, TeX Gyre(?). – Leo Liu Sep 30 '11 at 14:16
1  
The concept of math versions is in LaTeX2e's NFSS, say, normal and bold. You can use \mathversion in pdfLaTeX. unicode-math inherits the concept and makes it easier to use. – Leo Liu Sep 30 '11 at 14:23
@LeoLiu -- thanks for this. I've inserted a sentence in the answer noting the relative paucity of OpenType-based math fonts, and I've also inserted a sentence linking to a survey of free math fonts for pdflatex users. About Cambria Math: It's not free, but seems to be standard on Windows distributions; it's not free for others, but since it costs only $35 (for text and math fonts), it's a real bargain compared with the cost of the soon-to-be-released Minion Pro math font package. – Mico Sep 30 '11 at 14:29

Your Answer

 
discard

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.