\right 后添加空格

\right 后添加空格

我对所添加的空间有疑问\right.

我读过了关于该主题的回答,其中@egreg 提出了一个删除此空格的宏。但是,当我在自己的文档中使用它时,空格仍然会增加。我编写了一个 MWE,其中我将 的值设置\nulldelimiterspace10pt以便清晰。MWE 是:

\documentclass{minimal}

\usepackage{amsmath}
\newcommand{\zerodel}{.\kern-\nulldelimiterspace}

\begin{document}

\setlength{\nulldelimiterspace}{10pt}

I$\left(\delta t;\delta t;\right.\delta t;\delta t$I

I$\left(\delta t;\delta t;\right\zerodel\delta t;\delta t$I

I$\left(\delta t;\delta t;\delta t;\delta t\right.$I

I$(\delta t;\delta t;\delta t;\delta t$I

\end{document}

其结果是:

结果

您可以清楚地看到第二个分号(第 1 行)后面有一个 10pt 的大空格,\zerodel使用 的地方有一个较小的空格(第 2 行),一个空格数学(第 3 行)\right.被移动到数学块之后,并且没有添加任何空格,\left也没有\right使用任何位置(第 4 行)。

第 4 行的外观是我想要的,但我希望有\left/\right自动间距。

为什么\zerodel不工作?我该如何修复它?

谢谢!

答案1

让我们看一些变化,留到\right.最后。我们将使用mleftrightH. Oberdiek 的包。

\documentclass{article}

\usepackage{amsmath,mleftright}
\newcommand{\zerodel}{.\kern-\nulldelimiterspace}

\begin{document}

\setlength{\nulldelimiterspace}{10pt} % just for experiment

I$\left(\delta t;\delta t\right\zerodel;\delta t;\delta t$I

I$\mleft(\delta t;\delta t\mright\zerodel;\delta t;\delta t$I

I$(\delta t;\delta t;\delta t;\delta t$I

I$\mleft(\delta t;\delta t\mright.;\delta t;\delta t$I

\end{document}

在此处输入图片描述

第一行。

\right\zerodel和之间插入一个空格,因为和;之间的子公式构成了一个“内部”原子。\left\right

第二、三行

结果完全相同。请注意,分号必须放在后面\mright\zerodel,否则其“标点符号原子”字符将被隐藏在子公式中。

第四行

无论如何都会插入\mleft.字距\nulldelimiterspace。对\mleft\mright只是将“内部”字符移除到子公式中。

答案2

这既不需要乳胶也不amsmath需要。这是基本的 tex 行为。

尝试使用 tex 而不是 latex:

I$\left(\delta t;\delta t;\right.\delta t;\delta t$I
\bye

结果如下:

示例代码的输出

(我知道这不是答案,但输出不能在评论中显示。)

在 中,knuth 调整了无方向性的、等plain.tex命令后的空间,如下所示:\big\Big

\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
\def\n@space{\nulldelimiterspace\z@ \m@th}

奇怪的是,如果在空间减少约一半\n@space后插入等效项,但它并没有完全消失。因此似乎需要对附录 g 或 tex 本身进行探索。(但今天对我来说不是。)\right.

然而,这也是不盲目使用所有分隔符的另一个很好的\left理由\right

相关内容