kbordermatrix 括号周围的间距更好

kbordermatrix 括号周围的间距更好

我用它kbordermatrix来在矩阵上放置一些索引。以下是一个例子: 基本示例 请参阅文章末尾的此示例背后的代码。

问题在于,[与其他矩阵相比,kbordermatrix 的括号与第一个“正确”列之间的间距似乎太大,右边的也是如此]

我想到的一个解决方法是重新定义 kbordermatrix 使用的左分隔符和右分隔符。它似乎效果很好;当使用

\renewcommand{\kbldelim}{[\hspace{-1ex}}

我们得到以下结果: 第一次尝试 看起来好多了!但是,现在我们尝试对右括号做同样的事情:

\renewcommand{\kbrdelim}{\hspace{-1ex}]}

但这会出现错误:

ERROR: Missing delimiter (. inserted).

--- TeX said ---
<to be read again> 
                   \let 
l.14   }

--- HELP ---
From the .log file...

I was expecting to see something like `(' or `\{' or
`\}' here. If you typed, e.g., `{' instead of `\{', you
should probably delete the `{' by typing `1' now, so that
braces don't get unbalanced. Otherwise just proceed.
Acceptable delimiters are characters whose \delcode is
nonnegative, or you can use `\delimiter <delimiter code>'.

显而易见

\renewcommand{\kbrdelim}{\delimiter \hspace{-1ex}]}

也不起作用。

有什么想法可以解决这个问题吗?

一个最小的工作示例:

\documentclass{article}
\usepackage{amsmath}
\usepackage{kbordermatrix}

\begin{document}
\begin{equation*}
  \kbordermatrix{
      & 1 & 2 \\
    1 & 0 & 1 \\
    2 & 1 & 0
  }
  \times
  \begin{bmatrix}
    a & b \\
    c & d
  \end{bmatrix}
  =
  \begin{bmatrix}
    c & d \\
    a & d
  \end{bmatrix}
\end{equation*}
\end{document}

要编译它,您必须使用该kbordermatrix.sty文件:加拿大运输安全局

答案1

重新定义\kbldelim允许你插入内容eft liter delim,但你尝试插入内容已经太迟了通过重新定义来修改 ight iter 。r你必须为此打补丁(使用delim\kbrdelim\kbordermatrixetoolbox):

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath}
\usepackage{kbordermatrix,etoolbox}

\renewcommand{\kbldelim}{[\hspace*{-\arraycolsep}}
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\kbordermatrix}{\right\kbrdelim}{\hspace*{-\arraycolsep}\right\kbrdelim}{}{}

\begin{document}

\[
  \kbordermatrix{
      & 1 & 2 \\
    1 & 0 & 1 \\
    2 & 1 & 0
  }
  \times
  \begin{bmatrix}
    a & b \\
    c & d
  \end{bmatrix}
  =
  \begin{bmatrix}
    c & d \\
    a & d
  \end{bmatrix}
\]

\end{document}

答案2

您可以使用包。在的nicematrix环境中,空间的设计与的环境中的空间相同。{bNiceMatrix}nicematrix{bmatrix}amsmath

\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\NiceMatrixOptions{code-for-first-col=\scriptstyle,code-for-first-row=\scriptstyle}
$\begin{bNiceMatrix}[first-col,first-row]
& 1 & 2 \\
1 & 0 & 1 \\
2 & 1 & 0 
\end{bNiceMatrix}
\times
\begin{bmatrix}
a & b \\
c & d 
\end{bmatrix}
=
\begin{bmatrix}
c & d \\
a & b
\end{bmatrix}$
\end{document}
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\NiceMatrixOptions{code-for-first-col=\scriptstyle,code-for-first-row=\scriptstyle}
$\begin{bNiceArray}{cc}[first-col,first-row]
& 1 & 2 \\
1 & 0 & 1 \\
2 & 1 & 0 
\end{bNiceArray}
\times
\begin{bmatrix}
a & b \\
c & d 
\end{bmatrix}
=
\begin{bmatrix}
c & d \\
a & b
\end{bmatrix}$
\end{document}

上述代码的输出

该包nicematrix还提供绘制数学矩阵的其他功能。

相关内容