内联数学下标的间距

内联数学下标的间距
$\sigma_{ij} = \rho\sigma_{i}\sigma_{j}$

在此处输入图片描述

是不是只有我一个人有这种感觉,或者右侧的间距看起来不对?下标似乎太靠右了。

有没有办法将下标移近一点,比如它们在左侧?或者间距看起来不错,只是我的眼睛在欺骗我?我正在使用 LuaLaTeX 和 Lucida Bright 字体。

谢谢你的帮助!

答案1

我认为这是 LuaTeX 的一个错误。奇怪的是,如果你在下标中添加一个空原子,字距调整是正确的。

\documentclass{article}
\usepackage{amsmath}
\usepackage{unicode-math}

\setmainfont{Lucida Bright OT}
\setmathfont{Lucida Bright Math OT}

\begin{document}

$\sigma_{ij}=\sigma_{i}\sigma_{j}$ (original)

$\sigma_{ij}=\sigma_{i{}}\sigma_{j{}}$ (with phantoms)

\end{document}

在此处输入图片描述

为了进行比较,这是使用 XeLaTeX 的输出

在此处输入图片描述

注意:LuaTeX 1.09 显然已经修复了该问题,但 TeX Live 2018 绑定到 LuaTeX 1.07。

答案2

您可以添加一个小的负 mu 空间(仅供参考,athinspace: \,是 3mu):

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\[ \sigma_{ij} = \rho\sigma_{\mkern-1 mu i}\sigma_{\mkern-1mu j}
 \]%

\end{document} 

在此处输入图片描述

答案3

subscriptcorrection这是字距调整的问题。你可以借用newtxmath包,我相信这是受到启发的mtpro2包裹。

已编辑:以下代码使字距调整自动进行,因此您无需在每次出现“难看的”下标时添加负空格。由于代码取自newtxmath,字距调整说明是为 Times 设计的。您可能需要针对 Lucida 进行调整。

\makeatletter
% Enable subscript correction
\AtBeginDocument{\mathcode`\_=\string"8000 \catcode`\_=12\relax}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Subscript correction code
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begingroup
 \catcode`\_=13
 \gdef_{\futurelet\next\s@@b}
\endgroup
\def\s@@b{\ifcat\relax\noexpand\next\expandafter\sb\else
 \expandafter\s@@b@\fi}
\def\s@@b@#1{\sb{\futurelet\next\sb@#1}}
\def\sb@{%
 \ifx\next\space@\def\next@. {\futurelet\next\sb@}\else
  \def\next@.{%
   \ifx\next f\mkern-\tw@ mu\else
   \ifx\next j\mkern-\tw@ mu\else
   \ifx\next p\mkern-\@ne mu\else
   %\ifx\next t\mkern\@ne mu\else
   \ifx\next y\mkern-\@ne mu\else
   \ifx\next A\mkern-\tw@ mu\else
   \ifx\next B\mkern-\@ne mu\else
   \ifx\next D\mkern-\@ne mu\else
   \ifx\next H\mkern-\@ne mu\else
   \ifx\next I\mkern-\@ne mu\else
   \ifx\next K\mkern-\@ne mu\else
   \ifx\next L\mkern-\@ne mu\else
   \ifx\next M\mkern-\@ne mu\else
   \ifx\next N\mkern-0.5mu\else
   \ifx\next P\mkern-\@ne mu\else
   \ifx\next X\mkern-\@ne mu\else
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
 \fi
 \next@.} 
\makeatother

您可以调整\@ne\tw@0.5 你使用的字体对于 LucidaBrightMathOT,它们完全主观因为它们是图形设计的问题。

添加:如果您希望添加新的字距调整指令,例如,则在该行前$\sigma_i$插入,\ifx\next i\mkern-<number>mu\else\ifx\next j\mkern-\tw@ mu\else\fi在重复的 's 序列中再添加一个\fi。 的常见选择<number>123

另外,请注意newtxmath注释掉的字距调整指令$_t$%\ifx\next t\mkern\@ne mu\else

相关内容