我在对齐同一矩阵中的子矩阵和元素时遇到了麻烦。本质上,我想要做的是这样的(请原谅我糟糕的涂装工作):
子矩阵 Q 位于左上角四个矩阵单元的中间。我主要熟悉数组环境:那里有可能吗?
答案1
矩阵内的矩阵怎么样?
\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{amsmath}
\begin{document}
$
\begin{vmatrix}
Q & \begin{matrix} 0 \\ 0 \end{matrix} \\
\begin{matrix} 2 & 3 \end{matrix} & -1
\end{vmatrix}
$
\end{document}
答案2
或者
\documentclass{article}
\pagestyle{empty} % for cropping
\usepackage{amsmath}
\begin{document}
\[\left|
\begin{array}{cr}
Q & \begin{matrix} 0 \\ 0 \end{matrix} \\
\begin{matrix} 2 & 3 \end{matrix} & -1
\end{array}
\right|\]
\end{document}
使用array
允许更好对齐的环境。
或者可能是类似
\documentclass{article}
\pagestyle{empty} % for cropping
\usepackage{amsmath}
\usepackage{arydshln}
\begin{document}
\[ \left|
\begin{array}{c;{2pt/2pt}r}
\mbox{\LARGE $Q$} & \begin{matrix} 0 \\ 0 \end{matrix} \\ \hdashline[2pt/2pt]
\begin{matrix} 2 & 3 \end{matrix} & -1
\end{array}
\right|
\]
\end{document}
使用该包修改列的大小Q
并包含列之间的虚线arydshln
。
答案3
第三种解决方案是使用\multicolumn
和multirow
。我定义了一个\block
带有两个参数的宏:块占用的行数和列数(表示为一对)以及它在块中放置的内容:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{fourier, heuristica}
\usepackage{multirow}
\usepackage{mathtools}
\def\block(#1,#2)#3{\multicolumn{#2}{c}{\multirow{#1}{*}{$ #3 $}}}
\begin{document}
\[ \begin{vmatrix*}[r]
\block(2,2){Q} & 0 \\
& & 0 \\
2 & 3 & \mathllap{-}1
\end{vmatrix*} \]
\[ \begin{vmatrix*}[r]
2 & 3 & -1 & 0 \\
0 & \block(2,2){P} & 0 \\
4 & & & 0 \\
3 &2 & 1 & 2
\end{vmatrix*} \]
\end{document}