Palatino 字体 (newpxmath) 导致分数分子中的文本错位

Palatino 字体 (newpxmath) 导致分数分子中的文本错位

我在 Texmaker(实现 TeXLive)中使用pdflatex。使用默认字体,以下分数的分子文本与公共基线对齐:

$$\frac{\partial x}{\partial t} \frac{\partial y}{\partial t} \frac{\partial z_j}{\partial t}$$

具有对齐分子的默认字体

但是,使用该newpxmath包会导致分子错位:

\documentclass{article}
\usepackage{newpxmath}
\begin{document}
$$\frac{\partial x}{\partial t} \frac{\partial y}{\partial t} \frac{\partial z_j}{\partial t}$$
\end{document}

newpx 字体分子未对齐

我想使用 New PX 进行数学运算,但将分子对齐为默认字体。我可以使用\vphantom{...}强制分子具有相同的高度,但有没有更优雅的方法来做到这一点?

答案1

更新更简单的解决方案

自 v1.401 newpxmath(2019 年 10 月 2 日发布,现在可在 MiKTeX 和 TeX Live 中使用)以来,该软件包提供了一个新选项,fracspacing即“将符号字体的 fontdimens 8 和 11 修改为更适合新 px 字体的值”。

\documentclass{article}

% New package option since 2019/10/02 update
\usepackage[fracspacing]{newpxmath}[2019/10/02]

\usepackage{mathtools}% for \clap
\newcommand*\drawbaseline{%
  \clap{\rule{80pt}{0.4pt}}%
}

\begin{document}
\[
\begin{gathered}
x,y\drawbaseline,z\\
\frac{\partial x}{\partial t} \frac{\partial y\drawbaseline}{\partial t} \frac{\partial z_j}{\partial t} \frac{\partial z_{j_j}}{\partial t}\\
\frac{\partial x}{\partial t} \frac{\partial y}{\partial t} \frac{\partial z_j}{\partial t} \frac{\partial z_{j_j}}{\partial t}\\
\end{gathered}
\]
\end{document}

输出看起来与下面旧答案中的输出非常相似。参数是从非常粗糙的 0.8 提炼出来的。


旧的和贬值的答案

Palatino 的设计包含较长的下行线。当数学字体基于 Palatino 时,应尽可能选择各种数学字体尺寸,以避免不均匀。

有许多字体尺寸决定分数中分子和分母的位置。我们可以更改其中newpxmath最相关的两个。

newpxmath-修改

\documentclass{article}
\usepackage{newpxmath}

% Code modified from lmsnpxsy.fd
\makeatletter
\expandafter\ifx\csname npxmath@scaled\endcsname\relax
  \let\npxmath@@scaled\@empty%
\else
  \edef\npxmath@@scaled{s*[\csname npxmath@scaled\endcsname]}%
\fi
\DeclareFontFamily{LMS}{npxsy}{\providecommand {\setSYdimens}{}\setSYdimens\skewchar \font =120}
\DeclareFontShape{LMS}{npxsy}{m}{n}{%
  <-> \npxmath@@scaled zplsy
}{%
  \fontdimen 8\font=0.8\fontdimen6\font % was 0.677 of a quad
  \fontdimen11\font=0.8\fontdimen6\font % was 0.686 of a quad
}
\makeatother

\usepackage{mathtools}% for \clap
\newcommand*\drawbaseline{%
  \clap{\rule{80pt}{0.4pt}}%
}

\begin{document}
\[
\begin{gathered}
x,y\drawbaseline,z\\
\frac{\partial x}{\partial t} \frac{\partial y\drawbaseline}{\partial t} \frac{\partial z_j}{\partial t} \frac{\partial z_{j_j}}{\partial t}\\
\frac{\partial x}{\partial t} \frac{\partial y}{\partial t} \frac{\partial z_j}{\partial t} \frac{\partial z_{j_j}}{\partial t}\\
\end{gathered}
\]
\end{document}

修改字体尺寸可以提供最一致的外观所有分数,但这需要你自己的审美判断。

在这里,我将分子升高尺寸从 改为 , 0.677以便 0.8为较长的下降部分留出更多空间。我还将分母下降尺寸从 改为 ,以便 0.686分数 0.8线上方和下方的间距更加均匀。

相关内容