Ich möchte ein kleines Stück Code für TeX schreiben, der eine Funktion erstellen würde, die die Eingaben A und B entgegennimmt und ausgibt
$
\mathbb{E}\left[A \middle| B\right].
$
Grundsätzlich möchte ich eine „dynamische“ \newcommand
Funktion. Ist das möglich? Und wenn ja, wie kann ich das machen?
Antwort1
Sie können einen solchen Befehl ganz einfach mit \DeclarePairedDelimiterXPP
von definieren. Dieser Befehl hat eine mit Sternchen versehene Version, die einem Paar aus impliziten und einem mathtools
entspricht , und eine Version ohne Sternchen, die ein optionales Argument zur Feinabstimmung der Größe akzeptiert: und .\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}
Antwort2
Antwort3
Hier ist eine Lösung, die Knuths eigene Empfehlungen – siehe S. 174 des TeXbook – für den horizontalen Abstand verwendet, der in Ausdrücken verwendet werden sollte, die vertikale Striche enthalten, um Konditionierungsereignisse anzuzeigen.
\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}