让 \left[ \right] 忽略 \underbrace 的高度

让 \left[ \right] 忽略 \underbrace 的高度

这个问题类似于没有大环境括号的下支撑( \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

我还建议进行其他更改:

  1. 最好对期望有一个个人命令;如果审阅者突然出现并命令你用更漂亮的字体排版“E”,你只需更改一行代码就可以做到;

  2. 对于微分符号也是如此;你试图投稿的期刊可能希望“d”直立(不幸的是,有些期刊确实如此);使用个人命令更容易遵守;此外,这会\diff在需要时自动添加细空格;

  3. 不要在文档中使用\underbrace(或):在这种情况下它并不重要(但是对于宏的工作来说它确实重要),但一般来说它会导致糟糕的间距;\overbrace\postsmash

  4. 当您进行最终修订时,请检查输出以查找需要添加\,\!修复冲突的地方。

\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 的基本上一样回答但是,如果使用较少的宏间接指令,也许会更容易看到发生了什么。

相关内容