附加环境定义

附加环境定义

有没有办法附加环境定义,\appendenvironment类似于\(re)newenvironment

具体来说,我想减少pmatrix环境后的水平间距,使标点符号与右括号紧密贴合。默认间距为

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\begin{equation}
    D_1 = \begin{pmatrix}
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1
    \end{pmatrix},
\end{equation}
\end{document}

添加\mkern-6mu\!\!之后\end{pmatrix}会产生更美观的外观。

在此处输入图片描述

是否有某种方法可以在pmatrix不使用\renewenvironment和复制整个环境定义到我的序言之后插入这个负空间?

答案1

然而坎帕 建议\xpatchcmd\AfterEndEnvironmentetoolbox包中使用一种方法,作为另一种替代方法,它\g@addto@macro不需要额外的包,因为它是一个 LaTeX 内核宏。

我更喜欢这种\AfterEndEnvironment方法,因为它更干净一些。

\documentclass{article}
\usepackage{mathtools}

\usepackage{etoolbox}


\begin{document}
\begin{equation}
    D_1 = \begin{pmatrix}
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1
    \end{pmatrix},
\end{equation}


\AfterEndEnvironment{pmatrix}{\mkern-6mu}

\begin{equation}
    D_1 = \begin{pmatrix}
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1
    \end{pmatrix},
\end{equation}

Now with bmatrix and then with \verb!\g@addto@macro\endbmatrix!

\begin{equation}
    D_1 = \begin{bmatrix}
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1
    \end{bmatrix},
\end{equation}


\makeatletter
\g@addto@macro{\endbmatrix}{\mkern-6mu}%
\makeatother

\begin{equation}
    D_1 = \begin{bmatrix}
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1\\
        1 & -i & i & -1
    \end{bmatrix},
\end{equation}

\end{document}

在此处输入图片描述

相关内容