(LuaLa)TeX 在哪里以及为什么会缩小请求的基本字体大小?

(LuaLa)TeX 在哪里以及为什么会缩小请求的基本字体大小?

(这个问题过去曾被提出过,但答案提供了如何放大(或缩小)字体的解决方案,而不是为什么首先要缩放字体,据我所知)

背景:授权机构和类似机构通常要求以 PDF 格式提交正文,且正文采用特定字体和精确(或精确最小)字体大小,例如 Times New Roman 11pt。即使与此要求有一点点偏差,也可能会导致提交的提案被自动拒绝。

LaTeX 允许在类声明中设置基本字体大小,但使用标准工具(例如 Pdfedit)检查生成的 PDF 时,显示字体大小始终较小。例如,使用 LuaTeX 的 article 类并将字体设置为 TeX Gyre Termes(Times 的类似字体),基本大小为 11pt,则 PDF 输出的大小约为 10.91pt。使用原始 MS Times New Roman 也会导致相同的结果(请参阅下面的 MWE)。

问题):尽管通过在 fontspec 调用中直接放大字体很容易解决问题,但为什么一开始字体要缩小?谁/在哪里缩小了字体?

编辑:在这个问题中据说这个问题与真实(即 LaTeX)点和 Postscript 点之间众所周知的差异有关(又名LaTeX 的要点)。但是,如果是这样的话,调用带有 bp 字体大小的类不是可以解决问题吗?

\documentclass[a4paper,11bp]{article}

但事实并非如此。生成的 pdf 的字体大小现在更小了 9.96264(根据 pdfedit)

梅威瑟:

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

答案1

字体实际上并没有缩小,只是没有像您预期的那样放大。

有几个因素。

首先,课程选项10pt,,不是11pt12pt长度它们只是名称类中特定的选项article,它们对应于文件size10.closize11.closize12.clo。这意味着您不能使用其他长度(例如11bp),而且名称本身不一定对应于设置为这些长度的任何特定参数,设置了所有类型的参数,列表周围的间距,所有大小的字体大小,例如\small\large等。

其次,正如您所注意到的,TeX 点 ( pt) 比 PostScript 点 ( bp) 小 72/72.27 倍。

第三,TeX 字体大小传统上是按magstep顺序排列的,即基本大小 10pt 乘以 sqrt(1.2) 的幂,因此 12pt 就是 12pt,但 11pt 则是 LaTeX 用于所有常见字体大小的宏中的一种

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

这种几何缩放可能仍然是一个很好的学科,尽管它在使用可缩放字体时并不像使用原始元字体那么重要,因为缩放并不是一种“自由”的操作,并且对于任何缩放的大小,系统都需要生成一个 pk 字体,其中包含所请求大小的所有字形的位图。

TeXBook 说:

\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.

答案2

选项“11pt”加载size​​11.clo。这定义\normalsize

\@setfontsize\normalsize\@xipt{13.6}

\@xipt 定义为

\def\@xipt{10.95}

因此该选项11pt实际上使用 10.95pt 作为字体大小,而“10.95pt”选项更为准确,但更难记住......

有更多命令的名称不能准确反映其值

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

如果您需要精确的字体大小,则应自行定义字体大小。请注意,不仅字体大小声明很重要,字体还可以在 .fd 文件和虚拟字体中缩放,例如使用 fourier 包中的 10pt 字体实际上给了我 9.17pt

相关内容