\begin{array} ... \end{array}
我猜,当需要比使用pmatrix
、bmatrix
等获得的更多控制时,使用适当的\left
和\right
以及相关符号来建模矩阵是很正常的。
现在,我需要smallmatrix
,但我需要更多控制。基本上,我想用\begin{smallmatrix} ... \end{smallmatrix}
来建模\begin{array} ... \end{array}
。
这并不像在 左右放置命令那么简单\begin{array} ... \end{array}
。我应该使用\scalebox
吗?
\begin{array}{c|c}
a & b \\ \hline c & d
\end{array}
如您所见,我使用的是垂直线和水平线。现在我需要它们,但在此矩阵中:
\begin{smallmatrix}
a & b \\ \hline c & d
\end{smallmatrix}
那可能吗?
答案1
您可以smallmatrix
通过array
以下方式进行模拟:
\documentclass{article}
\usepackage{amsmath} % just for comparison
\newenvironment{smallarray}[1]
{\null\,\vcenter\bgroup\scriptsize
\renewcommand{\arraystretch}{0.7}%
\arraycolsep=.13885em
\hbox\bgroup$\array{@{}#1@{}}}
{\endarray$\egroup\egroup\,\null}
\begin{document}
$\left[\begin{smallmatrix}a & b\\ g&d\end{smallmatrix}\right]
\left[\begin{smallarray}{cc}a & b\\g&d\end{smallarray}\right]
\left[\begin{smallarray}{c|c}a & b\\g&d\end{smallarray}\right]$
\end{document}
然而,\hline
在行之间添加smallarray
不会产生令人满意的结果。
可以在两种环境中添加水平线
\noalign{\vskip1pt\hrule\vskip1pt}
而不是\hline
,但这可能会使分隔符增长一步。