使用附加索引自动调整大小以满足期望

使用附加索引自动调整大小以满足期望

我试图为期望定义一个新命令,该命令分别将垂直划线(在条件期望的情况下)和括号缩放到参数。此外,我希望有一个参数来指定我正在谈论的期望,即 $\mathbb{E}_{index}$,其中 index 是任意值。

我按照这篇文章中的说明进行操作[垂直线表示绝对值和条件期望。不幸的是,索引现在是期望的参数,反之亦然。当简单地将 #1 与 #2 交换时,我得到了一个缺失数字错误。

我正在使用的代码:

\newcommand{\expcti}[2]{\operatorname{\mathbb{E}}_{#2}\expectiarg#1}
\DeclarePairedDelimiterX{\expectiarg}[1]{[}{]}{%
  \ifnum\currentgrouptype=16 \else\begingroup\fi
  \activatebar#1
  \ifnum\currentgrouptype=16 \else\endgroup\fi
}


\newcommand{\innermid}{\nonscript\;\delimsize\vert\nonscript\;}
\newcommand{\activatebar}{%
  \begingroup\lccode`\~=`\|
  \lowercase{\endgroup\let~}\innermid 
  \mathcode`|=\string"8000
}

我很高兴能得到任何帮助。非常感谢!

编辑:

我想要实现的是一个命令,它使用括号根据条件期望自动缩放垂直条,即左边是我简单使用\left[和右边时得到的结果,\right]右边是我真正想要的:

在此处输入图片描述

我想通过输入来实现 rhs 上的公式$$\expcti*{\frac{1}{2} | Y}{F}$$

答案1

这是一个解决方案,使用两个参数:索引和随机变量,用 分隔|。如果您不需要索引,请使用空参数。如果没有条件部分,即如果您输入 no |,则不会打印垂直线。如果您需要在公式中使用不应解释为分隔符的线,请使用{|}

\documentclass{article}
\usepackage{mathtools, amssymb, nccmath}
\usepackage{xparse}

\DeclarePairedDelimiterXPP\Expect[2]{\mathbb{E}_{#1}}[]{}{\setargs{#2}}%
\NewDocumentCommand{\setargs}{>{\SplitArgument{1}{|}}m}
{\setargsaux#1}
\NewDocumentCommand{\setargsaux}{mm}
{\IfNoValueTF{#2}{#1}{\nonscript\,#1\nonscript\;\delimsize\vert\nonscript\:\allowbreak #2\nonscript\,}}
\DeclarePairedDelimiterXPP\expectaux[3]{\mathbb{E}_{#1}}[]{}{#2\nonscript\:\delimsize\vert\nonscript\:#3}%

\begin{document}

\[ \Expect*{i}{\mfrac{1}{2}X | Y} \quad\Expect[\bigg]{k}{\mfrac{1}{2}X} \]%

\end{document} 

在此处输入图片描述

相关内容