我想為 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 自己的建議的解決方案 - 請參閱。 p。 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}