不同页面上的章节标题未垂直对齐(取决于字体)

不同页面上的章节标题未垂直对齐(取决于字体)

考虑以下 MWE,其中第一节标题包含带上升部的字母,而第二节标题不包含:

\documentclass{article}
\usepackage{fontspec}

% https://github.com/adobe-fonts/source-serif-pro or
% https://ctan.org/pkg/sourceserifpro
\setmainfont{Source Serif Pro}

\begin{document}
\section*{\rlap{\rule{8.5in}{0.04pt}}bbbbb}
\leavevmode\rlap{\rule{8.5in}{0.04pt}}bbbbb

\newpage

\section*{nnnnn\llap{\rule{8.5in}{0.04pt}}}
nnnnn\llap{\rule{8.5in}{0.04pt}}
\end{document}

为什么两个部分标题的基线不对齐?我尝试了以下测试:

  1. 基线进行对齐:当在 Computer Modern(没有fontspecpdfLaTeX 且在 pdfLaTeX 下)、Latin Modern、TeX Gyre Termes 等中设置时。
  2. 基线不对齐:当我设置一些我拥有的商业字体时。
  3. 基线进行对齐:仅包含正文bbbbbnnnnn(即注释掉两个\section*),适用于所有上述字体,包括 Source Serif Pro 和其他商业字体。

第三个观察结果确实让我大吃一惊……

答案1

Source Serif Pro 中的 b 比 latin modern 中的 b 大。更重要的是,在章节标题中,它的高度大于 \topskip。这意味着它的基线将在页面开头向下移动 0.45pt。如果您想避免这种效果,请使用此类字体放大 \topskip。

\documentclass{article}
\usepackage{fontspec}

\begin{document}
\section*{\the\fontcharht\font`\b bbbb}

\setmainfont{Source Serif Pro}
\section*{\the\fontcharht\font`\b bbbb}

\the\topskip
\end{document}

在此处输入图片描述

相关内容