如何删除垂直方程对齐中的过度括号

如何删除垂直方程对齐中的过度括号

我正在尝试使用过度支撑,如下所示:

\documentclass{article}
\usepackage{mathtools}

\begin{document}

\begin{equation*}
    \begin{cases}
        \dot{\hat{x}}(t)\,=\,\overbrace{f(\hat{x}(t),u(t))}^{\text{text}}+K(t)\left(y(t)-\hat{y}(t)\right)\\
        \hat{y}(t)\,=\,h(\hat{x}(t),u(t))
    \end{cases}
\end{equation*} 

\end{document}

在此处输入图片描述

但我希望垂直左支架不考虑过度支撑来计算其整体高度。(我想删除红色突出显示的部分)

在此处输入图片描述

答案1

您需要 (a)“ \smash[t]\overbrace{...}^{...}第一行中的表达式\vphantom(b)立即添加术语cases。的参数\vphantom应该是相同环境的版本(如果可能的话,适当简化)cases,但没有\smash步骤(a)中引入的“包装器” 。

第二步是防止第二个论点中的材料\overbrace可能与该材料之前段落中的任何材料发生冲突equation*。@barbarabeeton 对先前的答案

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}
\begin{document}
Initial form: Hello World. Hello World. Hello World. 
\begin{equation*}
\begin{cases}
  \dot{\hat{x}}(t) = \overbrace{f(\hat{x}(t),u(t))}^{\text{text}} +K(t)(y(t)-\hat{y}(t)) \\
  \hat{y}(t) = h(\hat{x}(t),u(t))
\end{cases}
\end{equation*}

\medskip
Not good: \verb+\smash[t]+ alone. Hello World. Hello World. 
\begin{equation*}
\begin{cases}
  \dot{\hat{x}}(t) = \smash[t]{\overbrace{f(\hat{x}(t),u(t))}^{\text{text}}} +K(t)(y(t)-\hat{y}(t)) \\
  \hat{y}(t) = h(\hat{x}(t),u(t))
\end{cases}
\end{equation*}

\medskip
Good: \verb+\smash[t]+ \emph{and} outer \verb+\vphantom+. Hello World. 
\begin{equation*}
\begin{cases}
  \dot{\hat{x}}(t) = \smash[t]{\overbrace{f(\hat{x}(t),u(t))}^{\text{text}}} +K(t)(y(t)-\hat{y}(t)) \\
  \hat{y}(t) = h(\hat{x}(t),u(t))
\end{cases}
\vphantom{% argument of \vphantom: the orig. 'cases' env., suitably simplified
  \begin{cases}
    \overbrace{f(\hat{x}(t))}^{\text{text}} \\
    .
  \end{cases}}
\end{equation*}

\end{document}

答案2

您可以使用\smash带有过度支撑部分的命令,这使得它被视为没有高度/宽度:

\documentclass{article}
\usepackage{mathtools}

\begin{document}

\begin{equation*}
    \begin{cases}
        \dot{\hat{x}}(t)\,=\,\smash{\overbrace{f(\hat{x}(t),u(t))}^{\text{text}}}+K(t)\left(y(t)-\hat{y}(t)\right)\\
        \hat{y}(t)\,=\,h(\hat{x}(t),u(t))
    \end{cases}
\end{equation*} 

\end{document}

在此处输入图片描述

答案3

我认为您不会有这么多这样的显示。这是一种以最少的代码重复进行的方法。

\documentclass{article}
\usepackage{mathtools}
\usepackage{lipsum}

\newcommand{\obrace}[2]{{% one more brace
  \overbrace{#1}^{#2}%
}}

\begin{document}

\lipsum[34][1-4]
\begin{equation*}
% define a local command
\newcommand{\thisequationwithobrace}{
  \begin{cases}
    \dot{\hat{x}}(t)=\perhapsobrace{f(\hat{x}(t),u(t))}{\mathrm{text}}+K(t)(y(t)-\hat{y}(t)) \\
    \hat{y}(t)=h(\hat{x}(t),u(t))
  \end{cases}
}
\newcommand{\perhapsobrace}[2]{\smash[t]{\obrace{#1}{#2}}}
\vphantom{\let\perhapsobrace\obrace\thisequationwithobrace}
\thisequationwithobrace
\end{equation*} 
\lipsum[35][1-4]

\end{document}

这个想法是将代码存储在一个临时的宏中,该宏可用于制作具有\obrace其标准含义的垂直幻影,但\perhapsobrace在主体中使用,允许重新定义它,以便它粉碎\obrace

等等!这是什么\obrace?使用这样的命令而不是 有两个原因\overbrace。一个原因是它有标准参数,因此很容易用它来定义命令;第二个也是同样重要的原因是,它会选择它周围的正确间距。

如果您对\,=\,(但您不应该)很挑剔,您还应该在间距不正确的过度支撑材料后面使用 +。您也很幸运,\left不会\right选择过大的分隔符。

在此处输入图片描述

相关内容