[Tex/LaTex] Where and why does (LuaLa)TeX scale down the requested base font size

fontsize

(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}

Best Answer

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.