我想知道为什么 Latex 会在上标和左括号之间添加一个额外的空格,就像在这种情况下
\documentclass{article}
\usepackage{amsmath}
\let\originalleft\left
\let\originalright\right
\renewcommand{\left}{\mathopen{}\mathclose\bgroup\originalleft}
\renewcommand{\right}{\aftergroup\egroup\originalright}
\begin{document}
$\mathscr{P}^{N}\left(\mathscr{K}\right)$
\end{document}
公式显示上标 N 和左括号之间有一个不必要的空格。我尝试了\left 和 \right 周围的间距,但在本例中不起作用。有什么想法吗?
答案1
正如一些评论中已经指出的那样,不要滥用\left
和\right
。
如果你不是想要在自动调整大小的括号周围留出额外的空格,但由于某种原因,想要自动调整大小的括号,请加载包
mleftright
并使用\mleft
和\mright
。(直接重新定义您所设想的类型的\left
和\right
可能会导致非常奇怪的结果......)\left(
对于手头的示例,自动调整大小并不是一开始就需要的。请注意,由、\mleft(
和产生的括号的大小(
都是相同的。为什么要不必要地弄乱代码呢?
\documentclass{article}
\usepackage{mathrsfs} % for \mathscr macro
\usepackage{mleftright} % for \mleft and \mright macros
\begin{document}
\obeylines % just for this example
$\mathscr{P}^{N}\left(\mathscr{K}\right)$
$\mathscr{P}^{N}\mleft(\mathscr{K}\mright)$
$\mathscr{P}^{N}(\mathscr{K})$
\medskip
$\mathcal{P}^{N}\left(\mathcal{K}\right)$
$\mathcal{P}^{N}\mleft(\mathcal{K}\mright)$
$\mathcal{P}^{N}(\mathcal{K})$
\end{document}
答案2
这与上标符号后的括号无关:
\documentclass{article}
\usepackage{amsmath}
\let\originalleft\left
\let\originalright\right
\renewcommand{\left}{\mathopen{}\mathclose\bgroup\originalleft}
\renewcommand{\right}{\aftergroup\egroup\originalright}
\begin{document}
$P^{N}\!\originalleft(K\originalright)$
$P^{N}\left(K\right)$
$P^{N}(K)$
$P^{N}K$
\end{document}
第一种情况下的\!
是用于删除通常由 插入的细空格\left
。您可以清楚地看到,这四种情况下的间距完全相同。这取决于功能\scriptspace
:在下标或上标符号后,TeX 会添加 的水平间距\scriptspace
,默认值为 0.5pt。
如果你还考虑到数学字母是倾斜的,并且左括号的左上角有一个“洞”,那么空间看起来会比实际更大。但这是有充分理由的。
您可以使用直立字符和没有侧边距的上标来进行更公平的比较:
\documentclass{article}
\newcommand{\thinbar}{{\vphantom{|}\vrule width .2pt}}
\begin{document}
$\mathrm{I}^{\thinbar}\thinbar\mathrm{I}$ $\mathrm{I}^{\mathrm{I}}\mathrm{I}$
\setlength{\scriptspace}{0pt}
$\mathrm{I}^{\thinbar}\thinbar\mathrm{I}$ $\mathrm{I}^{\mathrm{I}}\mathrm{I}$
\end{document}
在左栏中,您可以清楚地看到 的效果\scriptspace
;在右栏中,您可以将效果与“真实”上标进行比较。 的目的\scriptspace
正是稍微分离符号以便于阅读。
重要的提示
我保留了你对\left
和的重新定义\right
,但我无论如何都不推荐它。已经有一个包做得更好,mleftright
。