# Where and why does (LuaLa)TeX scale down the requested base font size?

(The question has been raised in the past, but the answers provide solutions on how to scale up (or down) the fonts, not why it was scaled in the first place, AFAIK)

Background: It is very common for granting agencies and similar institutions to require submission in PDF format with the main text formatted in a specific font and at an exact (or at an exact minimum) font size, e.g. Times New Roman 11pt. Deviating from this requirement even by a fraction may cause an automatic rejection of the submitted proposal.

LaTeX allows the setting of a base font size in the class declaration, but an examination of the produced pdf with standard tools (e..g Pdfedit), shows a consistently smaller size. For instance, using the article class with LuaTeX and setting the font to TeX Gyre Termes (a Times look-alike) with a base size of 11pt results in a size of ~10.91pt in the pdf output. Using the original MS Times New Roman Leads to the same result (See MWE below).

QUESTION(S): Even though it is easy enough to fix the problem by scaling up the font directly in the fontspec call, WHY was the font scaled down in the first place? And WHO/WHERE was it scaled down?

Edit: In this question it is said that the issue has to do with the well-known difference between real (i.e. LaTeX) points and Postscript points (aka LaTeX's big points). However, if that were the case, calling the class with a bp font size would solve the problem, wouldn't it?

\documentclass[a4paper,11bp]{article}


But it doesn't. The resulting pdf has a font size which is now even smaller 9.96264 (acc. to pdfedit)

MWE:

\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{fontspec}
% \setmainfont{TeX Gyre Termes}
\setmainfont{Times New Roman}
\usepackage{lipsum}

\begin{document}

\begin{abstract}
\lipsum[1]
\end{abstract}

\section{First section}
\lipsum[2-4]
\end{document}

• Sep 3, 2015 at 20:03
• The business about font size options is (roughly) covered in tex.stackexchange.com/questions/43719: this is not a 'free' option but one of a fixed list of choices: 10pt, 11pt or 12pt. Note also that 'font size' is not analytical: it's about visual matching of sizes of glyphs. Sep 3, 2015 at 20:16
• The 11pt document class font-size option corresponds to an actual font size of 10.954pt (not 10.91pt, by the way). However, this isn't related to differences between "printer's points" (or "TeX points") vs "big points" (or "Adobe points"). Instead, 10.95 is the geometric mean of 10 and 12, making 11pt geometrically -- though not arithmetically -- "half way" in between 10pt and 12pt. Don't know, though, why this choice was made.
– Mico
Sep 3, 2015 at 20:20
• @Mico It's easier to scale a font by multiplying all relevant parameters by a fixed factor. In the original setup (when fonts were only bitmapped and better printing resolution could be obtained by scaling down a magnified output), having fonts available in a geometric series was the easiest way. By the way, the geometric series with ratio 1.2 covers 10, 12, 14.4 (almost 14), 17.28 (almost 17) which were very common font size among printing shops. Sep 3, 2015 at 23:27
• @Mico: it is now clear after all the explanation why 11pt should really be 10.954. But it shows up as 10.91 in pdfeditor (I don't have access to Acrobat Pro to double check). The difference is minimal (.04 of a point is really tiny), but I still wonder why the discrepancy. Perhaps here is where the pt vs. bp distinction comes into play? 10.954pt = 10.9130...bp, if my computations are correct. Sep 4, 2015 at 4:11

The font isn't really scaled down, it just isn't scaled up as much as you expected.

There are several factors.

Firstly the class options 10pt, 11pt, 12pt are not lengths they are simply the names of options specifically in article class, they correspond to the files size10.clo, size11.clo and size12.clo. This means that you can not use other lengths (such as 11bp) but also that the names themselves do not necessarily correspond to any particular parameter being set to those lengths, all kinds of parameters are set, spacing around lists, sizes of fonts at all the sizes such as \small, \large, etc.

Secondly as you note a TeX point (pt) is smaller than a PostScript point (bp) by a factor of 72/72.27.

Thirdly TeX font sizes are traditionally arranged in magstep sequence, that is, the base size of 10pt multiplied by a power of sqrt(1.2), so 12pt is 12pt but 11pt you see this in the macros LaTeX uses for all the common font sizes

 \def\@xpt{10}
\def\@xipt{10.95}
\def\@xiipt{12}
\def\@xivpt{14.4}
\def\@xviipt{17.28}
\def\@xxpt{20.74}
\def\@xxvpt{24.88}


This geometric scaling is probably still a good discipline although it's not as important using scalable fonts as it was with the original metafont fonts where scaling was not such a "free" operation, and for any scaled size the system then a pk font containing bitmaps for all the glyphs at the requested size needed to be generated.

The TeXBook says:

\danger At many computer centers it has proved convenient to supply fonts
at magnifications that grow in geometric ratios---something like equal-tempered
tuning on a ^{piano}. The idea is to have all fonts available at their true
size as well as at magnifications 1.2 and~1.44 (which is $1.2\times1.2$);
perhaps also at magnification~1.728 ($=1.2\times1.2\times1.2$) and even
higher. Then you can magnify an entire document by 1.2 or~1.44 and still
stay within the set of available fonts. Plain \TeX\ provides the
abbreviations ^|\magstep||0| for a scale factor of 1000, |\magstep1| for a
scaled factor of 1200, |\magstep2| for 1440, and so on up to |\magstep5|.
You say, for example,
\begintt
\font\bigtenrm=cmr10 scaled\magstep2
\endtt
to load font |cmr10| at $1.2\times1.2$ times its normal size.

• Excellent answer! Now I finally now what's going on. I must have glossed over this part of the TeXBook at the time. Thanks David Sep 4, 2015 at 16:24

The option "11pt" loads size11.clo. This defines \normalsize as

\@setfontsize\normalsize\@xipt{13.6}


\@xipt is defined as

\def\@xipt{10.95}


So the option 11pt actually uses 10.95pt as fontsize and a "10.95pt"-option would be more exact but more difficult to remember ...

There are more commands where the name doesn't accurately reflects the value

 \def\@xivpt{14.4}
\def\@xviipt{17.28}
\def\@xxpt{20.74}
\def\@xxvpt{24.88}


If you need exact fontsize you should define the fontsizes yourself. Be aware that not only the fontsize declaration matters, fonts can be also scaled in the .fd-file and in the virtual fonts, see e.g. Using 10pt fonts with the fourier package actually gives me 9.17pt.