考虑以下:
\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}
由此产生了如下结果:
\overbrace
我想要u_3
出现多于,\overline
但仍然只包含括号。我找不到办法做到这一点。
有办法吗?
答案1
将整个内容排版三次。第一次排版为水平幻影以设置宽度,第二次排版为真实内容,第三次排版为垂直幻影。
前两次两个物体是叠加的\ooalign
。
为了节省输入,对象被保存在一个临时命令中,该命令以说明其高度的不可见规则作为参数。
\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}
答案2
另一种解决方案仅打印一次公式(而不是三次):
$$
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}
$}}
$$
答案3
\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}