Add one line, \usepackage{newtxtext}, run pdfLaTeX, and look inside the PDF with pdffonts: next to the body font TeXGyreTermesX sit CMMI10, CMR10, CMSY7 and CMEX10. The text turned into Times; the mathematics stayed behind in Computer Modern. When you change a Latin font in LaTeX, that is the one thing that actually causes trouble — which face you prefer comes second. This page walks the main Latin font packages shipped with TeX Live 2024, checking one at a time with pdffonts whether loading it really switches the maths as well. It covers the Computer Modern line (lmodern, newcm), Times and Palatino (newtx, newpx, mathptmx, mathpazo), and on to libertinus, fourier, kpfonts and XCharter — along both routes, the pdfLaTeX one and the fontspec one.
Change only the text and the maths stays in Computer Modern
For a document with mathematics, choose a package that switches text and maths together. LaTeX sets maths in fonts of its own — math italic, symbols, large operators — and swapping the body typeface never reaches them. Compare a PDF built with \usepackage{newtxtext} alone against one that also loads newtxmath, using pdffonts, and the separation is right there on screen.
# text only: the maths is still Computer Modern
$ pdflatex text-only.tex && pdffonts text-only.pdf
PHVSPW+TeXGyreTermesX-Regular Type 1 Custom yes yes yes
KGFAFA+CMMI10 Type 1 Builtin yes yes yes
PTYRNT+CMR10 Type 1 Builtin yes yes yes
DZZUCU+CMSY7 Type 1 Builtin yes yes yes
YQJSDJ+CMEX10 Type 1 Builtin yes yes yes
# add \usepackage{newtxmath}: no CM left at all
$ pdflatex text-and-math.tex && pdffonts text-and-math.pdf
IKSTLO+TeXGyreTermesX-Regular Type 1 Custom yes yes yes
QRRSLK+NewTXMI Type 1 Builtin yes yes yes
MIQVDX+txsys Type 1 Builtin yes yes yes
OGYQFN+txmiaX Type 1 Builtin yes yes yes
CYBZPM+txexs Type 1 Builtin yes yes yesThe same thing happens on paper. Times has heavier strokes and a larger face than Computer Modern, so leaving the maths in thin CM makes the formulas look starved and detached within the line. The text-and-math pairs exist to close that gap: newtxmath for Times, newpxmath or Pazo Math for Palatino, the fourier math set for Utopia. In other words, the reason newtx, newpx and fourier exist at all is not taste in typefaces but agreement with the maths. Conversely, if a document has almost no formulas — a letter, a notice, slides — you can ignore this whole section and pick whatever you like.
One more working assumption. The roman, sans and monospaced families are chosen independently, by separate packages. A combination such as “Palatino body, Helvetica sans, Courier mono” is built simply by loading mathpazo, helvet and courier together. And on pdfLaTeX, whenever you change the body font, the idiom is to write \usepackage[T1]{fontenc} alongside it (what T1 actually changes, and how these packages re-point \rmdefault underneath, belongs to the font-system page). Under XeLaTeX or LuaLaTeX with fontspec, fontenc is unnecessary and none of this applies.
The Computer Modern line — CM, lmodern, newcm, cm-super
If you are starting a new document in the CM line, the choice is lmodern (pdfLaTeX) or newcomputermodern (XeLaTeX / LuaLaTeX); there is little reason to stay on raw Computer Modern. The CM that LaTeX uses when you specify nothing is the very typeface Knuth designed for TeX — thin strokes, crisp serifs, the unmistakably “TeX” look — but its default encoding is the 7-bit OT1, with a real cost: accented words do not hyphenate.
Latin Modern (package lmodern) is GUST’s reworking of CM and its de facto successor. It keeps the appearance almost unchanged while supporting T1, so accented letters are single glyphs. Counting what TeX Live 2024 ships, the Type 1 set is 92 .pfb files — 72 text fonts plus 20 math fonts — and the OpenType set has 72 .otf files. Load \usepackage{lmodern} and the maths goes with it, to LMMathItalic10, LMMathSymbols10 and LMMathExtension10; not one CM font is left in the PDF. If you like CM’s face, start here.
New Computer Modern (package newcomputermodern, short name newcm) is Antonis Tsolomitis’s OpenType-first modern CM. The copy bundled with TeX Live 2024 holds body faces such as NewCM10-Regular alongside a complete math font, NewCMMath-Regular, the monospaced NewCMMono10, the sans NewCMSans10, and files covering Greek, Cyrillic and Devanagari. It also carries a heavier Book weight (NewCM10-Book) beside the usual Regular — unusual in the CM line, and a direct answer to CM’s tendency to look thin on the page.
One more name worth knowing is cm-super: a Type 1 collection auto-vectorised from CM/EC bitmaps, supplying T1- and TS1-encoded Computer Modern as Type 1. It is the fallback for an older setup without lmodern where you want non-bitmap PDFs while staying in T1; being an automatic conversion, it lacks hinting. There is essentially no reason to choose it today.
% the CM successor; the sensible default on pdfLaTeX
\usepackage{lmodern}
\usepackage[T1]{fontenc}
% modern CM with a complete math font; for XeLaTeX / LuaLaTeX
\usepackage{newcomputermodern} % or: \usepackage{newcm}Times and Palatino — newtx / newpx, and the easy mathptmx / mathpazo
For a maths-heavy paper in Times, the standard is newtxtext + newtxmath; for Palatino, newpxtext + newpxmath. Both come from Michael Sharpe at UC San Diego, and the head of the .sty records that they are reworkings of txfonts.sty. The interesting part is what actually lands in the PDF: newtxtext embeds not Times but TeXGyreTermesX-Regular — an extension of the TeX Gyre Termes discussed below. Likewise newpxtext embeds TeXGyrePagellaX-Regular. So the “Times package” and the “Palatino package” are really modern extensions built on URW clones, with maths and small caps added on top.
There is an easier route too. From PSNFSS, mathptmx (Times) and mathpazo (Palatino) switch text and maths together in one line. Measured, though, neither moves the maths completely: the mathptmx PDF still carries CMEX10, CMSY10 and CMR10 among NimbusRomNo9L and StandardSymL, and the mathpazo PDF keeps the same three beside PazoMath. In other words, the large operators (∑, ∫) and some symbols stay Computer Modern. That is fine when it does not matter, but it is exactly why a formula-driven document reaches for newtx or newpx.
Sans and monospaced can be matched from the same lineage. Helvetica is helvet; because Helvetica runs large, the idiom when setting it beside Times is to load it slightly reduced, as \usepackage[scaled=.92]{helvet}. Courier (monospaced) is courier. Neither touches the maths — each replaces only the sans or the mono — so they layer freely on top of whatever roman package you chose.
Underneath all these classic faces lies GUST’s TeX Gyre family. Starting from the URW clones of the PostScript base 35, GUST reworked the glyphs and accents into eight families: Termes (tgtermes, from URW Nimbus Roman No9 L, so ≈ Times), Heros (tgheros, ≈ Helvetica), Pagella (tgpagella, from URW Palladio L, ≈ Palatino), Cursor (tgcursor, ≈ Courier), Bonum (tgbonum, a Bookman), Schola (tgschola, a Century Schoolbook), Adventor (from URW Gothic L, an Avant Garde) and Chorus (from URW Chancery L, a Zapf Chancery). But loading \usepackage{tgtermes} on its own leaves the maths in Computer Modern — CMMI10 and company stay in the PDF. To bring the maths along, name the matching OpenType math font, TeX Gyre Math (texgyretermes-math.otf, texgyrepagella-math.otf, …), through \setmathfont from unicode-math.
\documentclass{article}
% Times body + matching math, on pdfLaTeX
\usepackage{newtxtext}
\usepackage{newtxmath}
\usepackage[scaled=.92]{helvet} % Helvetica, slightly reduced
\usepackage{courier} % mono = Courier
\usepackage[T1]{fontenc}
\begin{document}
Text in Times, with matching math: \( e^{i\pi} + 1 = 0 \).
\textsf{Sans is Helvetica.} \texttt{Mono is Courier.}
\end{document}Libertinus, fourier, kpfonts, XCharter — choosing on completeness
If you want a “complete family” — body, sans, mono and maths all drawn to one plan — the fullest set in TeX Live 2024 is Libertinus. Counting what libertinus-fonts contains: a serif in three weights (Regular, Semibold, Bold) across upright and italic, plus Display and Initials cuts, three sans faces, a monospace, a keyboard font, and LibertinusMath-Regular. It descends from Linux Libertine and Linux Biolinum; the README states it was forked from the 5.3.0 release of July 2012. The libertinus package succeeds the older libertine (Linux Libertine); it is only a wrapper, loading libertinus-type1 on pdfLaTeX and libertinus-otf on XeLaTeX/LuaLaTeX, and it takes options such as osf (old-style figures).
There is a catch, though. Loading \usepackage{libertinus} under pdfLaTeX leaves the maths in Computer Modern: measured, CMMI10, CMSY10 and CMEX10 sat right next to LibertinusSerif, LibertinusSans and LibertinusMono. On pdfLaTeX you must add \usepackage{libertinust1math} explicitly; do that and the PDF’s maths collapses to a single LibertinusT1Math, with no CM left. Under LuaLaTeX or XeLaTeX the very same \usepackage{libertinus} pulls in LibertinusMath-Regular by itself. Libertinus is therefore a package whose completeness depends on the engine — on pdfLaTeX, remember it is two lines.
By contrast, fourier and kpfonts finish the job in one line: measured, both drove Computer Modern out of the PDF entirely. fourier puts Adobe Utopia in the body and brings its own math set — Fourier-Math-Extension, Fourier-Math-Symbols, Fourier-Math-Letters-Italic. Utopia is a calm, practical serif with lasting popularity in science and engineering. kpfonts is built on URW Palladio but finished into a clearly distinct face, carrying a broad math group (Kp--M-Ex, Kp--M-Sy, Kp--M-Italic), true small caps, old-style figures and variants for multiple integrals. An OpenType edition, kpfonts-otf, exists as well.
Charter is a practical serif that reads well on screen and on paper; Michael Sharpe’s XCharter, an extension of Bitstream Charter, carries the body. But \usepackage{XCharter} on its own also leaves the maths in CM. Measured, adding \usepackage[charter]{newtxmath} is what turned the maths into XCharterMathMI, txexs and txsys. TeX Live 2024 also ships an OpenType math font, XCharter-Math.otf, but it is loaded through \setmathfont from unicode-math, not as \usepackage{xcharter-math}, so it is unavailable on pdfLaTeX. One more: Bera (bera) is a Type 1 rendering of Bitstream Vera, in three families — Bera Serif (a slab serif), Bera Sans and Bera Mono. It has no maths, so it suits partial use, such as taking only the mono with beramono.
% one line each — measured: no Computer Modern left in the PDF
\usepackage{fourier} % Utopia + a full math set
% \usepackage{kpfonts} % Palladio-derived, wide math coverage
% Libertinus on pdfLaTeX needs TWO lines, or the math stays CM
% \usepackage{libertinus}
% \usepackage{libertinust1math}
% Charter body + matching math
% \usepackage{XCharter}
% \usepackage[charter]{newtxmath}
\usepackage[T1]{fontenc}At a glance — which packages switch the maths too (measured with pdffonts)
The table below records what happened when a minimal document loading only that package was compiled with pdfLaTeX and the surviving fonts read out of the PDF with pdffonts. Where the “maths switches too” column says yes, no extra line is needed. Where it says no, the package changes the text and leaves the maths in CM — exactly the mismatch we opened with.
| Package | Look / lineage | Maths switches too? (fonts left in the PDF) |
|---|---|---|
lmodern | Latin Modern (CM successor, serif) | Yes — LMMathItalic10, LMMathSymbols10, LMMathExtension10; no CM left |
newcomputermodern | New Computer Modern (modern CM, OpenType) | Yes — NewCMMath-Regular; aimed at XeLaTeX / LuaLaTeX |
mathptmx | Times (PSNFSS, easy) | Partly — NimbusRomNo9L + StandardSymL, but CMEX10, CMSY10, CMR10 remain |
newtxtext + newtxmath | Times (newtx; really TeXGyreTermesX) | Yes — NewTXMI, txsys, txmiaX, txexs; no CM left |
mathpazo | Palatino (PSNFSS, easy) | Partly — PazoMath arrives, but CMEX10, CMSY10, CMR10 remain |
newpxtext + newpxmath | Palatino (newpx; really TeXGyrePagellaX) | Yes — NewPXMI, pxsys, pxmiaX, txexs; no CM left |
helvet | Helvetica (sans only; reduce with scaled) | Not applicable — it never touches maths; layer it on a roman package |
courier | Courier (mono only) | Not applicable — it never touches maths |
tgtermes / tgpagella / tgheros / tgcursor | TeX Gyre (from URW clones; ≈Times / Palatino / Helvetica / Courier) | No — CMMI10 and friends remain; add TeX Gyre Math via \setmathfont |
libertinus | Libertinus (Linux Libertine successor; serif/sans/mono/math) | Depends on the engine — on pdfLaTeX CM remains, so add libertinust1math; on Lua/XeLaTeX LibertinusMath-Regular comes automatically |
fourier | Adobe Utopia-based | Yes — Fourier-Math-Extension, Fourier-Math-Symbols, Fourier-Math-Letters-Italic; no CM left |
kpfonts | URW Palladio-derived, full set | Yes — Kp--M-Ex, Kp--M-Sy, Kp--M-Italic; no CM left |
XCharter | Charter (Bitstream Charter extension) | No on its own — CM remains; add \usepackage[charter]{newtxmath} and it becomes XCharterMathMI |
bera | Bitstream Vera (slab serif / sans / mono) | No — CMMI10 and friends remain; it suits partial use, such as beramono for the mono alone |
A rough guide when unsure. Like CM? lmodern (or newcm on an OpenType engine). Need Times? newtxtext + newtxmath; Palatino? newpxtext + newpxmath. Want it done in one line? fourier or kpfonts. After a complete family? libertinus — and on pdfLaTeX do not forget libertinust1math. To use a font already installed on your system, switch the engine to XeLaTeX or LuaLaTeX and take the fontspec route instead. One principle holds on both routes: once you change the text, check the maths.