我已经克服了与数学模式中下标定位相关的问题。
\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