我想排版以下矩阵:
但是,我不知道如何实现指向矩阵条目的括号和点。
答案1
例子:
\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{mleftright}
\begin{document}
\[
\Phi =
\begin{tabular}{@{}c@{}}
\rotatebox[origin=c]{90}{$\scriptstyle\text{states}$}
\end{tabular}
\mleft\{
\vphantom{%
\begin{bmatrix}
\vdots \\
\phi_{iy} \\
\vdots
\end{bmatrix}
}%
\mright.\kern-\nulldelimiterspace
j % \,
\overbrace{%
\mathop{%
\!
\begin{bmatrix}
\vdots \\
\cdots \phi_{iy} \hphantom{\cdots} \\
\vphantom{\vdots}
\end{bmatrix}
\!
}\limits^{\smash{\textstyle y}}
}^{\text{aggr. states}}
\]
\end{document}
评论:
- 矩阵是使用自动设置括号
bmatrix
的包环境设置的。amsmath
\text
包amsmath
(或amstext
)以文本模式设置文本(自动调整大小)。\mleft
\mright
包装的和避免了和mleftright
周围的额外空间。\left
\right
\vphantom
创建一个空框,其宽度为零,但高度和深度为其参数。因此左括号仅覆盖矩阵,而不覆盖上面的内容。\right.
是不可见的右分隔符。TeX 会插入空格\nulldelimiterspace
,从而\kern-\nulldelimiterspace
删除空格。\begin{tabular}{@{}c@{}}...\end{tabular}
是让框围绕数学轴居中的技巧。(内部\vcenter
使用。)- 大左括号和右括号的侧边距相当大。因此,水平括号比必要的要宽一点(感谢 Barbara Beeton 的注意)。这可以通过
\!
在矩阵前后留出负空间来解决。\,
可以在后面插入一个 Aj
以保持矩阵之间的空间不变。但我已经对其进行了注释,因为在我看来,距离越小看起来越好。
答案2
\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx} %for the \rotatebox command
\begin{document}
\[
\setbox0=\hbox{
$\begin{array}{c}
y\\
j\begin{bmatrix}
& \vdots & \\
\cdots & \Phi_{jy} & \\
& & \\
\end{bmatrix}
\end{array}$
}
\Phi = \text{\rotatebox[origin=c]{90}{states}}\left\{\vphantom{\usebox0}\right.\kern-\nulldelimiterspace\overbrace{\usebox0}^\text{aggr. states}
\]
\end{document}