我想为 TeX 编写一小段代码,使其能够生成一个函数,该函数接受输入 A 和 B,并输出
$
\mathbb{E}\left[A \middle| B\right].
$
基本上我想要一个“动态”\newcommand
函数。这可能吗?如果可以,我该怎么做?
答案1
\DeclarePairedDelimiterXPP
你可以非常简单地用from定义这样的命令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
答案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}