In a 12pt document, LaTeX's \Huge and \huge are the same command. Not similar in size — line 86 of size12.clo reads \let\Huge=\huge, making them literally one thing. That happens because the ten size commands from \tiny to \Huge denote relative steps against the body text rather than absolute sizes, so the same \large yields 12pt in a 10pt document and 14.4pt in a 12pt one. And the ladder of steps is not a LaTeX invention: the numbers are exactly the \magstep values Knuth wrote into plain TeX. This page gives a measured table of what all ten commands come to at 10pt, 11pt and 12pt, the famous trap where {\Large ...} changes the letters but not the leading, and what is really going on when \fontsize silently does nothing.
From \tiny to \Huge: the ten declarations
The size commands take no argument. They are not commands like \textbf{...} but declarations that switch everything from that point on, so you delimit their reach yourself with a group or an environment. From smallest to largest there are ten: \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge, \Huge. The only thing separating the steps is the case of the initial and the all-caps LARGE, so watch the spelling rather than the look. Writing \Large{text} does not pass an argument: it declares \Large and then puts down a group containing {text}, and leaving that group does not restore the size. To limit the reach, write {\Large text} — the declaration goes inside the braces. \normalsize is the body size and matches the size option of your \documentclass (10pt by default).
% right: the declaration is inside the braces
Ordinary text. {\Large only this part is large.} Ordinary again.
% wrong: nothing is passed as an argument, and the size never comes back
Ordinary text. \Large{this is large} and so is everything after it.The real point sizes depend on the base (10pt, 11pt, 12pt)
The same command yields a different point size depending on whether you passed 10pt, 11pt or 12pt to \documentclass. \large is 12pt in both a 10pt and an 11pt class, but 14.4pt in a 12pt class. The table below is what all ten actually produced in the standard classes (article, report, book) when \f@size and \baselineskip were written out during a run. Each cell reads font size / leading — the leading being the distance between the baselines of consecutive lines. The leading is included because the table then shows at a glance that a size command moves the line spacing along with the letters.
| Command | 10pt class | 11pt class | 12pt class |
|---|---|---|---|
\tiny | 5pt / 6pt | 6pt / 7pt | 6pt / 7pt |
\scriptsize | 7pt / 8pt | 8pt / 9.5pt | 8pt / 9.5pt |
\footnotesize | 8pt / 9.5pt | 9pt / 11pt | 10pt / 12pt |
\small | 9pt / 11pt | 10pt / 12pt | 10.95pt / 13.6pt |
\normalsize | 10pt / 12pt | 10.95pt / 13.6pt | 12pt / 14.5pt |
\large | 12pt / 14pt | 12pt / 14pt | 14.4pt / 18pt |
\Large | 14.4pt / 18pt | 14.4pt / 18pt | 17.28pt / 22pt |
\LARGE | 17.28pt / 22pt | 17.28pt / 22pt | 20.74pt / 25pt |
\huge | 20.74pt / 25pt | 20.74pt / 25pt | 24.88pt / 30pt |
\Huge | 24.88pt / 30pt | 24.88pt / 30pt | 24.88pt / 30pt (identical to \huge) |
Looking down the ladder — 12, 14.4, 17.28, 20.74, 24.88 — each step is roughly 1.2 times the last. That is no coincidence. Line 391 of plain TeX reads \def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax}: the magnification factors Knuth defined are 1200, 1440, 1728, 2074 and 2488, that is, the first through fifth powers of 1.2 expressed in thousandths. LaTeX's five larger steps take those numbers over unchanged. The odd-looking 10.95pt has the same source, the line just above: \def\magstephalf{1095 } — the square root of 1.2, about 1.0954, rounded. Look further at the macro names from line 8915 of latex.ltx and you find \@xivpt, named “fourteen point”, defined as 14.4, and \@xxvpt, named “twenty-five point”, defined as 24.88. The names are human shorthand; the values are the magnification staircase.
The staircase stops at 24.88pt because that is the largest design size Computer Modern ships. The sizes listed in the font definition file ot1cmr.fd are <5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88> — twelve rungs, exactly the ladder the size commands climb. So in a 12pt class \huge already hits the ceiling of 24.88pt, and line 86 of size12.clo simply writes \let\Huge=\huge, making the two one command. In an 11pt class they are distinct: \huge is 20.74pt and \Huge is 24.88pt. If you meet the symptom “switching to \Huge makes no difference”, check first whether the class option is 12pt. All of the above is for the standard classes; Japanese classes such as jsarticle, and extsizes or KOMA-Script, use their own steps and ceilings, so do not carry this table over to them.
{\Large ...} enlarged the letters but not the line spacing
Because the paragraph break — the blank line or \par — is outside the closing brace. Move it inside the group. TeX fixes the leading not when it sets the letters but when it breaks the paragraph into lines. If the end of the paragraph falls outside the group, \baselineskip has already reverted to the body value by that moment, so large type gets set on body leading. Measured on a two-line \Large paragraph (14.4pt) in a 10pt class, the leading was 12pt with \par outside the group and 18pt with it inside. That is a shortfall of 6pt per line.
% right -- \par is inside the group, so the leading is 18pt
{\Large
A long paragraph that will wrap onto a second line and keep its leading.
\par}
% wrong -- the paragraph ends after the group, so the leading falls back to 12pt
{\Large A long paragraph that will wrap onto a second line and lose its leading.}
The next paragraph.Those 6pt show up on the page as colliding lines. A \Large glyph reaches 9.99998pt above the baseline and 2.79999pt below it — values taken with \sbox. Add them and you get 12.79997pt, which overshoots the wrong 12pt leading by 0.8pt. So whenever one line carries a descender (g, y, p) and the next carries an ascender (h, k, l), the two are guaranteed to overlap on paper. With only a few lines it is easy to miss, and it tends to surface for the first time when someone prints the submission PDF.
Two footnotes. First, adding \selectfont does not help: {\Large\selectfont ...} still measured 12pt. The problem is not font selection but the value of \baselineskip at the moment the paragraph is finished, so fixing the position of \par is the only cure. Second, the symptom appears with \centering but not with the center environment. Writing {\centering \Large ... } with the blank line outside gives 12pt, while \begin{center} \Large ... \end{center} measured a correct 18pt, because \end{center} ends the paragraph before it closes the group. When a large centred heading has odd line spacing, suspect a bare group around \centering.
An arbitrary size: \fontsize and \selectfont
When none of the ten steps is the size you want, \fontsize{size}{leading}\selectfont lets you name a point size directly. The first argument is the font size, the second the leading. A poster title, or one tight line inside a table, is a reasonable place to step off the ladder. What matters here is that \fontsize only records the values; it selects nothing. Measured, the x in \fontsize{20}{24}x was 5.2778pt wide — exactly the width of an x at \normalsize. Follow it with \selectfont and it becomes 10.05351pt, which is when the 20pt type finally appears. And forgetting \selectfont produces neither an error nor a warning. Most reports of “I set the size and nothing changed” are this.
% \fontsize alone changes nothing and says nothing
{\fontsize{20}{24}Still 10pt.}
% \selectfont is what commits the change
{\fontsize{20}{24}\selectfont 20pt type on 24pt leading.}The second argument is not optional, so pick it by the usual convention of about 1.2 times the font size — roughly 24pt for 20pt type. The table above shows the standard classes staying broadly in that range: 10pt on 12pt, 14.4pt on 18pt. Where declarations like \tiny adjust the leading for you, \fontsize makes you responsible for it, and that is the practical difference that matters most. Set it too small and the lines collide for exactly the reason described in the previous section. Widening the leading across a whole document — one-and-a-half spacing, say — is not a job for the size commands at all; see the page on line spacing.
Size commands do not work inside math
Write a size command inside math mode and LaTeX ignores it, leaving one line in the log. Typesetting $ \large x $ produces LaTeX Font Warning: Command \large invalid in math mode on input line 9. It is a warning, not an error, so the run continues and the x comes out at the ordinary size. Sizes inside a formula belong to a separate system — the surrounding text size combined with the math style (\displaystyle, \textstyle, \scriptstyle, \scriptscriptstyle) — which does not mix with the body-text size commands. If you only want a fraction or a summation sign set large, use \displaystyle. To enlarge the whole formula, declare the size outside the math: {\Large $ ... $} works.
LaTeX Font Warning: Command \large invalid in math mode on input line 9.The order in which to decide sizes
Font size holds together when it is decided from the top down rather than patched locally while writing. First choose the document-wide base size, as in \documentclass[11pt]{...}. Next, for anything that recurs — headings, captions, footnotes, table notes — set the size in the class or package configuration rather than by hand at each occurrence. Only what is left, the genuinely one-off cases such as a poster title or a note inside a table, gets a local {\small ...}. Follow that order and changing the base size later from 11pt to 12pt carries the whole document along in proportion. Scatter local declarations through the body instead, and those spots are exactly the ones left behind the moment the base changes. For posters and slides, where the body size itself is different, do not force it with local commands — choose a class made for the genre.
- Set the base size as a class option. Wrapping the whole body in
{\small ...}tends to break the relationship with footnotes, headings and leading — and it is no answer to a submission rule that says “body text 11pt”. - Do not enlarge section headings in the body. Change the appearance of
\sectionthrough the class configuration or a package such astitlesec. A heading faked with\Largein the body appears in neither the table of contents nor any cross-reference. - Change recurring elements at their definition. If every table note should be smaller, define a table-note macro or environment instead of doing it by hand in the text.
- Close local sizing at paragraph boundaries. For a long small paragraph, keep
\parinside the group so the leading is settled at the same size. - Suspect the structure before shrinking a table. Before forcing a whole table into
\scriptsize, consider dropping columns, rotating it, or splitting it in two. - Check the PDF at its final page size. What reads on screen can be too small in a review PDF printed on A4. Look at it at actual size, not zoomed.