![数组花括号](https://linux22.com/image/359188/%E6%95%B0%E7%BB%84%E8%8A%B1%E6%8B%AC%E5%8F%B7.png)
答案1
像这样吗?
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathtools, bigstrut}
\begin{document}
\[ \begin{pmatrix}
\bigstrut[t] 0 & & & & & 0 \\[-0.5ex]
\vdots & & & \raisebox{0.35ex}[0pt][0pt]{$ \begin{rcases}0\\[-1ex] \vdots within{0} \\[-0.75ex]0\end{rcases}\left\lfloor\frac{i}{2}\right\rfloor $} &
& \vdots \\
0 & & & & & 0 \\
\vdots \\[-1.5ex]
\vdots \\
0 & & & & & \raisebox{0.35ex}[0pt]{$\left\lfloor\frac{i}{2}\right\rfloor \begin{cases}0\\[-1ex] \vdots within{0} \\[-0.75ex]0\end{cases}\hspace{-1em}$}
\end{pmatrix} \]
\end{document}
要使最后一列中的 0 对齐,可以使用环境pmatrix*
(由 定义mathtools
)和选项[r]
,如 @Mico 所述。然而,这会产生以下效果:全部列将右对齐,这可能是不需要的(例如,第二列、最后一行中的 0 需要左对齐),或者用于\llap
这个特定元素:
\[ \begin{pmatrix}
\bigstrut[t] 0 & & & & & 0 \\[-0.5ex]
\vdots & & & \raisebox{0.35ex}[0pt][0pt]{$ \begin{rcases}0\\[-1ex] \vdotswithin{0} \\[-0.75ex]0\end{rcases}\left\lfloor\frac{i}{2}\right\rfloor $} &
& \vdots \\
0 & & & & \qquad & 0 \\
\vdots \\[-1.5ex]
\vdots \\
0 & & & & \qquad & \raisebox{0.35ex}[0pt]{\llap{$\left\lfloor\frac{i}{2}\right\rfloor \begin{cases}0\\[-1ex] \vdotswithin{0} \\[-0.75ex]0\end{cases}$\hspace{-1.4em}}}
\end{pmatrix} \]
答案2
除其他选项外,嵌套数组可用于构建这个大数组。花括号可以写成 和\Biggl\{
,\Biggr\}
均来自 amsmath 包。对于超过三行的情况,\Biggl
和\Biggr
不够大,因此需要求助于\left
和\right
。在后一种情况下,您需要在所有其他数组前面添加/附加\left.
/\right.
以修复水平对齐。
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\setlength{\arraycolsep}{1.5em}
\[\left(
\begin{array}{@{}lr@{}}
\begin{array}{@{}cc@{}}
0 & 0 \\
\vdots & \vdots \\
0 & 0
\end{array}\Biggr\}\left\lceil\frac i2\right\rceil
&
\begin{array}{@{}c@{}}
0 \\ \vdots \\ 0
\end{array}
\\ & \\
\begin{array}{@{}c@{}}
\vdots \\ \\ 0
\end{array} & \left\lfloor\frac i2\right\rfloor
\Biggl\{\begin{array}{@{}c@{}}
0 \\ \vdots \\ 0
\end{array}
\end{array}
\right)
\]
\end{document}
另一种可能性:
\setlength{\arraycolsep}{2em}
\newcommand{\lbrce}{\smash{\left.\rule{0pt}{25pt}\right\}}}
\newcommand{\rbrce}{\smash{\left\{\rule{0pt}{25pt}\right.}}
\newcommand{\sdots}{\smash{\vdots}}
\[
\begin{pmatrix}
0 & 0 & 0 \\
\sdots & \sdots\makebox[0pt][l]{$\lbrce\left\lceil\frac i2\right\rceil$} & \sdots \\
0 & 0 & \\
& & 0 \\
& & \makebox[0pt][r]{$\left\lfloor\frac i2\right\rfloor\rbrce$}\sdots \\
0 & & 0
\end{pmatrix}
\]
答案3
这是一个没有不必要空格的可能实现:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
% local command
\newcommand{\zerocol}{\begin{matrix}0\\\vdots\\0\end{matrix}}
\begin{pmatrix}
\zerocol & & \zerocol
& \kern-\nulldelimiterspace\kern-2\arraycolsep
\left.\vphantom{\zerocol}\right\rbrace\left\lceil\frac{i}{2}\right\rceil
& \zerocol
\\
\zerocol & & &
\left\lfloor\frac{i}{2}\right\rfloor\left\lbrace\vphantom{\zerocol}\right.
\kern-\nulldelimiterspace\kern-2\arraycolsep
& \zerocol
\end{pmatrix}
\]
\end{document}