自動条件期待演算子を作成しますか?

自動条件期待演算子を作成しますか?

TeX用のちょっとしたコードを書きたいのですが、これは入力AとBを受け取り、出力AとBを出力する関数です。

$
\mathbb{E}\left[A \middle| B\right].
$

基本的に「動的」な機能が欲しいです\newcommand。これは可能ですか? もし可能であれば、どうすれば実現できますか?

答え1

このようなコマンドは、\DeclarePairedDelimiterXPPfrom を使って非常に簡単に定義できます。このコマンドには、暗黙のと のmathtoolsペアに相当する星印付きバージョンと、サイズを微調整するためのオプションの引数 と を受け入れる星印なしバージョンがあります。\left…\right\middle\big, \Big,\bigg\Bigg

\documentclass{article}
\usepackage[utf8]{inputenc}%
 \usepackage{mathtools, nccmath}

\providecommand\given{}
\DeclarePairedDelimiterXPP\EV[1]{E}[]{}{
\renewcommand\given{\nonscript\;\delimsize\vert\nonscript\;:}
#1}

\begin{document}

\[ \EV*{Z\given\frac{X}{Y}}\quad \EV[\Bigg]{Z\given\frac{X}{Y}} \quad \EV[\Big]{Z\given\mfrac{X}{Y}}\]%

\end{document} 

ここに画像の説明を入力してください

答え2

ここに画像の説明を入力してください

\documentclass{article}

\usepackage{amsfonts}
\newcommand\expt[2]{\ensuremath{\mathbb{E}\left[#1\middle|#2‌​\right]}}

\begin{document}

 $\expt{P}{x} = \expt{Q}{y}$

\end{document}

答え3

ここでは、条件付けイベントを示すために縦棒を含む式で使用する必要がある水平方向の間隔について、Knuth 自身の推奨事項 (TeXbook の 174 ページを参照) を使用するソリューションを示します。

ここに画像の説明を入力してください

\documentclass{article}
\usepackage{amsfonts}   % for '\mathbb' macro
\usepackage{amsmath}    % for '\DeclareMathOperator' macro
\usepackage{mleftright} % for '\mleft' and '\mright' macros
\DeclareMathOperator{\E}{\mathbb{E}} % uncond'l expectation operator
\newcommand\coex[2]{\E\mleft[\,#1\;\middle|\;#2\,\mright]}
\begin{document}
$\coex{Y}{X}$, $\coex{W}{\dfrac{U}{V}}$
\end{document}

関連情報