如何排版两个垂直移位的向量/小矩阵

如何排版两个垂直移位的向量/小矩阵

如何排版两个向量,它们垂直移动半列高,中间有一条缩放线?另外,间距最好不要太大。

在此处输入图片描述

我目前最接近的

$\left.
\raisebox{-0.3ex}{\begin{smallmatrix}a\\a\\s\end{smallmatrix}}
\middle|
raisebox{0.3ex}{\begin{smallmatrix}s\\a\\a\end{smallmatrix}}
\right.$

但是,Lyx 给我提供了一堆关于缺少“$”的错误,这让我觉得我不应该将小矩阵放在 raisebox 中。此外,垂直移位量完全是猜测。有没有更好的方法来做到这一点?

答案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命令内部。

答案2

添加缺失$

\documentclass{article}
\usepackage{amsmath}

\begin{document}
$\left.
\raisebox{-0.3ex}{$\begin{smallmatrix}a\\a\\s\end{smallmatrix}$}
\middle|
\raisebox{0.3ex}{$\begin{smallmatrix}s\\a\\a\end{smallmatrix}$}
\right.$
\end{document} 

在此处输入图片描述

相关内容