# Changing the font size in LaTeX

Changing the font size in LaTeX can be done on two levels, either affecting the whole document or parts/elements of it. Using a different font size on a global level will affect all normal-sized text as well as the size of headings, footnotes, etc. By changing the font size locally, however, a single word, a few lines of text, a large table or a heading throughout the document may be modified.

##### Changing the font size on a document-wide level

The standard classes, article, report and book support 3 different font sizes, 10pt, 11pt, 12pt (by default 10pt). The font size is set through the optional argument, e.g.:

\documentclass[12pt]{report}

In most cases, the available font sizes for the standard classes are sufficient.

Other font sizes

Should you require a different font size for your document, use the extsizes package. It allows for the following font sizes: 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt.

The documentclass names are slightly different from the standard classes:

%Article
\documentclass[9pt]{extarticle}
%Report
\documentclass[14pt]{extreport}

The KOMA-script and memoir class

The KOMA-script and memoir classes are more flexible when it comes to font sizes. Please see the documentation for more details.

##### Changing the font size locally

LaTeX knows several font size modifier-commands (from biggest to smallest):

\Huge
\huge
\LARGE
\Large
\large
\normalsize (default)
\small
\footnotesize
\scriptsize
\tiny

A table of the exact font sizes in points can be found on wikibooks.

A good rule of thumb is don’t use too many different sizes and don’t make things too small/big.

There are two possible ways to use these font size modifier commands, inline or as environment:

% inline
{\Large This is some large text\par}

% environment
\begin{footnotesize}
...
\end{footnotesize}

The \par at the end of the inline example adjusts baselineskip, the minimum space between the bottom of two successive lines. See the example in Rob’s comment below.

A few more options

The moresize package adds two more to the list above, \HUGE and \ssmall. The latter fills the gap between \scriptsize and \tiny.

While using \HUGE, LaTeX displays a warning saying the font size is not available for the standard font and that it was replaced by the next smaller (\Huge). When using another font type, such as the Adobe Times Roman equivalent available in the PSNFSS package (see example below), however, you can benefit from that font size.

\documentclass[11pt]{report}
\usepackage{mathptmx}
\usepackage[11pt]{moresize}
...
{\HUGE A huge text}

{\ssmall Can you still read this ssmall'' text?}

Note: The figure is scaled and therefore does not show the actual font size. It illustrates the difference between the font sizes.

##### Still not enough?

Here is alternative, more flexible approach. The anyfontsize package scales the next bigger/smaller font size available to whatever size you like.

The two arguments to \fontsize are the actual font size and the size of the baseline-skip. The baseline-skip should be set to roughly 1.2x the font size.

\fontsize{size}{baselineskip}

The following example shows font size 50pt/5pt and compares them with \Huge and \tiny.

\documentclass[11pt]{report}
\usepackage{mathptmx}
\usepackage{anyfontsize}
\usepackage{t1enc}
...
{\fontsize{50}{60}\selectfont Foo}{\fontsize{5}{6}\selectfont bar!}
{\Huge Foo}{\tiny bar!}

That’s more like it! Again, this only works with a non-standard font type. And again, it does not show the actual font size. Try it with LaTeX!

Source with more details: here and there.

#### 18 responses to “Changing the font size in LaTeX”

• Rob

Very interesting post, but I think you are missing something: Every once in a while if you change font sizes, the line height is not adjusted – resulting in large space between two lines. Maybe you could comment on that as well in this post? It would fit nicely…

• tom

Hi Rob.
Thanks! Would you be able to provide a minimal working example of the issue you describe above?
Thanks, Tom.

• Rob

Sure!

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}
% Normalsize text
\blindtext

% Scriptsize text with normalsize line spacing
{\scriptsize
\blindtext}

% Scriptsize text with scriptsize line spacing
{\scriptsize

\blindtext

}

% \par does the trick as well
{\scriptsize
\blindtext
\par}
\end{document}
• tom

Cool, thanks Rob!
I wasn’t aware of that issue. Will change it in the post.
Best, Tom.

• Rob

No problem, glad to help and keep up the good work!

• Humberto Munoz

Hi Tom, How I can change the font type in LaTeX for parts/elements of a document?

Thanks Humberto Munoz

• cgnieder (@LaTeX_Chemistry)

The relsize package might also be worth mentioning in this context.

• Juan Luis Varona

The line height is assigned at the end of the paragraph.

So perhaps the solution for your doubt is to use

{\tiny Foo foo foo ... foo \par}

or

{\Huge Foo foo foo ... foo \par}
• Smufos

Thanks a lot for this article and especially for the hint to use \par to adjust line spacing. Could you please add a short explanation on *why* this fixes the spacing?

• tom

Hi Smufos,

Thanks for your question! The command \par ends the paragraph, that’s for sure. Now why \par does the trick, I’m not entirely sure. Apparently, TeX reads the whole paragraph first for optimal space adjustment between words. And manually ending the paragraph seems to also adjust \baselineskip when the font size is changed, whereas standard paragraph ending (blank line) does not. “The TeXbook” by Donald E. Knuth would be the right place to look for an answer :-).

Cheers, Tom.

• Homa

Thanks for the article, but how can one adjust font size of all equations globally? I mean a global math size which differs from global text font size?
II seems ridiculous to change the math font size in big projects manually!

• Michael A. Peters

Hi, I’m dealing with a monospace type 1 font that is not part of CTAN, I used the fontinst instructions and they work well but it is a little too big when used inline with another font.

I noticed some fonts have a scale option that can be passed to their usepackage command that corrects this issue but I have no clue how to go about adjusting my .sty for that.

This is the extent of my lucimono.sty file:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{lucimono}[2007/01/31 v.0.3 lucimono (Lucida Mono) package]
\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
\renewcommand*{\ttdefault}{2lm}
\endinput

and it has worked well for years when used with lucida bright (I don’t like the monospace font that comes with lucida bright – I think it’s Lucida Typewriter, different than Lucida Mono) but when I use it with Times – it just is a little too big.

Any clue on where I need to look to find out how to add a scale option to my lucimono.sty file?

Thank you.

• tom

Hi,

Thanks for your question. I’m not an expert on fonts really. However, what I read while trying to better understand your problem is that people recommend using luximono instead, which supports scaling through an optional parameter (see code below). You can download and install the luximono font as described here. In case you really need to use lucimono fonts, take a look at the luximono style file and how the scaling is done.

\documentclass[11pt]{article}
\usepackage[scaled=0.87]{luximono}
\renewcommand*\familydefault{\ttdefault}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{blindtext}

\begin{document}

\blindtext
{
\fontencoding{T1}\fontfamily{cmr}\selectfont
\blindtext
}

\end{document}

Best, Tom