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!
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!
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!
tom
Thanks!
Humberto Munoz
Hi Tom, How I can change the font type in LaTeX for parts/elements of a document?
Thanks Humberto Munoz
tom
I found the answers to a similar question on SX pretty good.
Hope it helps,
Tom
cgnieder (@LaTeX_Chemistry)
The relsize package might also be worth mentioning in this context. 🙂
tom
Thanks! Tom.
Juan Luis Varona
The line height is assigned at the end of the paragraph.
So perhaps the solution for your doubt is to use
or
tom
Hi Juan!
Thanks for your comment.
Are you referring to Rob’s comment?
Thanks, Tom.
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!
tom
Hi Homa,
Interesting question, thanks! You want to use the command
\DeclareMathSizes
as explained in the answer to this question.Hope it helps,
Tom
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:
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 theluximono
style file and how the scaling is done.Best, Tom
Abhik
I want to write my Ph. D. Thesis in Gulliver font of latex. What should be the document class and commands for the font?
tom
Hi Abhik,
Thanks for this interesting question! You can find an informative discussion on the Gulliver font here. Briefly, the Gulliver font is proprietary and no similar free font exists. In case using this particular font for your thesis is a university requirement, they should have a license and be able to tell you how to install it on your system. Otherwise, you might want to take a look at the LaTeX font catalogue and pick another font you like. Sorry for the “bad” news.
Cheers, Tom
nicola giosmin
excellent article, thank you for the “anyfontsize” package infos!
tom
Thanks for your comment!
Abhik
I want to write my ph. d. thesis in the font Gulliver. Is there any package in Latex for it ? Kindly inform me.
tom
It seems you asked the very same question about a year ago. Please see my response here.
Rosie
Wow! Thanks so much for the fantastic blog! So useful! You just saved my life with the “anyfontsize”! Hooray!
tom
Great, thanks for the positive feedback. Appreciate it!
John Ford
Very useful post. I’ve been using TeX for 35 years, and LaTeX for the last 20 or so, creating lecture notes with Beamer. I’ve frequently found the available font sizes limiting. The anyfontsize package solves that beautifully. Thank you.
tom
Thanks for your comment! I greatly appreciate it. Best wishes, Tom
Chuxian Wang
Help me a lot
Kanchana
Hi sir,
In some standard templates like sage even though using \documentclass[12pt]{sage} font size won’t change. Is any solution for that in order to change font size..?
tom
Hi Kanchana,
Thanks for your question. I couldn’t find the class-file for sage. It doesn’t seem to be distributed with TeXLive and wasn’t on CTAN. Would you mind pointing me to the place where I can get the cls-file for this class, please?
Thanks, Tom.
Kanchana
Thank you sir for your kind reply. You can download zip file of sage journal template in the following link https://docs.google.com/file/d/0B4y8mLzahQT6a2RzVWlsWW9aMFU/edit?usp=sharinggle.com/file/d/0B4y8mLzahQT6a2RzVWlsWW9aMFU/edit?usp=sharing
tom
Dear Kanchana,
Thanks for the files. A pointer to the class file or the journal guidelines would have been good enough.
Anyway, the font size is hard coded in the class file (first few lines of code and line 233 onwards). Therefore, you can’t and shouldn’t change the font size if you are submitting to a SAGE journal. You can use macros such as
\large
to change parts of your text. See the article above for more details.Should you want to use this class for your own purposes, you have to make changes to the class file.
HTH, Tom
Sanket
Have recently started using Latex. This helped a lot. Thank You.
tom
Hi Sanket,
Great to hear, thanks!
All the best, Tom.
Kanchana
Hi Tom sir,
I have modified the theme I want to upload it to net so that it might useful to new theme seeker. Do you know the procedure to upload it.
tom
Hi Kanchana,
Thanks for getting back to me. By theme, do you mean the modified template? Perhaps you can post the code as a comment below. If it’s not too long and may be useful to other people, I’ll be happy to publish your code.
Thanks, Tom
Nishant Sharma
Its a fantastic work. I am a big fan of latex myself. Keep up the good work
tom
Great to hear, thanks! Tom
ayed
Dear all, i would like write my thesis in normal font, please anyone know help me.
tom
Hi Ayed,
Please specify what “normal” means.
Helvetica
,Times
, orArial
are frequently used fonts. The default font in TeX/LaTeX is Computer Modern. Also, sometimes the university defines the font to be used for a thesis.Best,
Tom
Anonymous Coward
If he wants Times, then he could just add `\usepackage{times}`.
But, personally, I dislike this font. For now, my choice is on kpfonts (`\usepackage{kpfonts}`), which is a very good looking font.
Zainab
Hello,
I am writing my thesis. Some chapters have different font size – larger than others. How can make all the chapters have the same? May you help me please?
tom
Hi Zainab,
This should not happen. You can set the normal font size globally as an optional argument to documentclass.
Whenever you use a macro to modify the font size locally, make sure you properly close it.
Adrian Dusa
Thank you Tom, wonderful resource that led me to solve the problem I had. Sometimes, it is not only the font size but also the space between the lines has to be adjusted (in my case for a verbatim environment), and doing so globally was quite a challenge.
Following your post, this is the solution I came across:
This reduced the space between the lines to 90% (if I understand it right), and sets the font, in my case Menlo, to the desired size according to your advice. This might also answer Michael Peters to whom you recommended the luximono package.
Best,
Adrian
tom
Hi Adrian,
Thanks for your comment, I appreciate it. Sorry for the delay in accepting it.
Best,
Tom
infinitebuffalo
Is there any way to say “whatever the parent grouping’s font size is, make this group’s one size {larger|smaller}”, akin to CSS’s “font-size: larger/smaller”?
tom
Hi there,
See here for a possible solution.
HTH, Tom
Gula
How do I make this font size thing into a macro?
I mean, allover fontsize is the default size while certain texts are a size depending on what I put in the macro.
Example:
Hello, {\large World}! How are {\large You} today? I, I am {\large fine}, thank you.
The way I want to do it:
Hello, {\aMacro World}! How are {\aMacro You} today? I, I am {\aMacro fine}, thank you.
What I’ve come up with so far is:
\newcommand{\aMacro}[1]{#1}
\aMacro{\footnotesize}% originally I wanted \large but now I want \footnotesize
… but this doesn’t work.
The purpose is of \aMacro is so that I can change those certain text ‘automatically’ (instead of manually) if I happen to want another size.
Thank you.
tom
Hi Gula
Try this:
Best, Tom
Yeom
Thank you for your post.
I am writing my thesis and its format in Latex.
My university has given the reference format which is made by Hancom office (this program is only for Hangul in South korea).
So, I am changing it to Latex format.
But, I have a problem.
How do I change length of the text which have a fixed height.
I did not find this option. (In Hangul office, it is intuitively possible to adjust this option)
Thank you
tom
Hi Yeom,
To adjust the line width, use the geometry package. See this post for a short introduction.
I hope this answers your question.
Best,
Tom
Sudhanshu Shekhar Chaurasia
Thanks man!!!
praveen
hi,
How to set font size to 13 in report class?
tom
Hi Praveen,
13pt
is not an option. You could use the class defined in the extsizes package to get a 14pt font size.HTH, Tom
richardpaulhall
“\documentclass[12pt]{report}”
I am very new to Latex.
Where do you put that line?
Experimenting with it, I see no change in the document.
tom
With this line you define the type of document. So this should be the first line of your tex file.
Nilton RodolfoN
Thank you!
Jacob Gellman
Hello, the hyperlink in this text block,
“A table of the exact font sizes in points can be found on wikibooks”
no longer contains the relevant information.
The relevant link is now:
https://en.wikibooks.org/wiki/LaTeX/Fonts#Sizing_text
tom
Thanks for your comment, I updated the link.