减少新命令中字符之间的间距

减少新命令中字符之间的间距

我对自己新做的命令不满意。我的代码:

\newcommand{\ps}[2]{\mbox{P}_{#1}\left(#2\right)}
$\ps{Y}{y}$ %example

我的问题是下标 Y 和左括号之间的空格太多。有人知道如何让这两个空格更靠近吗?

答案1

\left公式\right被视为内部原子,在某些情况下,这会在子公式前后添加一些空间。可以通过以下方式获得所需的行为

\usepackage{amsmath}
\newcommand{\ps}[2]{\operatorname{P}_{#1}
  \mathopen{}\left(#2\right)\mathclose{}}

因此插入的间距将会消失(TeX 不会在开放原子和内部原子之间插入间距,也不会在内部原子和闭合原子之间插入间距)。

\operatorname用 定义“P”比用更好\mbox

正如 Philippe Goutet 所言,如果需要在右括号后面添加上标或下标,则定义应该是

\newcommand{\ps}[2]{\operatorname{P}_{#1}
  \mathopen{}\mathclose{\left(#2\right)}}

答案2

您可以使用带有负值的数学字距调整(更改-3mu为最适合您需要的值):

\newcommand{\ps}[2]{\mbox{P}_{#1}\mkern-3mu\left(#2\right)}

答案3

您可以看到负间距命令是如何使用的这一页. 因此,对于你的例子,它将类似于

\newcommand{\ps}[2]{\mbox{P}_{#1}\!\left(#2\right)}

相关内容