123

I'm trying to make a document that has a very small font throughout, I tried this:

\documentclass[0.5mm, a4paper]{article}
\documentclass[7pt, a4paper]{article}

But it doesn't seem that they allow me to go anything below 10pt.

This hack make it work, but not for the section headers:

\fontsize{4mm}{5mm}\selectfont

Does anyone know any better ways to do this?

4
  • 25
    I've got to say, this is one of the arcane areas of latex that really bugs me. If you specify something, it should work, or give you an error explaining why. Not just not work and then you have to really sort it out.
    – Aaron Hall
    Jan 26, 2014 at 6:05
  • 2
    @AaronHall I asked this question 4 years ago when I was still writing my thesis, I'm very surprised that until now a lot of people still upvote and comment on this very simple question. Jan 26, 2014 at 9:27
  • 1
    To be fair, nowadays LaTeX give the "LaTeX Warning: Unused global option(s)" message, although it's "just" a warning not an error. (so, get the habit to not ignore warning messages)
    – user202729
    Jul 14, 2022 at 10:01

6 Answers 6

65
  • extsizes classes offer a base font size between 8 and 20 pt, you may choose the extarticle class

  • KOMA-Script classes support freely customizable base font sizes and you may specify them by any TeX length unit like pt, bp or mm, so you might use scrartcl.

I recommend to use a KOMA-Script class.

4
  • 7
    the memoir class also has a variety of document font sizes available.
    – Alan Munn
    Feb 8, 2011 at 18:46
  • 2
    Can you give an example of how to use KOMA-script?
    – evaristegd
    Apr 14, 2018 at 0:31
  • @evaristegd I chat a lot in the LaTeX.org forum, we could talk there about further stuff. Here it's straight question & answer.
    – Stefan Kottwitz
    Apr 14, 2018 at 11:52
  • I texmaker even after using extarticle, it is allowing up to 14pt size, how to go beyond that?
    – sawan kt
    Jul 27, 2021 at 6:43
51

Instead of switching to a KOMA-Script class, you may also use the scrextend package (part of KOMA-Script) and its \changefontsizes macro. It features an optional argument to change \baselineskip (the default is 1.2 * fontsize). For details see section 3.5 of the KOMA-Script manual (the relevant content also applies to scrextend, as mentioned in section 9.5 of the manual). EDIT: Make sure to use a scalable font (e.g. Latin Modern instead of Computer Modern).

\documentclass{article}

\usepackage{lmodern}

\usepackage{scrextend}
\changefontsizes[20pt]{16pt}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\end{document}
2
  • 18
    Meanwhile the preferred way seems to consist in giving the fontsize as package option \usepackage[fontsize=16pt]{scrextend}. The command \changefontsizes is now hardly documented: no mention of the optional argument anymore.
    – Speravir
    Mar 12, 2014 at 17:51
  • 4
    Instead of using \changefontsizes one could (and should) rather use \KOMAoption{fontsize}{16pt} (which is the same as the package option), see tex.stackexchange.com/a/108732
    – cgnieder
    Oct 31, 2014 at 10:08
22

It is a semantically better practice to define a new font size which is a size less than tiny, rather than use \fontsize, by using:

\makeatletter
  \newcommand\tinyv{\@setfontsize\tinyv{4pt}{6}}
\makeatother

I called, it tinyv (v being the size in roman numerals), but you can call it anything you wish.

You can also change any of the others this way, by using renewcommand. You can do this in the class file you are using, in which case you do not need the apocryphal \makeatletter and makeatother.

\renewcommand\scriptsize{@setfontsize\scriptsize{5}{7}} 
10
  • 1
    How are \makeatletter and \makeatother apocryphal?
    – TH.
    Nov 14, 2010 at 11:23
  • 1
    @TH people new to TeX/LaTeX - after they get used to the idea of macro names such as @var@able@, get another surprise with makeatletter etc. Unless you know about catcodes the semantics of makeatletter and especially makeatother are very esoteric and hence apocryphal! There are other mysteries too like futurelet!. Nov 14, 2010 at 11:52
  • 2
    @TH.: I think Yiannis means "cryptic". Then I'd agree. (@Yiannis: correct?) Nov 14, 2010 at 12:04
  • 2
    @Yiannis: Interesting; I didn't know this meaning of apocryphal. The problem is that most of us don't know Greek that well (I learned Ancient Greek at school, but that's some time ago). In English, apocryphal things have the tendency to be just not true. Nov 14, 2010 at 16:43
  • 5
    @Yiannis: yes, in current English usage apocryphal means roughly “rumoured, but non-existent”. Other good words for \makeat(letter|other) could be arcane, occult, mystical. They were certainly mystical incantations to me for a while — I knew I had to say them as part of certain rituals, but I had only the vaguest idea of why. Dec 21, 2010 at 21:47
17

Another option is to use the extsizes package. Although it doesn't provide a 16 point font, 14 and 17 point options are available:

\documentclass[17pt]{extreport}

I would also like to cite the extsizes documentation:

Don't use extsizes just because you think it's cool, or because you think the font looks too small on the screen. You should have a clear reason why 10, 11 or 12 pt text is not suitable for you.

1
  • 6
    there is a good reason, its in the specs.
    – Rick_2047
    Oct 12, 2011 at 15:28
12

Use a class which supports more fontsizes. E.g. one of the KOMA-classes:

\documentclass[fontsize=16pt]{scrreprt}
6
  • 1
    I am using miktex, which package do I install for KOMA-classes?
    – Rick_2047
    Oct 6, 2011 at 14:15
  • @Rick_2047 If you have set MikTeX to install missing packages on the fly, simply compile a document with a KOMA-class, and it will be installed for you. If not, open the Package Manager and search for "koma", then you'll find it. Oct 6, 2011 at 14:46
  • Both are strangely not working. It shows that dialog box that says it wants to install but never installs. And koma-class just doesn't show up in the package manager.
    – Rick_2047
    Oct 6, 2011 at 14:48
  • How long do you wait? It can take perhaps a few minutes, whil nothing appears to be happening. I just tried a search in the package manager of MikTeX (Portable), and searching for "koma" yielded two results, the first being "koma-script". Oct 6, 2011 at 15:07
  • @Rick Which miktex version are you using? And to which repository are you trying to connect? Did you synchronize the repository (package manager, menu repositories) Oct 6, 2011 at 15:15
10

Similar to what the KOMA-script classes provide, the memoir document class also offers 14pt and 17pt (but not 16pt) options for the basic font size of a document. The memoir class-related files should be installed automatically by most modern TeX distributions. If not, use your package manager -- tlmgr or MikTeX's own update program -- to install them.

You'd select these fontsize options with the commands

\documentclass[14pt]{memoir}

and

\documentclass[17pt,extrafontsizes]{memoir}

respectively. I suggest you include the option extrafontsizes when using the 17pt size option. Doing so will ensure that commands that change relative font sizes -- such as \Large, \huge, and \Huge -- will produce reasonable-looking results. Specifically, the Latin Modern fonts in T1 encoding will be loaded instead of the default Computer Modern fonts in OT1 encoding.

2
  • I have been looking for something similar, I would like to use a memoir 13pt font size, is it possible?
    – Adriano
    May 17, 2016 at 12:56
  • @Adriano - According to the user guide of the memoir package, the following default font sizes (in points) are provided: 9, 10, 11, 12, 14, 17, 20, 25, 30, 36, 48, and 60. For each of these sizes, a file called mem?.clo exists, where ? can be 9, 10, etc and clo stands for "class option". For new font sizes, e.g., 13pt, you'd have to set up a file named mem13.clo, along the lines explained in the user guide. For the case of 13pt, you could probably use mem12.clo and mem14.clo as templates and average the values used in those two files for the new file.
    – Mico
    May 17, 2016 at 13:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .