这个问题类似于没有大环境括号的下支撑( \left(\right) ) 但那篇文章并不是我所需要的。我需要下括号出现在括号下面。
下面的代码
\documentclass[12pt]{article}
\usepackage{mathtools,amssymb,amsthm}
\begin{document}
\begin{equation*}
E \left[ \smash{\underbrace{\int_0^t v^2(s) \, ds}_{\text{deterministic}}} \right] \qquad
E \left[ \underbrace{\int_0^t v^2(s) \, ds}_{\smash{\text{deterministic}}} \right]
\end{equation*}
\end{document}
产生以下输出:
但我需要的是这个:
基本上,我需要 smash 对下括号和文本进行操作,但不需要对 \underbrace 参数内的积分符号进行操作。
答案1
我已经采用了最后一个积分中使用的命令宏关联,称为\mystrut
,以增加 上方的垂直空间underbrace
,我已将其重命名为:
\documentclass[a4paper,12pt]{article}
\usepackage{lipsum}
\usepackage{mathtools}
% \spvertund is a command that creates space above underbrace
\newcommand*\spvertund[1]{\vrule width0pt height0pt depth#1\relax}
\begin{document}
\lipsum[3]
\[
E \biggl[ \underbrace{\spvertund{2.5ex}\int_0^{t} v^{2}(s) ds}_{\text{deterministic}} \biggr], \quad
E \Biggl[ \underbrace{\spvertund{3.5ex}\int_0^{t} v^{2}(s) ds}_{\text{deterministic}} \Biggr]
\]
\lipsum[5]
\end{document}
答案2
我建议使用明确的大小而不是\left
和\right
。
但是,可以通过对材料进行三次排版来使用\left
和:一次粉碎,一次抑制下支撑,一次重新建立材料的正确高度。\right
我还建议进行其他更改:
最好对期望有一个个人命令;如果审阅者突然出现并命令你用更漂亮的字体排版“E”,你只需更改一行代码就可以做到;
对于微分符号也是如此;你试图投稿的期刊可能希望“d”直立(不幸的是,有些期刊确实如此);使用个人命令更容易遵守;此外,这会
\diff
在需要时自动添加细空格;不要在文档中使用
\underbrace
(或):在这种情况下它并不重要(但是对于宏的工作来说它确实重要),但一般来说它会导致糟糕的间距;\overbrace
\postsmash
当您进行最终修订时,请检查输出以查找需要添加
\,
或\!
修复冲突的地方。
\documentclass[12pt]{article}
\usepackage{mathtools,amssymb,amsthm}
\usepackage{lipsum} % for mock text
\DeclarePairedDelimiter{\expectationargument}{[}{]}
\newcommand{\expect}{E\expectationargument}
\newcommand{\diff}{\mathop{}\!d}
\newcommand{\ubrace}[2]{{% note the additional brace
\underbrace{#1}_{#2}%
}}
\makeatletter
\newcommand{\postsmash}[1]{%
\smash{#1}%
\vphantom{\let\ubrace\@firstoftwo#1}%
\gdef\fixverticalspace{\vphantom{#1}}%
}
\makeatother
\begin{document}
\lipsum[1][1-4]
\begin{equation*}
\expect[\Big]{\ubrace{\int_0^t v^2(s) \diff s}{\text{deterministic}}}
\qquad
\expect[\bigg]{\,\ubrace{\int_0^t v^2(s) \diff s}{\text{deterministic}}\,}
\end{equation*}
\lipsum[2][1-4]
\begin{equation*}
\expect*{\,\postsmash{\ubrace{\int_0^t v^2(s) \diff s}{\text{deterministic}}}\,}
\fixverticalspace
\end{equation*}
\lipsum[3][1-4]
\begin{equation*}
\expect[\bigg]{\,\int_0^t v^2(s) \diff s}
\end{equation*}
where the integral is deterministic.
\end{document}
最后的建议是:\underbrace
尽量避免。
答案3
使用\biggl
-\biggr
调整括号:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
E \left[ \smash{\underbrace{\int_0^t v^2(s) \, \mathrm{d}s}_{\text{deterministic}}} \right] \qquad
E \left[ \underbrace{\int_0^t v^2(s) \, \mathrm{d}s}_{\smash{\text{deterministic}}} \right] \qquad
E \biggl[ \underbrace{\int_0^t v^2(s) \, \mathrm{d}s}_{\text{deterministic}} \biggr]
\]
\end{document}
使用\smash
可能会导致括号内的文本干扰周围(垂直)元素。
答案4
每个人都给出了最佳实践的答案(明确指出大小),但本着回答问题的精神:
\documentclass[12pt]{article}
\usepackage{mathtools,amssymb,amsthm}
\begin{document}
\begin{equation*}
\def\filler{\int_0^t v^2(s) \, \mathrm ds}
E \left[ \smash{\underbrace\filler_{\text{deterministic}}}\vphantom\filler \right]
\end{equation*}
\end{document}
这和@egreg 的基本上一样回答但是,如果使用较少的宏间接指令,也许会更容易看到发生了什么。