如何使符号 | 像其他分隔符一样变大?

如何使符号 | 像其他分隔符一样变大?

考虑以下代码

\documentclass{amsbook}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\[
E(X) = \delta \left[ \frac{1}{-\delta} x e^{-\delta x} \left| \right|_0^\infty \ldots  \right]
\]
\end{document}

它产生了以下看起来很奇怪的结果:

在此处输入图片描述

反转中间的顺序\left|\right|解决问题,但只是部分解决问题(请注意不同大小的最终定界符):

\[
E(X) = \delta \left[ \frac{1}{-\delta} x e^{-\delta x}  \right|_0^\infty \left| \ldots  \right]
\]

在此处输入图片描述

这是为什么? 有没有合适的方法可以做到这一点?

答案1

对于一次性公式,您不需要任何特殊的东西,只需使用\Bigl和朋友一样即可。

多次亮相,

\documentclass{article}
\usepackage{amsmath}
\usepackage{mleftright}

\ExplSyntaxOn

\NewDocumentCommand{\brackeval}{O{}mmmm}
 {% #1 = size instruction
  % #2 = before the evaluation bar
  % #3 = lower bound
  % #4 = upper bound
  % #5 = after the evaluation bar
  \tonyk_brackeval:nnnnn { #1 } { #2 } { #3 } { #4 } { #5 }
 }

\cs_new_protected:Nn \tonyk_brackeval:nnnnn
 {
  \tl_use:c { c__tonyk_brackeval_open_#1_tl } [
  #2 \vphantom{#5}
  \tl_use:c { c__tonyk_brackeval_middle_#1_tl } |\sb{#3}\sp{#4}
  \;
  #5 \vphantom{#2}
  \tl_use:c { c__tonyk_brackeval_close_#1_tl } ]
 }

% case of no optional argument
\tl_const:cn { c__tonyk_brackeval_open__tl } { }
\tl_const:cn { c__tonyk_brackeval_middle__tl } { }
\tl_const:cn { c__tonyk_brackeval_close__tl } { }
% case of *
\tl_const:cn { c__tonyk_brackeval_open_*_tl } { \mleft.\kern-\nulldelimiterspace\mleft }
\tl_const:cn { c__tonyk_brackeval_middle_*_tl } { \mright }
\tl_const:cn { c__tonyk_brackeval_close_*_tl } { \mright }
% other cases
\clist_map_inline:nn { big, Big, bigg, Bigg }
 {
  \tl_const:cx { c__tonyk_brackeval_open_#1_tl } { \exp_not:c { #1l } }
  \tl_const:cx { c__tonyk_brackeval_middle_#1_tl } { \exp_not:c { #1 } }
  \tl_const:cx { c__tonyk_brackeval_close_#1_tl } { \exp_not:c { #1r } }
 }

\ExplSyntaxOff

\begin{document}

\begin{gather}
E(X)=\delta\brackeval{x}{a}{b}{\dots} \\
E(X)=\delta\brackeval[big]{x}{a}{b}{\dots} \\
E(X)=\delta\brackeval[Big]{-\frac{1}{\delta}xe^{-\delta x}}{0}{\infty}{\dots} \\
E(X)=\delta\brackeval[*]{-\frac{1}{\delta}xe^{-\delta x}}{0}{\infty}{\dots}
\end{gather}

\end{document}

效果类似于Davislor 的回答,但它也允许自动调整大小(尽管语法略有不同)。自动调整大小的技巧是\left.在开头添加一个,因此对于我们可以\right接受限制的栏,我们可以使用它。由于幻影的存在,尺寸将相同。

在此处输入图片描述

答案2

虽然您通常可以使用\left[... \middle|...\right]\left\lbrack... \middle\vert... \right\rbrack,但这里却打破了限制。

因此,一个不错的替代方案是\DeclarePairedDelimiterX使用\mathtools。(请参阅手册第 3.6 节。)这允许您将表达式内部分成多个段,并将其用作\delimsize中间分隔符。您可以使用大小参数调用它,例如[\big][\bigg]

\documentclass{amsbook}
\usepackage{amsmath, amssymb}
\usepackage{mathtools}

\DeclarePairedDelimiterX{\expect}[4]{\lbrace}{\rbrace}{#1 \delimsize\vert_{#2}^{#3} #4}

\begin{document}
\[
E(X) = \delta \expect[\bigg]{\frac{1}{-\delta} x e^{-\delta x}}{0}{\infty}{\ldots}
\]
\end{document}

计算机现代样本

通常情况下,您可以使用带星号的宏版本来自动缩放,例如\expect*,但如果您在此处这样做,限制就会被打破。

预计到达时间:我刚注意到我写的是\lbraceand\rbrace而不是\lbrackand \rbrack。哎呀!

答案3

我使用了\Bigl\Bigr分隔符,而不是\left和,\right以使整个方程具有正确的大小。

\documentclass{amsbook}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\[
E(X) = \delta \Bigl[ \frac{1}{-\delta} x e^{-\delta x}  \Bigl|_0^\infty \cdots  \Bigr]
\]
\end{document}

在此处输入图片描述

尺寸较大 \Biggl,并且\Biggr

\documentclass{amsbook}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\[
E(X) = \delta \Biggl[ \frac{1}{-\delta} x e^{-\delta x}  \Biggl|_0^\infty \cdots  \Biggr]
\]
\end{document}

在此处输入图片描述

相关内容