我如何调整 \underbrace 间距?

我如何调整 \underbrace 间距?

我有一个这样的等式

\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} 

相关内容