我有一个这样的等式
\documentclass{article}
\usepackage{IEEEtrantools}
\usepackage{amsmath}
\begin{document}
\begin{IEEEeqnarray*}{rClCl}
\left(
\begin{array}{c}
f\frac{X}{Z} \\ f\frac{Y}{Z}\\ 1
\end{array}
\right) & \sim &
\left(
\begin{array}{c}
fX \\ fY \\ Z
\end{array}
\right) & = & \underbrace{\left(
\begin{array}{cccc}
f & 0 & 0 & 0 \\
0 & f & 0 & 0 \\
0 & 0 & 1 & 0
\end{array}
\right)}_{\text{Projection Matrix of $C$}} \left(\begin{array}{c} X \\ Y \\ Z \\ 1 \end{array}\right)
\end{IEEEeqnarray*}
\end{document}
产生这样的输出:
支架距离矩阵太近,我怎样才能将它移远一些?
答案1
这里,我只需在矩阵周围添加 6pt 的垂直“堆栈间隙”。
\documentclass{article}
\usepackage{IEEEtrantools,stackengine}
\stackMath
\usepackage{amsmath}
\begin{document}
\begin{IEEEeqnarray*}{rClCl}
\left(
\begin{array}{c}
f\frac{X}{Z} \\ f\frac{Y}{Z}\\ 1
\end{array}
\right) & \sim &
\left(
\begin{array}{c}
fX \\ fY \\ Z
\end{array}
\right) & = & \underbrace{\addstackgap[6pt]{\left(
\begin{array}{cccc}
f & 0 & 0 & 0 \\
0 & f & 0 & 0 \\
0 & 0 & 1 & 0
\end{array}
\right)}}_{\text{Projection Matrix of $C$}} \left(\begin{array}{c} X \\ Y \\ Z \\ 1 \end{array}\right)
\end{IEEEeqnarray*}
\end{document}
\arraystretch
但是,为了避免抽筋,你也可以考虑更新:
\documentclass{article}
\usepackage{IEEEtrantools,stackengine}
\stackMath
\usepackage{amsmath}
\begin{document}
{\renewcommand\arraystretch{1.4}
\begin{IEEEeqnarray*}{rClCl}
\left(
\begin{array}{c}
f\frac{X}{Z} \\ f\frac{Y}{Z}\\ 1
\end{array}
\right) & \sim &
\left(
\begin{array}{c}
fX \\ fY \\ Z
\end{array}
\right) & = & \underbrace{\addstackgap[6pt]{\left(
\begin{array}{cccc}
f & 0 & 0 & 0 \\
0 & f & 0 & 0 \\
0 & 0 & 1 & 0
\end{array}
\right)}}_{\text{Projection Matrix of $C$}} \left(\begin{array}{c} X \\ Y \\ Z \\ 1 \end{array}\right)
\end{IEEEeqnarray*}}
\end{document}
答案2
您可以使用幻影,使下支撑位于整个结构下方。
我使用了equation*
,如果不涉及对齐,它会更好(也更简单)。最重要的是,我使用了 ,pmatrix
而不是array
,这可以更好地留出括号的间距。
\documentclass{article}
\usepackage{IEEEtrantools}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\renewcommand{\arraystretch}{1.2} % because of the fractions
\begin{pmatrix}
f\frac{X}{Z} \\ f\frac{Y}{Z}\\ 1
\end{pmatrix}
\sim
\begin{pmatrix}
fX \\ fY \\ Z
\end{pmatrix}
=
\underbrace{
\begin{pmatrix}
f & 0 & 0 & 0 \\
0 & f & 0 & 0 \\
0 & 0 & 1 & 0
\end{pmatrix}
\vphantom{\begin{pmatrix} X \\ Y \\ Z \\ 1 \end{pmatrix}}
}_{\text{\makebox[0pt]{Projection Matrix of $C$}}}
\begin{pmatrix}
X \\ Y \\ Z \\ 1
\end{pmatrix}
\end{equation*}
\end{document}
答案3
我对你发布的截图的反应不是“底部支撑太靠近矩阵了”。相反,我的反应是“行距里面向量和矩阵太紧”和“下括号下面的文本应该分为两行”。
鉴于您的示例没有充分利用环境设施IEEEeqnarray
,我已简化代码以仅使用amsmath
包提供的宏和环境。
通过增加\arraystretch
,矩阵和向量的视觉突出度会更高。这不仅使矩阵和向量内部的内容更容易阅读,而且还降低了下支撑本身的视觉突出度。而且,通过将与下支撑相关的材料分布在两行上,可以更加突出该材料——并且不太突出到支架……
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
\renewcommand\arraystretch{1.5}
\begin{pmatrix}
f\frac{X}{Z} \\ f\frac{Y}{Z}\\ 1
\end{pmatrix}
&\sim
\renewcommand\arraystretch{1.5}
\begin{pmatrix}
fX \\ fY \\ Z
\end{pmatrix}
= \underbrace{
\begin{pmatrix}
f & 0 & 0 & 0 \\
0 & f & 0 & 0 \\
0 & 0 & 1 & 0
\end{pmatrix}}_{\substack{\text{Projection Matrix} \\ \text{of $C$}}}
\renewcommand\arraystretch{1.2}
\begin{pmatrix}
X \\ Y \\ Z \\ 1
\end{pmatrix}
\end{align*}
\end{document}