排版排列和对齐

排版排列和对齐

我正在排版一些排列,并试图突出它们的循环结构如何相互作用,因为它们是重叠的。因此,我希望它们能很好地融入网格中。我已经大致了解了我想要的,但括号存在问题。

在此处输入图片描述

(当排列有一个固定点时,为了清晰起见,我删除了一些括号。)我希望数字正好位于列中,括号填补了空白。(这样所有的 7 都会对齐,而第二个 7 的括号会稍微偏向一侧。这是我当前的代码:

\[\setlength{\arraycolsep}{2pt}
  \begin{matrix}
    (1 & 2 & 3 & 4 & 5)&(6 & 7 & 8 & 9 & 10) \\
    1 & 2 & (3 & 4 & 5&6 & 7) & 8 & 9 & 10\\
    1 & 2 & 3 & (4 & 5&6 & 7 & 8) & 9 & 10
  \end{matrix}
\]

我也尝试过在每对数字之间插入列作为插入括号的位置,但这样一来整个数组在水平方向上的间隔就会太大。

任何建议,将不胜感激!

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\[\setlength{\arraycolsep}{4pt}
  \begin{matrix}
    \llap{(}1 & 2 & 3 & 4 & 5\rlap{)}&\llap{(}6 & 7 & 8 & 9 & 10\rlap{)} \\
    1 & 2 & \llap{(}3 & 4 & 5&6 & 7\rlap{)} & 8 & 9 & 10\\
    1 & 2 & 3 & \llap{(}4 & 5&6 & 7 & 8\rlap{)} & 9 & 10
  \end{matrix}
\]
\end{document}

答案2

进一步阐述 David 的出色回答...如果矩阵很大,输入所有\llaps 和\rlaps 会很累。因此,可以自动制作()激活并处理圈数。初始设置后,输入会变得简单。

\documentclass{article}
\usepackage{amsmath}
\let\svlp(
\let\svrp)
\begin{document}

\[\setlength{\arraycolsep}{4pt}
\catcode`(=\active
\def({\llap{\svlp}}
\catcode`)=\active
\def){\rlap{\svrp}}
  \begin{matrix}(1 & 2 & 3 & 4 & 5)&(6 & 7 & 8 & 9 & 10) \\
    1 & 2 & (3 & 4 & 5&6 & 7) & 8 & 9 & 10\\
    1 & 2 & 3 & (4 & 5&6 & 7 & 8) & 9 & 10
  \end{matrix}
\]
\end{document}

在此处输入图片描述

答案3

解决方案如下blkarray

\documentclass{article}
\usepackage{mathtools}
\usepackage{blkarray}%

\begin{document}

\[
  \makeatletter
  \BA@colsep=3pt
  \makeatother
  \begin{blockarray}{*{10}{c}}
    \begin{block}{(*{5}{c})(*{5}{c})}
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\
    \end{block}
    \begin{block}{cc(*{5}{c})ccc}
      1 & 2 & 3 & 4 & 5&6 & 7 & 8 & 9 & 10\\
    \end{block}
    \begin{block}{ccc(*{5}{c})cc}
      1 & 2 & 3 & 4 & 5 &6 & 7 & 8 & 9 & 10_\\
    \end{block}
  \end{blockarray}
\]

\end{document} 

在此处输入图片描述

相关内容