Considere o seguinte:
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\begin{document}
$u=\overline{\exists degree\hspace{3pt} \overbrace{\big(\underbrace{degrees(course, degree)}_{u_1}\wedge\underbrace{degree\neq 1}_{u_2}\big)}^{u_3}}$
\end{document}
O que produz isso:
Quero que apareça o \overbrace
com o rótulou_3
acimao \overline
, mas ainda abrange apenas os parênteses. Não consigo encontrar uma maneira de fazer isso.
Isso pode ser feito de alguma forma?
Responder1
Componha tudo três vezes. O primeiro como um fantasma horizontal para definir a largura, a segunda vez como real, a terceira vez como um fantasma vertical.
Nas duas primeiras vezes os dois objetos são sobrepostos com \ooalign
.
Para economizar digitação, o objeto é salvo em um comando temporário, que toma como argumento uma regra invisível informando sua altura.
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{lipsum} % for giving context
\newcommand{\func}[1]{\operatorname{#1}}
\newcommand{\var}[1]{\mathit{#1}}
\begin{document}
\lipsum*[2]
\[
\newcommand{\contents}[1]{%
\exists\, \var{degree} \:
\overbrace{
#1
\bigl(\,
\underbrace{\func{degrees}(\var{course},\var{degree})}_{u_1}
\wedge
\underbrace{\var{degree}\neq 1}_{u_2}
\,\bigr)
}^{u_3}
}
u={\ooalign{%
$\displaystyle\overline{\rule{0pt}{2ex}\hphantom{\contents{}}}$\cr
$\displaystyle\contents{\rule{0pt}{2.75ex}}$\cr
}}
\vphantom{\contents{\rule{0pt}{2.75ex}}}
\]
\lipsum[2]
\end{document}
Responder2
Outra solução imprime a fórmula apenas uma vez (não três vezes):
$$
u =
\vbox{\def\shiftA{3.3ex}\def\shiftB{\vrule height2.7ex width0pt} %spec. numbers for this formula
\kern\shiftA\hrule\kern-\shiftA
\hbox{$\displaystyle
\exists\, {\it degree}
\overbrace{\big(
\underbrace{\shiftB{\rm degrees}({\it course},{\it degree})}_{u_1}
\wedge
\underbrace{{\it degree}\neq 1}_{u_2}
\big)}^{u_3}
$}}
$$
Responder3
\documentclass[12pt]{article}
\usepackage{mathtools}
\begin{document}
\def\contento{\exists\,\mathit{degree}}
\def\contenti{\big(
\underbrace{{\rm degrees}({\it course},{\it degree})}_{u_1}
\wedge
\underbrace{{\it degree}\neq 1}_{u_2}
\big)}
\[
u=\overline{\contento\phantom{\contenti}}
\llap{$\displaystyle
\overbrace{\vphantom{\overline{\contento\contenti}}\contenti}^{u_3}
$}
\]
\[
u=\overline{\contento\vphantom{\contenti}}\!
\overbrace{
\overline{\vphantom{\contento}\contenti}
}^{u_3}
\]
\end{document}
Responder4
Quero que apareça o
\overbrace
com o rótulou_3
acimao\overline
, mas ainda abrange apenas os parênteses. Não consigo encontrar uma maneira de fazer isso.
Então. Esquecer \overline
. Basta usar \hspace
e desenhar um \rule
na posição, altura, comprimento (e largura) desejados.
$$
u=\exists degree\hspace{3pt}
\overbrace{\big(\underbrace{degrees(course, degree)}_{u_1}
\wedge\underbrace{degree\neq 1}_{u_2}\big)
\hspace{-21em}\rule[2.25ex]{21em}{}
}^{u_3}
$$