答案1
让我们简单介绍一下 TeX 如何创建分数(为了简单起见,许多细节将被忽略)。首先,TeX 需要知道在哪里应该绘制分数线,并且多厚应该是。这些由\fontdimen
字体设计者决定的参数控制(但用户可以稍后更改它们)。条的垂直位置对应于\fontdimen 22 of family 2
,而厚度对应于\fontdimen 8 of family 3
。然后,TeX 需要将分子和分母从“基线”上下移动,以将它们堆叠成分数。控制分子的参数是\fontdimen 8, 9, 10 of family 2
,而控制分母的参数是\fontdimen 11, 12 of family 2
。笔记: 字体设计师需要为这些参数设置适当的值,以使结果看起来赏心悦目在多数情况下。
这种行为有原因吗?
这是因为mathpazo
许多参数使用与 Computer Modern Math 相同的值。这些值与 Computer Modern(以及 Latin Modern lmodern
)配合得很好。但 Palatino 类设计有更高的“主体”,通常需要更大的间距。因此这些移动量(为 Computer Modern 设计)可能不适合 Palatino。
可以调整线的位置吗?
您实际上并不想调整分数线的位置(因为\fontdimen 22 of family 2
这会影响很多其他不同的东西)。相反,您可以放大\fontdimen 11, 12 of family 2
以使分母向下移动一点。
大卫的回答展示了如何为 分配新值\fontdimen11\textfont2
。缺点是这种分配非常低级(TeX 编程的最低级别)。具体来说,这仅适用于一种字体大小(即\normalsize
本例中的 10pt)。
一个稍微高级一点的解决方案是\DeclareFontShape
在 LaTeX NFSS(新字体选择方案)中使用。语法是
\DeclareFontShape{<encoding>}{<family>}{<series>}{<shape>}
{
<size declarations>
}
{
\fontdimen11\font=<some proportion of>\fontdimen6\font
...
}
但在我看来,这种代码应该出现在包中。嗯,在我看来,如果字体中的参数足够好,这种代码就根本不需要。
我不认为应该这样,因为当使用时
lmodern
,该栏(据我所知)正好位于中间
嗯,就像大卫的回答还解释了,如果条形图正好位于和的中间1
,2
那么它肯定不可能正好位于1
和的中间x
,也不可能正好位于1
和的中间(N)
。记住,它是关于视觉平衡在无数情况下,不是关于数学上的精确性。
我的建议
如果可以的话,请切换到newpxtext
和。这些较新的软件包得到了积极维护。我还在2019 年帮助改进了它,处理了分子和分母的位置。详情如下:newpxmath
newpxmath
https://tex.stackexchange.com/a/509092在我看来,这也符合你当前的需求。我试图在 (1) 分数线周围的等间距、(2) 分子的统一基线和 (3) 分母的统一基线之间找到平衡。它永远不可能“完美”,但我认为结果在视觉上是令人愉悦的。
总之,只需使用\usepackage[fracspacing]{newpxmath}
而不是\usepackage{mathpazo}
就可以了。
如果你想坚持mathpazo
,那么:
如果您仍想使用mathpazo
,那么这里是您可以使用的 LaTeX NFSS 代码:
\documentclass{article}
\usepackage{mathpazo}
% The original declarations can be found in omszplm.fd
% We are changing them to use our customized fontdimen's
\DeclareFontFamily{OMS}{zplm}{
\skewchar\font=48 % kept from the original file
\fontdimen 8\font=0.789\fontdimen6\font % 0.789 of a quad
\fontdimen11\font=0.798\fontdimen6\font % 0.798 of a quad
}
\DeclareFontShape{OMS}{zplm}{m}{n}{<-> zplmr7y}{}
\DeclareFontShape{OMS}{zplm}{b}{n}{<-> zplmb7y}{}
\DeclareFontShape{OMS}{zplm}{bx}{n}{<->ssub * zplm/b/n}{}
\begin{document}
Inline $\frac{1}{2}$ and display
\[ \frac{1}{2} \]
\end{document}
这两个值0.789
和0.798
取自newpxmath
。如果我没记错的话,它们应该足以满足 Palatino 的长上升段和下降段的需求。您可以根据需要调整它们,甚至可以\fontdimen 9, 10, 12
同时调整。
答案2
即使在现代计算机中,上方的空间也比下方的空间稍微大一些,为 1/2,并且通常 TeX 不会尝试均衡空间,例如 1/x,其中下方的空间比上方的空间大很多,或者分母使用高符号()其中下方的空间比上方的空间小很多。
\documentclass{article}
\begin{document}
\[\frac{1}{2} + \frac{1}{x} + \frac{1}{(N)} \]
\end{document}
因此,如果您使用的数字相对较高,分数线下方数字上方的空间就会较小。
但是,如果你想要增加分数线下方的空间,你可以设置 fondimen11,这是分母的默认下降,请参阅
\documentclass{article}
\begin{document}
\sbox0{$x$}% initialise math
\fontdimen11\textfont2=10pt
\[\frac{1}{2} + \frac{1}{x} + \frac{1}{(N)} \]
\end{document}