看来,使用旧式数字与不使用旧式数字时,连字模式有所不同。考虑以下 MWE:
\documentclass[a4paper,10pt]{scrartcl}
\areaset[current]{336pt}{600pt}
\overfullrule=5pt
\usepackage{mathpazo}
%\usepackage[osf]{mathpazo}
%\usepackage{fontspec}
%\setmainfont[
% Numbers={OldStyle,Proportional},
% ] {TeX Gyre Pagella}
\begin{document}
\noindent Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum
ut
\end{document}
这将生成一个溢出的水平盒子:
如果我们激活旧式图形,则不会发生该问题:
我有两个问题:
这是怎么回事?我在文本中没有看到任何数字,那么为什么 XeLaTeX 会生成不同的输出?
最终我想使用 Open Type Font TeX Gyre Pagella。如果我们生成此示例,结果将与第一张图片相同,即我们得到一个溢出的水平盒子。我如何才能获得与 osf-mathpazo 相同的结果?
答案1
不同的连字模式是由pplx
和pplj
字体系列更宽敞的字距和字间距引起的。引用在 LaTeX 中使用常见的 PostScript 字体,第 4 页(重点添加):
默认情况下,该软件包
mathpazo
使用字体系列ppl
作为罗马文本字体系列。该选项[sc]
选择 Palatino 和真正的小型大写字母(系列pplx
)insread [sic!。相应地,该选项[osf]
选择 Palatino 和小型大写字母以及默认的旧式数字(系列pplj
)。当然,旧式数字将仅在文本模式下使用,而不是公式。强烈建议使用任一选项:除了真正的小型大写字母外,字体系列pplx
和pplj
显示出进一步的改进ppl
:增加字间距,增强字距调整表,额外的“dotlessj”字形。
答案2
结果非常相似,
\usepackage{mathpazo}
单独使用或
\usepackage{mathpazo}
\usepackage{fontspec}
\setmainfont[Numbers={OldStyle,Proportional}]{TeX Gyre Pagella}
被指定。当仅
\usepackage[osf]{mathpazo}
声明,结果是不同的,因为字体由于我不知道的原因,具有相当不同的字体空间参数。我\usepackage[osf]{mathpazo}
得到
单词间距:2.91pt
单词拉伸:1.75pt
单词收缩:0.7pt
结果\usepackage{mathpazo}
是
单词间距:2.5pt
单词间拉伸:1.49998pt
单词间收缩:0.59998pt
旧式数字 MathPaZo 的词间空间较大显然导致了不同的结果。
我通过代码得到了表格
\noindent Interword space: \the\fontdimen2\font\\
Interword stretch: \the\fontdimen3\font\\
Interword shrink: \the\fontdimen4\font
之后发行\begin{document}