答案1
您已经拥有的基本功能都可以使用,您只需将其置于$...$
周围smallmatrix
环境中即可。
下面是一个更精致的版本,它定义了一个用于构造矩阵的宏。语法如下
$\shiftedcolumns{a,a,s}{s,a,a}$
这会产生你想要的结果:
该宏接受任意长度的列,并且两边的长度可以不同,因此类似这样的内容
$\shiftedcolumns{a,b,c,d}{d,e,f,g,h}$
就可以了:
完整代码如下:
\documentclass{amsart}
\usepackage{etoolbox}
\newcommand\MatrixColumn[1]{%
\def\sep{\relax\gdef\sep{\\}}% put a \\ between columns
\begin{smallmatrix}\forcsvlist{\sep}{#1}\end{smallmatrix}%
}
\newcommand\shiftedcolumns[2]{\left.\raisebox{-0.3ex}{$\MatrixColumn{#1}$}\middle|%
\raisebox{0.3ex}{$\MatrixColumn{#2}$}\right.}
\begin{document}
$\shiftedcolumns{a,a,s}{s,a,a}$
\bigskip
$\shiftedcolumns{a,b,c,d}{d,e,f,g,h}$
\end{document}
基本上就是\shiftedcolumns
你刚才所用的,只不过它用来\MatrixColumn
排版矩阵。这是使用 for 循环完成的,\forcsvloop
从电子工具箱包中,在smallmatrix
命令内部。