LaTeX Font Size: Commands, Document Options and \fontsize
LaTeX controls font size at two levels. The document class option (10pt, 11pt, 12pt) sets the base size for the whole document, and ten relative commands from \tiny to \Huge scale individual passages up or down from that base. When neither is enough, \fontsize sets an exact point size. This guide covers all three, the actual point values behind each command, how to size captions, footnotes, headers and section titles, font size in math mode and in Beamer, and the errors that come up when a size is not available.
The Ten Font Size Commands
Every standard class defines the same ten size commands. They are declarations: each one switches the size for everything that follows until the end of the current group or environment. The usual way to apply one is inside braces:
\documentclass{article}
\begin{document}
{\tiny tiny} {\scriptsize scriptsize} {\footnotesize footnotesize}
{\small small} {\normalsize normalsize} {\large large}
{\Large Large} {\LARGE LARGE} {\huge huge} {\Huge Huge}
\end{document}The commands are relative, not absolute. \large means “one step above the body size”, so the point size it produces depends on the class option. The table below gives the exact values for the standard classes (article, report, book); the second number in each cell is the baseline skip, the distance between lines.
| Command | 10pt (default) | 11pt | 12pt |
|---|---|---|---|
\tiny | 5 / 6 | 6 / 7 | 6 / 7 |
\scriptsize | 7 / 8 | 8 / 9.5 | 8 / 9.5 |
\footnotesize | 8 / 9.5 | 9 / 11 | 10 / 12 |
\small | 9 / 11 | 10 / 12 | 10.95 / 13.6 |
\normalsize | 10 / 12 | 10.95 / 13.6 | 12 / 14.5 |
\large | 12 / 14 | 12 / 14 | 14.4 / 18 |
\Large | 14.4 / 18 | 14.4 / 18 | 17.28 / 22 |
\LARGE | 17.28 / 22 | 17.28 / 22 | 20.74 / 25 |
\huge | 20.74 / 25 | 20.74 / 25 | 24.88 / 30 |
\Huge | 24.88 / 30 | 24.88 / 30 | 24.88 / 30 |
The odd-looking numbers (10.95, 14.4, 17.28, 20.74, 24.88) are powers of 1.2 times 10pt. They are the sizes Donald Knuth prepared for Computer Modern, and the standard classes stick to them so that every size has a real font behind it. Note that at 12pt, \huge and \Huge are the same size: the scale tops out at 24.88pt.
Setting the Base Size: Document Class Options
The body text size is a class option. The standard classes accept 10pt (the default), 11pt and 12pt:
\documentclass[12pt]{article}
\documentclass[11pt, a4paper]{report}
\documentclass[10pt, twocolumn]{book}Changing this one option rescales everything at once: body text, headings, footnotes, captions and the relative size commands. For most documents this is the only font-size setting that needs to change. Anything other than those three values is silently ignored by the standard classes, which is the source of many “why is my 14pt option not working” questions.
Sizes from 8pt to 20pt with extsizes
For a base size outside 10–12pt, the extsizes bundle provides drop-in replacements for the standard classes: extarticle, extreport, extbook and extletter. They accept 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt and 20pt:
\documentclass[14pt]{extarticle}
\begin{document}
Body text is now 14pt, and \large, \Large and friends scale with it.
\end{document}The KOMA-Script classes (scrartcl, scrreprt, scrbook) go further and accept any size, e.g. \documentclass[fontsize=13pt]{scrartcl}. The memoir class accepts 9pt to 60pt through its own options. If you are already using one of these classes, prefer its option over extsizes.
Scoping a Size Change: Braces vs. Environments
Because the size commands are declarations, how far they reach depends on where you put them. There are three patterns:
% 1. Braces: the change ends at the closing brace
This is normal, {\large this is large}, and this is normal again.
% 2. Environment form: the same, but clearer for multi-paragraph blocks
\begin{small}
A long quotation or note set in small type. Several paragraphs
can go here.
\end{small}
% 3. Bare declaration: lasts until the end of the enclosing group,
% e.g. the rest of a table cell, a footnote, or the whole document
\small
Everything from here on is small...
\normalsize
...until it is explicitly reset.A very common mistake is to write \large{text} as if \large took an argument. It compiles, but the braces only group the word text; the \large itself was issued outside them and stays active for the rest of the paragraph or group. Always put the command inside the braces: {\large text}.
One more subtlety: line spacing is decided when a paragraph ends. If you enlarge only part of a paragraph, the lines keep the normal baseline skip and the large text may collide with the line above. For a whole paragraph in a different size, end the paragraph inside the group with \par or a blank line. The environment form does not do this for you either, so leave a blank line before \end:
{\Large A heading-like paragraph in Large type.\par}
\begin{Large}
The environment form needs the blank line too.
\end{Large}Exact Sizes with \fontsize and \selectfont
When you need a size that is not on the ten-step scale, use \fontsize{size}{baselineskip}\selectfont. The first argument is the font size, the second the distance between baselines; a baseline skip of about 1.2× the size matches LaTeX's own defaults. Nothing happens until \selectfont is called:
\documentclass{article}
\usepackage{lmodern} % scalable fonts: any size works
\begin{document}
{\fontsize{14}{17}\selectfont This is exactly 14pt text on a 17pt
baseline, and it wraps correctly across lines.\par}
{\fontsize{40}{48}\selectfont Poster}
\end{document}Units are optional and default to points; \fontsize{14pt}{17pt} is the same as \fontsize{14}{17}. The lmodern line matters: the default Computer Modern fonts exist only at fixed sizes, so a request for 15pt gets substituted with 14.4pt and a warning (see Common Errors below; 14pt is close enough to 14.4pt that LaTeX substitutes it silently). Latin Modern is the same design in a scalable format.
How \linespread fits in
\fontsize sets the baseline skip directly, while \linespread{factor} multiplies whatever baseline skip the current size defines. \linespread{1.5} in the preamble gives roughly one-and-a-half spacing throughout, without touching the font size. Like \fontsize, it only takes effect at the next \selectfont or size command, which is why in the body you write \linespread{1.5}\selectfont. For the usual double-spacing requirement, the setspace package is more precise: \onehalfspacing, \doublespacing and the spacing environment handle footnotes and floats correctly, which a bare \linespread does not.
Font Size for Specific Elements
Most parts of a document have a size baked into the class. Each one has a clean way to override it.
Captions
Load the caption package and pass the size as an option. Separate settings exist for the label (“Figure 1:”) and the text:
\usepackage[font=small, labelfont=bf]{caption}
% Different sizes for the label and the text
\usepackage[font=footnotesize, labelfont={bf,small}]{caption}
% Or change it later with \captionsetup
\captionsetup{font=scriptsize}Footnotes
Footnotes are set in \footnotesize. To make every footnote larger or smaller, redefine that command once in the preamble:
\renewcommand{\footnotesize}{\small} % larger footnotes
\renewcommand{\footnotesize}{\scriptsize} % smaller footnotesBe aware that \footnotesize is also the default size for captions in some classes and for \tablenotes, so this change may reach further than the footnotes. See LaTeX Footnotes for the other footnote settings.
Headers and footers
With fancyhdr, the header and footer fields are ordinary text, so a size declaration at the start of each field is all it takes:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\small\itshape Font Sizes in LaTeX}
\fancyhead[R]{\small\thepage}
\fancyfoot[C]{\footnotesize Draft -- do not distribute}Section titles
The titlesec package changes heading formats. Its starred form keeps the standard layout and only swaps the font:
\usepackage{titlesec}
\titleformat*{\section}{\large\bfseries}
\titleformat*{\subsection}{\normalsize\bfseries}
\titleformat*{\subsubsection}{\normalsize\itshape}
% Full control, including an exact size via \fontsize:
\titleformat{\section}
{\fontsize{16}{19}\selectfont\bfseries}{\thesection}{1em}{}The sectsty package does the same job with \sectionfont{\large}, and KOMA-Script classes have \setkomafont{section}{\large\bfseries} built in. Do not load titlesec with KOMA or memoir; use their own mechanisms.
Title, author and date
The arguments of \title and \author accept size commands directly: \title{\Huge A Big Title} or \author{\large Ada Lovelace}. The titling package offers a tidier hook, \pretitle{\begin{center}\LARGE}.
Font Size in Math Mode
Math has its own size system. Every math expression is set in one of four styles: \displaystyle (displayed equations), \textstyle (inline math), \scriptstyle (first-level subscripts and superscripts) and \scriptscriptstyle (nested scripts). You can force any of them:
$\displaystyle \sum_{i=1}^{n} x_i$ % inline math with display-size limits
$\textstyle \frac{a}{b}$ % a small fraction in a display
$\scriptstyle x + y$ % script-size mathThe text size commands do not work inside math mode: $\small x$ produces the warning Command \small invalid in math mode and changes nothing. Apply the size command around the math instead; the math fonts follow the surrounding text size:
{\small $E = mc^2$} % small math, inline
{\footnotesize \[ E = mc^2 \]} % small displayed equationTo change the script sizes globally, use \DeclareMathSizes in the preamble. It takes the text size it applies to, then the sizes for text, script and scriptscript style. The defaults for a 10pt document are 10/10/7/5:
% For 10pt body text, use 7.5pt scripts and 6pt nested scripts
\DeclareMathSizes{10}{10}{7.5}{6}
% Must be declared for each body size you use, e.g. in a 12pt document:
\DeclareMathSizes{12}{12}{8}{6}Font Size in Beamer
Beamer frames are 128×96 mm, so the point sizes are small on paper but large on screen. The class accepts 8pt, 9pt, 10pt, 11pt (the default), 12pt, 14pt, 17pt and 20pt, with the same relative commands inside frames:
\documentclass[14pt]{beamer}
\begin{document}
\begin{frame}{Font sizes}
Normal 14pt text.
{\small A smaller remark.}
{\tiny Source: fine print that nobody reads.}
\end{frame}
\end{document}Beamer also sizes its own elements through fonts you can set in the preamble: \setbeamerfont{frametitle}{size=\Large}, \setbeamerfont{footnote}{size=\tiny} and so on. For a one-off slide with a lot of text, \begin{frame}[shrink=10] scales the content down by 10 percent.
Relative Changes with relsize
The relsize package changes size relative to the current size instead of relative to the body size. \relsize{n} moves n steps up or down the ten-step scale; \smaller and \larger are one step each. This is what you want inside macros that may be called at any size:
\usepackage{relsize}
\newcommand{\unitlabel}[1]{{\smaller #1}} % one step smaller than its number
10\,\unitlabel{kg} and {\Large 10\,\unitlabel{kg}}
{\relsize{2} two steps larger} {\relsize{-1} one step smaller}
\textlarger{inline form} and \textsmaller{its opposite}For a scale factor rather than steps, \relscale{1.25} from the same package multiplies the current size by 1.25, and the small scalefnt package does the same with \scalefont{1.25}.
Scaling the Whole Document
From largest effect to smallest, these are the ways to make an entire document bigger or smaller:
- Change the class option:
\documentclass[12pt]{article}, or switch toextarticlefor 8–20pt. This keeps every element in proportion and is the right answer 90% of the time. - With a KOMA-Script class, or the
scrextendpackage in a standard class,\changefontsizes{13pt}sets an arbitrary body size and recomputes the relative commands. - Issue
\fontsize{13}{16}\selectfontright after\begin{document}. Body text changes, but headings, footnotes and captions keep their own sizes, so they may look out of proportion. - Leave the font alone and scale the page: a
12ptdocument printed on a smaller paper size, or thegeometrypackage with narrower margins, changes how big the text looks without changing the font.
Common Errors and Warnings
| Message or symptom | Cause | Fix |
|---|---|---|
| Font shape `OT1/cmr/m/n' in size <15> not available, size <14.4> substituted | Computer Modern is only available at fixed sizes; \fontsize asked for one in between | Load \usepackage{lmodern}, or put \RequirePackage{fix-cm} before \documentclass, or use anyfontsize |
| Command \small invalid in math mode | A text size command inside $...$ or a display | Move it outside: {\small $x$}, or use \scriptstyle for the math itself |
14pt class option has no effect | The standard classes only know 10pt, 11pt and 12pt | Use extarticle, a KOMA class with fontsize=14pt, or memoir |
Text stays large after \large{word} | The command is outside the braces, so it applies to the rest of the group | Write {\large word} |
\fontsize changes nothing | Missing \selectfont | \fontsize{14}{17}\selectfont |
| Enlarged words overlap the line above | Baseline skip is fixed per paragraph, and the paragraph ended outside the group | Put \par or a blank line inside the group (also in the environment form) |
\huge and \Huge look the same | At 12pt both map to 24.88pt, the top of the scale | Use \fontsize with lmodern for anything larger |
Complete Example
\documentclass[12pt]{article}
\usepackage{lmodern}
\usepackage[font=small, labelfont=bf]{caption}
\usepackage{fancyhdr}
\setlength{\headheight}{14pt}
\usepackage{titlesec}
\usepackage{relsize}
% Headings one step larger than the body, in bold
\titleformat*{\section}{\Large\bfseries}
\titleformat*{\subsection}{\large\bfseries}
% Small running header, footnote-size page number
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\small\itshape Font sizes in LaTeX}
\fancyfoot[C]{\footnotesize\thepage}
% Slightly larger math scripts for a 12pt body
\DeclareMathSizes{12}{12}{9}{7}
\title{\Huge Font Sizes}
\author{\large Ada Lovelace}
\date{\normalsize \today}
\begin{document}
\maketitle
\section{Relative sizes}
The body is 12pt. {\small This sentence is small,} {\large this one is
large,} and this one is back to normal. A footnote keeps its own
size.\footnote{Set in \texttt{\textbackslash footnotesize}, 10pt here.}
\begin{footnotesize}
A whole paragraph in footnote size, with the matching line spacing,
because the blank line ends the paragraph inside the group.
\end{footnotesize}
\section{Exact sizes}
{\fontsize{15}{18}\selectfont This paragraph is exactly 15pt on an
18pt baseline, which is not one of the ten standard steps.\par}
\subsection{Relative to the current size}
Prices: 10\,{\smaller EUR} and {\Large 10\,{\smaller EUR}} scale together.
\subsection{Math}
Inline $E = mc^2$, then {\small $E = mc^2$} in small, and
$\displaystyle \sum_{k=1}^{n} k = \frac{n(n+1)}{2}$ with display-size limits.
\begin{table}[htbp]
\centering
\caption{The caption is small and its label bold, via the caption package.}
\begin{tabular}{lr}
Size & Points \\
\hline
\verb|\small| & 10.95 \\
\verb|\large| & 14.4 \\
\end{tabular}
\end{table}
\end{document}Quick Reference
| Task | Command |
|---|---|
| Body size for the whole document | \documentclass[12pt]{article} |
| Body size 8–20pt | \documentclass[14pt]{extarticle} |
| Smaller text | {\small ...}, {\footnotesize ...}, {\scriptsize ...}, {\tiny ...} |
| Larger text | {\large ...}, {\Large ...}, {\LARGE ...}, {\huge ...}, {\Huge ...} |
| Back to the body size | \normalsize |
| Multi-paragraph block | \begin{small} ... \end{small} |
| Exact size | \fontsize{14}{17}\selectfont (with lmodern) |
| Line spacing | \linespread{1.5} or setspace |
| Caption size | \usepackage[font=small]{caption} |
| Footnote size | \renewcommand{\footnotesize}{\small} |
| Section title size | \titleformat*{\section}{\large\bfseries} (titlesec) |
| Header size | \fancyhead[L]{\small ...} (fancyhdr) |
| Math style | \displaystyle, \textstyle, \scriptstyle, \scriptscriptstyle |
| Script sizes in math | \DeclareMathSizes{10}{10}{7}{5} |
| One step smaller/larger than current | \smaller, \larger, \relsize{n} (relsize) |
| Beamer base size | \documentclass[14pt]{beamer} |
Next Steps
Sizes sorted? The rest of the typography is next:
- Bold, Italics & Underline – Font weight and shape commands that combine with the size commands
- Page Size & Margins – Paper size and margins with the geometry package
- LaTeX Footnotes – Footnote numbering, placement and spacing
- Mathematical Expressions – Display math, fractions and the amsmath environments
- Using Colors in LaTeX – Colored text with xcolor
- Learn LaTeX – Complete beginner tutorial covering all the basics
Free LaTeX Tools
- LaTeX Preview – Compare font sizes with a live PDF preview
- AI LaTeX Generator – Generate LaTeX from text descriptions
- LaTeX Symbols Reference – Browse math operators and special characters
Related Articles
Degree Symbol: How to Type ° on Keyboard, Mac, iPhone, Word, LaTeX
Best LaTeX Editors for Mac: Complete Comparison Guide 2026
From Crixet to Prism: The Evolution of AI-Powered LaTeX Editing
How to Create a Professional Resume in LaTeX (Complete Guide 2026)
Fix font size problems faster with AI
Octree's AI editor explains font substitution warnings, suggests the right package for the size you want, and compiles your document in seconds.
Try Octree Free →