在 mathdesign 中调整间距

在 mathdesign 中调整间距

我喜欢 mathdesign 包,但有些字母之间的间距看起来很糟糕,例如,看看这个字母A

在此处输入图片描述

我在这里找到了解决方案:在数学模式下通过宏激活字符. 因此,使用此代码

\makeatletter
\newcommand{\DeclareMathActive}[2]{%
    % #1 is the character, #2 is the definition
    \expandafter\edef\csname keep@#1@code\endcsname{\mathchar\the\mathcode`#1 }
    \begingroup\lccode`~=`#1\relax
    \lowercase{\endgroup\def~}{#2}%
    \AtBeginDocument{\mathcode`#1="8000}%
}
\newcommand{\std}[1]{\csname keep@#1@code\endcsname}
\makeatother
\DeclareMathActive{A}{\mkern+1.5mu\std{A}\mkern+1.5mu}

间距变得更好:

在此处输入图片描述

但对于这段代码我仍有一些疑问:

  1. 有没有办法保留这封信原来的上标/下标间距?如果上标比下标稍微靠左一点,那就合乎逻辑了。

  2. 由于我不确定上一个问题的答案,所以我决定自己找到如何定义这个间距的方法,答案如下:“语义化”调整上标和下标的字距。但有时我需要将此字符本身用作下标/上标,并且我希望能够这样写:X_A。现在我可以在定义中添加一对括号:\DeclareMathActive{A}{{\mkern+1.5mu\std{A}\mkern+1.5mu}}。但futurelet之后就不起作用了。

  3. 使字符在数学模式下活跃还有其他缺点吗?

  4. 是否存在其他方法可以在数学模式下调整字符间距?

相关内容