修复垂直下标偏移:再一步

修复垂直下标偏移:再一步

我已经克服了与数学模式中下标定位相关的问题。

\documentclass[10pt]{article}
\begin{document}
$
n_P %before
$
$
\fontdimen15\textfont2=4pt
\fontdimen16\textfont2=3pt
\fontdimen17\textfont2=3pt
n_P %after
$
\end{document}

在此处输入图片描述

我想要的输出是第二个,并且我想将其应用于我的文档的每个下标。

我怎样才能避免在每种数学模式下重写整个块?

  \fontdimen15\textfont2=4pt
  \fontdimen16\textfont2=3pt
  \fontdimen17\textfont2=3pt

答案1

您无需再做任何事情。该\fontdimen设置是全局的。尝试$n_P$在测试代码中添加以下内容,您就会看到。

当然,最好将此设置移至前言。但是 LaTeX 会在使用第一个数学模式时设置所有数学字体。这就是为什么您无法\fontdimen15\textfont2=4pt在第一个数学模式之前执行此操作的原因。但是您可以使用上面评论中提到的技巧\setbox0=\hbox{$ $}来在第一次使用数学模式时设置数学字体。

注意:如果使用 LuaTeX,则这些\fontdimen设置将被忽略。您必须设置 LuaTeX 文档第 108 页中提到的特殊寄存器。对于您的示例,您必须设置:

\Umathsubshiftdown\textstyle=3pt
\Umathsubsupshiftdown\textstyle=3pt

\displaystyle并对、\scriptstyle和做类比设置\scripscriptstyle

注意2. 我们在LuaTeX中使用Unicode数学,这里的默认设置更好。你可以通过这个OpTeX文档进行比较:

$n_P$ ... old 8-bit fonts.

\fontfam[lm] % Unicode math is loaded

$n_P$ ... LatinModern-Math.

\bye

答案2

根据@user202729 的建议,我已完成我的工作

\documentclass[10pt]{article}
\everymath{
  \fontdimen15\textfont2=4pt
  \fontdimen16\textfont2=4pt
  \fontdimen17\textfont2=4pt
}
\begin{document}
$n_P^0 \quad n_P$
\end{document}

在此处输入图片描述

相关内容