Eu quero escrever um pouquinho de código para o TeX que faria uma função que recebe as entradas A e B e as saídas
$
\mathbb{E}\left[A \middle| B\right].
$
Basicamente eu quero uma \newcommand
função "dinâmica". Isso é possível? Se sim, como posso fazer isso?
Responder1
Você pode definir esse comando de maneira muito simples com \DeclarePairedDelimiterXPP
from mathtools
. Este comando tem uma versão com estrela, que equivale a um par de implícitos \left…\right
e a \middle
, e uma versão sem estrela que aceita um argumento opcional para ajustar o tamanho: \big, \Big,\bigg
e \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}
Responder2
Responder3
Aqui está uma solução que usa as recomendações do próprio Knuth - cf. pág. 174 do TeXbook - para o espaçamento horizontal que deve ser usado em expressões que contenham barras verticais para denotar eventos condicionantes.
\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}