我正在尝试使用过度支撑,如下所示:
\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
选择过大的分隔符。