Western font families

You want to change the body typeface away from Computer Modern — this page is a map for choosing a text (serif) font the pdfLaTeX way, with a single line of \usepackage. It gathers the staples: the Computer Modern family (the default CM, its successor Latin Modern, the modern New Computer Modern), the classic “base” faces such as Times and Palatino together with the math fonts that match them, and further choices like Libertinus, fourier, and Charter. The one thing to keep in mind: if your document has mathematics, pick a package that handles both text and math. Change only the body and leave the math in Computer Modern, and the mismatch sticks out. To use a commercial font already installed on your system, that is the job of fontspec (XeLaTeX / LuaLaTeX), not pdfLaTeX, and we point you there.

How to choose — if there is math, switch the math too

First, the scope. This page covers **packages usable with pdfLaTeX (and latex via DVI) that switch the body typeface with one line of \usepackage.** To call an OpenType/TrueType font installed on your system directly by its name, switch the engine to XeLaTeX or LuaLaTeX and use fontspec — that route is on the “fontspec” page. How these packages select fonts underneath (the five NFSS attributes, re-pointing \rmdefault) is covered on the “Font system” page.

The most important principle: for a document with mathematics, choose a package that switches text and math together. LaTeX sets math in dedicated fonts (math italic, symbols, large operators), and replacing only the body font leaves the math in the default Computer Modern. Times text beside CM math does not match in weight or color, and the mismatch is obvious at a glance. This is why matching math fonts exist — newtxmath for Times, newpxmath or Pazo Math for Palatino. Conversely, for a document with almost no math (a letter, a flyer, slides), you may pick any body font without worrying about it.

One more practical note. The roman, sans, and monospaced faces 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 whenever you change the body font, the idiom is to also write **\usepackage[T1]{fontenc}** (see the encoding section of the “Font system” page for why).

The Computer Modern family — CM / Latin Modern / New CM

With no font specified, LaTeX sets in Computer Modern (CM) — the typeface Knuth designed for TeX, with thin strokes and crisp serifs, the unmistakably “TeX” look. But raw CM defaults to the old 7-bit OT1 encoding and carries its weaknesses, such as accented words that do not hyphenate well. There is little reason to use raw CM in a new document — reach for Latin Modern instead.

Latin Modern (package lmodern) is GUST’s reworking of CM — the de facto CM successor. It keeps CM’s appearance almost unchanged while supporting the T1 encoding (so accented letters are single glyphs), and ships in both Type 1 (.pfb) and OpenType (.otf). It is a broad family — 72 text fonts and 20 math fonts — with matching math included. If you like CM’s look, start here.

New Computer Modern (package newcomputermodern, short name newcm) is Antonis Tsolomitis’s modern assembly of CM (v8.0.1 as of 2026). Built around OpenType, it provides a complete math font, glyphs for many alphabets (Greek, Cyrillic, and more), and a heavier Book weight alongside the usual Regular. It is actively updated — recent work added math glyphs aligned with Unicode 17.0. It is the first choice when you want the CM family in a modern guise on an OpenType engine (XeLaTeX / LuaLaTeX).

One more to know is **cm-super** — a Type 1 rendering of CM/EC that supplies the T1- and TS1-encoded Computer Modern in Type 1. It is a fallback when, on an older setup without lmodern, you want smooth (non-bitmap) PDFs while staying in T1; but because it was auto-vectorized from CM/EC bitmaps, it lacks hinting. Today lmodern or newcm almost always suffices.

latex
% CM の後継。新規文書での既定的な選択 / The CM successor — a sensible default
\usepackage{lmodern}
\usepackage[T1]{fontenc}

% 現代版 CM(OpenType・完全な数式)。XeLaTeX / LuaLaTeX 向け
% Modern CM with full math (OpenType); for XeLaTeX / LuaLaTeX
\usepackage{newcomputermodern}  % または / or: \usepackage{newcm}

Classic faces with matching math — Times, Palatino, Helvetica, Courier

Next, the classic faces descended from the PostScript “base 35.” Long and widely used, they come with free clones bundled in (the TeX Gyre and URW versions below), so they work without extra installation. To use one for the body, the point is to pick a family that comes with math.

Times comes in two lines. The easy one is **mathptmx from PSNFSS: it sets the body in Times and builds math from Times, Symbol, and some CM glyphs. For higher quality, reach for Michael Sharpe’s newtx family — newtxtext for the body and newtxmath** for math (v1.756 as of 2026, actively maintained). Its math is the more serious effort, and newtx is the go-to for math-heavy papers in a Times look.

Palatino likewise comes in two lines. The simple one is PSNFSS’s **mathpazo, which sets Palatino and uses the Pazo Math virtual font for matching math. The newer, fuller option is Sharpe’s newpx family — newpxtext for the body and newpxmath** (v1.415) for math. Palatino is a generous, readable face, popular in both the humanities and mathematics.

Sans and monospaced can be matched from the same lineage. Helvetica is **helvet; because Helvetica runs large, the idiom when pairing it with Times and the like is to load it slightly reduced, as \usepackage[scaled=.92]{helvet}. Courier (monospaced) is courier**. These replace only the sans or mono face, so they combine freely with whatever roman package you chose.

For these classic faces there are GUST’s high-quality free clones, TeX Gyre: Termes (tgtermes) ≈ Times, Heros (tgheros) ≈ Helvetica, Pagella (tgpagella) ≈ Palatino, Cursor (tgcursor) ≈ Courier, plus Bonum (tgbonum, a Bookman) and Schola (tgschola, a Century Schoolbook). Each extends a URW clone of a base face, and matching math fonts (TeX Gyre Math) are provided separately. Whether you use a “meta” package such as mathptmx or name a TeX Gyre face directly is a matter of taste, but the TeX Gyre fonts are the newer, more carefully finished glyphs and accents.

document.tex
\documentclass{article}
% Times の本文+対の数式(高品質)/ Times body + matching math (high quality)
\usepackage{newtxtext}
\usepackage{newtxmath}
\usepackage[scaled=.92]{helvet}  % サンセリフは Helvetica を少し縮小 / Helvetica, slightly reduced
\usepackage{courier}            % 等幅は 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}

Other popular choices — Libertinus, fourier, kpfonts, Charter, and more

Beyond the CM family and the classic faces, several fine packages provide a complete text-plus-math set. All of them handle math too, so they are safe even for papers.

Libertinus (package libertinus) is a modern family descended from Linux Libertine/Biolinum, a comprehensive face with serif, sans, monospaced, and math. libertinus is a wrapper: on pdfLaTeX it loads libertinus-type1, and on XeLaTeX/LuaLaTeX it loads libertinus-otf. Just \usepackage{libertinus} switches the roman, sans, and mono together, and it takes options such as osf (old-style figures). Think of it as the successor to the older libertine package (Linux Libertine); its math is handled by the libertinust1math line.

fourier (package fourier) puts Adobe Utopia in the body and provides a full matching math font and symbols to go with it. Utopia is a steady, practical serif that sets math well, with enduring popularity in science and engineering. Loading \usepackage{fourier} makes the body Utopia and sets the math to match.

kpfonts (package kpfonts) is a family based on URW Palladio but finished to look clearly distinct from its parent, providing roman, sans, and monospaced shapes with true small caps and old-style figures, plus an extensive set of math fonts (the AMS fonts in normal and bold, upright and slanted Greek, variants for multiple integrals). It is a math-rich, self-contained choice for those who want one package to cover everything (an OpenType edition, kpfonts-otf, also exists).

Charter is a practical serif that reads well on screen and on paper. Michael Sharpe’s **XCharter** package — an extension of Bitstream Charter — carries the body, with small caps and old-style figures. For math, loading newtxmath with the **charter (= xcharter) option gives math italics and Greek that match Charter; more recently a dedicated xcharter-math** package appeared (2026). It suits long, text-heavy documents that want a slightly calmer face than Times.

If you are after a slab serif or a sans, Bera (package bera) is a candidate — a Type 1 rendering of Bitstream Vera, in three families: Bera Serif (a slab serif), Bera Sans (a Frutiger-style sans), and Bera Mono (monospaced). It does not include math, but it is handy for partial use, such as taking only the mono with beramono.

latex
% それぞれ本文+数式を一式で切り替える / Each switches text + math as a set
\usepackage{libertinus}   % Libertinus(セリフ/サンセリフ/等幅/数式)
% \usepackage{fourier}    % Utopia + 充実した数式 / Utopia with full math
% \usepackage{kpfonts}    % URW Palladio 由来・広範な数式 / Palladio-derived, rich math

% Charter 本文+対の数式 / Charter body + matching math
% \usepackage{XCharter}
% \usepackage[charter]{newtxmath}
\usepackage[T1]{fontenc}

At a glance — package, look, and whether it has math

The main options, listed by the \usepackage name for the body, the look they give, and whether matching math is available. The rule of thumb: for a document with math, choose from the rows where “matching math” is yes. The sans- or mono-only entries (helvet, courier, bera) are layered on top of a roman package.

PackageLook / lineageMatching math?
lmodernLatin Modern (CM successor, serif)Yes (CM-style math)
newcomputermodernNew Computer Modern (modern CM, OpenType)Yes (complete math)
mathptmxTimes (PSNFSS, easy)Yes (Times + Symbol + some CM)
newtxtext + newtxmathTimes (newtx, high quality)Yes (newtxmath)
mathpazoPalatino (PSNFSS, easy)Yes (Pazo Math)
newpxtext + newpxmathPalatino (newpx, high quality)Yes (newpxmath)
helvetHelvetica (sans only; reduce via scaled)No (sans face)
courierCourier (mono only)No (mono face)
tgtermes / tgpagella / tgheros / tgcursorTeX Gyre (≈Times / Palatino / Helvetica / Courier)Via TeX Gyre Math (separate)
libertinusLibertinus (Linux Libertine successor, full set)Yes (libertinust1math)
fourierUtopia-basedYes (full math)
kpfontsURW Palladio-derived, full setYes (extensive math)
XCharterCharter (Bitstream Charter extension)newtxmath charter / xcharter-math
beraBitstream Vera (serif / sans / mono)No

A rough guide when unsure. **Like CM? Use lmodern** (or newcm on an OpenType engine). Need Times? newtxtext + newtxmath; for Palatino, newpxtext + newpxmath or mathpazo. For a newer, well-rounded full set, libertinus; for Utopia-style math, fourier. To use a commercial system font directly, move on to fontspec (XeLaTeX / LuaLaTeX).