我用它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 l
iter delim
,但你尝试插入内容已经太迟了前通过重新定义来修改 ight iter 。r
你必须为此打补丁(使用delim
\kbrdelim
\kbordermatrix
etoolbox
):
\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
还提供绘制数学矩阵的其他功能。