从下图可以看出,两者都应该是 4x4 矩阵,但我想用 2x2 矩阵中的 2x2 矩阵来表示第一个矩阵,其中 J1 和 J2 是 2x2 矩阵,而 0 是 2x2 零矩阵。我想让大小看起来一样,因为这看起来有点丑。有人有想法吗?我也附上了代码。
\begin{multicols}{2}
\begin{enumerate}
\item $\begin{Bmatrix}
J_1 & 0 \\
0 & J_2
\end{Bmatrix}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 0 \\
0 & 0 & 0 & \lambda_1
\end{Bmatrix}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 1 \\
0 & 0 & 0 & \lambda_0
\end{Bmatrix}$
\item $\begin{Bmatrix}
\alpha & \beta & 1 & 0 \\
-\beta & \alpha & 0 & 1 \\
0 & 0 & \alpha & \beta \\
0 & 0 & -\beta & \alpha
\end{Bmatrix}$
\end{enumerate}
\end{multicols}
答案1
\documentclass{article}
\usepackage{multicol,amsmath}
\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\item $\begin{Bmatrix}
\begin{picture}(0,0)\put(5,-8){\boldmath\large$J_1 $}\end{picture}
&&
\begin{picture}(0,0)\put(5,-8){\boldmath\large$0$}\end{picture}
&\\
\phantom{\lambda_1}&
\phantom{\lambda_1}&
\phantom{\lambda_1}&
\phantom{\lambda_1}\\
\begin{picture}(0,0)\put(5,-8){\boldmath\large$0$}\end{picture}
&&
\begin{picture}(0,0)\put(5,-8){\boldmath\large$J_2 $}\end{picture}
&\\
\phantom{0}
\end{Bmatrix}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 0 \\
0 & 0 & 0 & \lambda_1
\end{Bmatrix}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 1 \\
0 & 0 & 0 & \lambda_0
\end{Bmatrix}$
\item $\begin{Bmatrix}
\alpha & \beta & 1 & 0 \\
-\beta & \alpha & 0 & 1 \\
0 & 0 & \alpha & \beta \\
0 & 0 & -\beta & \alpha
\end{Bmatrix}$
\end{enumerate}
\end{multicols}
\end{document}
答案2
这里有一个选项,将 2x2 条目移动到 4x4 的位置,并在\fbox
它们周围:
\documentclass{article}
\usepackage{amsmath,multicol}% http://ctan.org/pkg/{amsmath,multicol}
\newcommand{\pl}{\phantom{\lambda_0}}
\makeatletter
\newcommand{\twotofour}[2][]{%
\settowidth{\dimen@}{#1}%
\ifdim\dimen@=\z@\settowidth{\dimen@}{#2}\fi%
\makebox[0pt]{%
\smash{\raisebox{.5\normalbaselineskip}{%
\setlength{\fboxsep}{2\fboxsep}%
\fbox{\makebox[\dimen@]{\vphantom{#1}#2}}}\hspace*{4\arraycolsep}}}}
\makeatother
\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\item $\begin{Bmatrix}
\pl & \pl & \pl & \pl \\
& \twotofour{$J_1$} & & \twotofour[$J_1$]{0} \\
& & & \\
& \twotofour[$J_1$]{0} & & \twotofour{$J_2$}
\end{Bmatrix}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 0 \\
0 & 0 & 0 & \lambda_1
\end{Bmatrix}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 1 \\
0 & 0 & 0 & \lambda_0
\end{Bmatrix}$
\item $\begin{Bmatrix}
\alpha & \beta & 1 & 0 \\
-\beta & \alpha & 0 & 1 \\
0 & 0 & \alpha & \beta \\
0 & 0 & -\beta & \alpha
\end{Bmatrix}$
\end{enumerate}
\end{multicols}
\end{document}
具有水平/垂直规则的另一个选项,默认用于array
创建第一个Bmatrix
:
\documentclass{article}
\usepackage{amsmath,multicol}% http://ctan.org/pkg/{amsmath,multicol}
\newcommand{\pl}{\phantom{\lambda_0}}
\makeatletter
\newcommand{\twotofour}[2][]{%
\makebox[0pt]{%
\smash{\raisebox{.5\normalbaselineskip}{%
#2}\hspace*{4\arraycolsep}}}}
\makeatother
\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\item $\left\{\begin{array}{@{}cc|cc@{}}
\pl & \pl & \pl & \pl \\
& \twotofour{$J_1$} & & \twotofour[$J_1$]{0} \\
\hline
& & & \\
& \twotofour[$J_1$]{0} & & \twotofour{$J_2$}
\end{array}\right\}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 0 \\
0 & 0 & 0 & \lambda_1
\end{Bmatrix}$
\item $\begin{Bmatrix}
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 1 \\
0 & 0 & 0 & \lambda_0
\end{Bmatrix}$
\item $\begin{Bmatrix}
\alpha & \beta & 1 & 0 \\
-\beta & \alpha & 0 & 1 \\
0 & 0 & \alpha & \beta \\
0 & 0 & -\beta & \alpha
\end{Bmatrix}$
\end{enumerate}
\end{multicols}
\end{document}
答案3
这里我使用了 TABstack。对于三个正常大小的 TABstack,语法是可以互换的,除了将环境内容放入参数中。我确实需要提前\braceMatrixstack
设置水平列间间隙。2ex
\LARGE
对于大型矩阵,我只需制作满足垂直要求的字母即可。我确实需要在条目的左侧和右侧添加一点空间,并更改列间间隙。
\documentclass{article}
\usepackage{multicol}
\usepackage{tabstackengine}
\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\setstacktabbedgap{3.3ex}
\item $\LARGE\braceMatrixstack{
~J_1 & 0~ \\
~0 & J_2~
}$
\setstacktabbedgap{2ex}
\setstackgap{L}{\baselineskip}
\item $\braceMatrixstack{
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 0 \\
0 & 0 & 0 & \lambda_1
}$
\item $\braceMatrixstack{
\lambda_0 & 1 & 0 & 0 \\
0 & \lambda_0 & 1 & 0 \\
0 & 0 & \lambda_0 & 1 \\
0 & 0 & 0 & \lambda_0
}$
\item $\braceMatrixstack{
\alpha & \beta & 1 & 0 \\
-\beta & \alpha & 0 & 1 \\
0 & 0 & \alpha & \beta \\
0 & 0 & -\beta & \alpha
}$
\end{enumerate}
\end{multicols}
\end{document}