高斯包:gmatrix 不等同于相应的 amsmath 环境

高斯包:gmatrix 不等同于相应的 amsmath 环境

以下引用自gauss软件包文档:

该包定义了一个新的矩阵环境gmatrix,其行为与 Latex 和 AMS-Latex 的矩阵一样。

但是当使用gmatrix环境时align,输出是不是相当于相应的amsmath环境:

\documentclass{scrartcl}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{gauss}

\begin{document}

\begin{align*}
  \begin{pmatrix}
  0 & 1 & 0 & 1 & 1\\
  1 & 0 & 1 & 1 & 1\\
  1 & 1 & 0 & 1 & 0
  \end{pmatrix}
\end{align*}

\begin{align*}
  \begin{gmatrix}[p]
  0 & 1 & 0 & 1 & 1\\
  1 & 0 & 1 & 1 & 1\\
  1 & 1 & 0 & 1 & 0
  \end{gmatrix}
\end{align*}

\end{document}

括号的高度相同,但行距不同,我认为上面的版本看起来更好:

pmatrix 与 gmatrix

此外,整个矩阵的水平对齐方式略有不同,但这可能是因为在排版矩阵操作时需要一些额外的空间(这是包的重点gauss)。

有趣的是,当使用equation而不是 时align,第一个问题就消失了。有没有办法让align环境获得相同的行为?

答案1

gauss包直接用于\halign构建矩阵。这使用当前的baselineskip,它align被放大了。

\documentclass{scrartcl}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{gauss}
\usepackage{etoolbox}
\makeatletter
\patchcmd\g@matrix
 {\vbox\bgroup}
 {\vbox\bgroup\normalbaselines}% restore the standard baselineskip
 {}{}
\makeatother

\begin{document}

\begin{align*}
  \begin{pmatrix}
  0 & 1 & 0 & 1 & 1\\
  1 & 0 & 1 & 1 & 1\\
  1 & 1 & 0 & 1 & 0
  \end{pmatrix}
  \begin{gmatrix}[p]
  0 & 1 & 0 & 1 & 1\\
  1 & 0 & 1 & 1 & 1\\
  1 & 1 & 0 & 1 & 0
  \end{gmatrix}
\end{align*}
\begin{equation*}
  \begin{pmatrix}
  0 & 1 & 0 & 1 & 1\\
  1 & 0 & 1 & 1 & 1\\
  1 & 1 & 0 & 1 & 0
  \end{pmatrix}
  \begin{gmatrix}[p]
  0 & 1 & 0 & 1 & 1\\
  1 & 0 & 1 & 1 & 1\\
  1 & 1 & 0 & 1 & 0
  \end{gmatrix}
\end{equation*}


\end{document}

在此处输入图片描述

相关内容