空的 pmatrix 看起来很奇怪

空的 pmatrix 看起来很奇怪

我刚刚注意到,空的 pmatrix 看起来有点出乎意料。也就是说,

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[\begin{pmatrix} \end{pmatrix}\]
\end{document}

看起来像)(而不是()。首先,这是一个错误还是功能?其次,是否可以告诉 LaTeX 渲染一个空的 pmatrix 像这样()

\left(\begin{matrix}\end{bmatrix}\right)PS:如果我使用而不是 pmatrix手动添加括号,也会发生同样的事情。

在此处输入图片描述

答案1

这基本上是意料之中的,因为执行的代码pmatrix类似于

\left(
\hspace{-\arraycolsep}
\begin{array}{*{\value{MaxMatrixCols}{c}}
<body of the matrix>
\end{array}
\hspace{-\arraycolsep}
\right)

所以如果数组为空,则只有两个\hspace{-\arraycolsep}起作用。

使用\begin{pmatrix}\relax\end{pmatrix},不可扩展的令牌\relax将启动一个数组单元,如果您不想使用更简单的()

例子:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

X$\begin{pmatrix}\end{pmatrix}$X

X$(\hspace{-2\arraycolsep})$X

X$\begin{pmatrix}\relax\end{pmatrix}$X

\end{document}

在此处输入图片描述

答案2

解决方案中的一个可能的修复方法是

\documentclass{article}
\usepackage{amsmath}
\renewenvironment{matrix}{%
  \matrix@check\matrix\env@matrix
}{%
  \leavevmode\endarray \hskip -\arraycolsep
}
\begin{document}
\[\begin{pmatrix} \end{pmatrix}\]
\end{document}

但总体来说并不安全,需要考虑是否有合适的守卫,你需要避免强行进入额外的一排

   \[\begin{pmatrix} x\\ \end{pmatrix}\]

应该像

    \[\begin{pmatrix} x \end{pmatrix}\]

相关内容