块阵列中列之间的空间

块阵列中列之间的空间

我正在寻找一种方法来更改块阵列中的列空间。我尝试了设置\arraycolsep\setlength{\tabcolsep}{20pt}但这些解决方案均未成功。以下是代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{blkarray}

\begin{document}
\[
\arraycolsep=53.4pt
\small
\begin{blockarray}{*{3}{c}}
   & a & b \\
\begin{block}{c[*{2}{c}]}
   a    &   0   & 1 \\
   b    &   2   & 3 \\
\end{block}
\end{blockarray}
\]
\end{document}

结果是:

结果矩阵

我想在矩阵的 a 列和 b 列之间添加更多空间。您知道如何实现吗?理想情况下,我正在寻找的解决方案仍然是使用 blkarray,但这不是必需的。

答案1

不知道为什么,但是它使用了,所以您需要访问其名称中的\BA@colsep命令。@

\documentclass{article}

\usepackage{blkarray}

\begin{document}

\[\makeatletter\setlength\BA@colsep{53.4pt}\makeatother
  \begin{blockarray}{c c c}
        & a & b \\
    \begin{block}{c[c @{\hspace{50pt}} c]}
      a & 0 & 1 \\
      b & 2 & 3 \\
    \end{block}
  \end{blockarray}
\]

\end{document}

在此处输入图片描述

答案2

通过nicematrix设置,您可以获得所需的间距\arraycolsep。顺便说一下,语法更友好。

\documentclass{article}
\usepackage{amsmath}
\usepackage{nicematrix}

\begin{document}

\[
\setlength{\arraycolsep}{20pt}
\begin{bNiceMatrix}[first-row,first-col]
 & a & b \\
a & 0 & 1 \\
b & 2 & 3
\end{bNiceMatrix}
\]

\end{document}

在此处输入图片描述

答案3

这是一个选项:

在此处输入图片描述

\documentclass{article}

\usepackage{blkarray}

\begin{document}

\[
  \begin{blockarray}{c c @{\hspace{50pt}} c}
        & a & b \\
    \begin{block}{c[c @{\hspace{50pt}} c]}
      a & 0 & 1 \\
      b & 2 & 3 \\
    \end{block}
  \end{blockarray}
\]

\end{document}

答案4

分隔长度为\BA@colsep,默认情况下,它等于tabcolsep。我定义了一个新命令来更改它:

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{blkarray}

\makeatletter
\newcommand{\setBAcolsep}[1]{\BA@colsep=#1}
\makeatother

\begin{document}

    \[ \small\setBAcolsep{53.4pt}
        \begin{blockarray}{*{3}{c}}
           & a & b \\
        \begin{block}{c[*{2}{c}]}
           a & 0 & 1 \\
           b & 2 & 3 \\
        \end{block}
        \end{blockarray}
    \]

\end{document} 

在此处输入图片描述

相关内容