根据基数中的字母,前面的上标之间有空格。T、W、Y 等字母在左上角使用墨水,因此没有空格,但使用 I、D、E、...(这些字母的左上角没有组件)时,它们前面有空格。
有没有办法来解决这个问题?
\documentclass{article}
\usepackage{tensor}
\begin{document}
$T^b$ %no space
${}^b T$ ${}^b W$ ${}^b Y$ %no space
$I^b$ %no space
${}^b I$ ${}^b D$ ${}^b E$ %spacing between b and I, D or E
$\tensor[^b]I{}$ %doesn't help
\end{document}
答案1
这是一个基于(后半部分)的解决方案这Hendrik Vogt 的回答太棒了。它通过侵入amsmath
重音定位机制来工作。我不太理解它。
我定义了\presup{<superscript>}{<letter>}
,它按照您的要求执行,并将其应用于您提到的所有字母。我还将它应用于字母“A”和“J”(我认为它们是最糟糕的错误)和\mathcal{A}
。除了“T”(现在看起来更糟)之外,我认为这些都是改进。
\documentclass{article}
\usepackage{amsmath}
\makeatletter %% <- make @ usable in command names
\newcommand*\rel@kern[1]{\kern#1\dimexpr\macc@kerna}
\newcommand*\presup[2]{%
\begingroup
\def\mathaccent##1##2{%
{}^{#1}\rel@kern{-0.8}\macc@nucleus
}%
\macc@depth\@ne
\let\math@bgroup\@empty \let\math@egroup\macc@set@skewchar
\mathsurround\z@ \frozen@everymath{\mathgroup\macc@group\relax}%
\macc@set@skewchar\relax
\let\mathaccentV\macc@nested@a
\macc@nested@a\relax111{#2}%
\endgroup
}
\makeatother %% <- revert @
\begin{document}
\begin{tabular}{lccccccccc}
Bad: & ${}^xA^x$ & ${}^xJ^x$ & ${}^xT^x$ & ${}^xW^x$ & ${}^xY^x$ & ${}^xI^x$ & ${}^xD^x$ & ${}^xE^x$ & ${}^x\mathcal{A}^x$
\\
Good: & $\presup{x}{A}^x$ & $\presup{x}{J}^x$ & $\presup{x}{T}^x$ & $\presup{x}{W}^x$ & $\presup{x}{Y}^x$ & $\presup{x}{I}^x$ & $\presup{x}{D}^x$ & $\presup{x}{E}^x$ & $\presup{x}{\mathcal{A}}^x$
\end{tabular}
\end{document}