>
> Hi,
>
> I find myself writing a lot of probability expressions where I want
> the delimiters to scale automatically, and | (conditional sign) to
> scale automatically, and the spacing around | to be correct. In LaTeX,
> I used to use braket package to do this. Since moving to ConTeXt, I
> was doing this by hand, but wring a lot of
>
> \EXP\left\{ ... \,\middle\, ...\right\} and \Pr( ... \mid ...)
>
> soon became a pain to read and write. So (thanks to Taco's first hand
> knowledge of why TeX is Turing complete), I have written the following
> macros:
>
> \unprotect
> \definesystemvariable {ms} % Math Set
>
> \def\mathsetmiddle{\,\middle\mathsetparameter\c!middle\,}
>
> \let\currentmathset\empty
> \def\mathsetparameter#1%
>
> {\executeifdefined{\??ms\currentmathset#1}{\executeifdefined{\??ms#1}\empty}}
>
> \def\definemathset
> {\dodoubleargument\dodefinemathset}
>
> \def\dodefinemathset[#1][#2]%
> {\getparameters[\??ms#1]
> [\c!text=,\c!left={\{},\c!right={\}},\c!middle=\vert,#2]
> \setvalue{#1}{\dododefinemathset[#1]}}
>
> \def\dododefinemathset[#1]#2#%
> {\begingroup
> \def\currentmathset{#1}
> \mathcode`\|32768
> \let|\mathsetmiddle
> \def\mathsetarguments{#2}
> \dodododefinemathset}
>
> \def\dodododefinemathset#1%
> {\doifsomething{\mathsetparameter\c!text}
> {\mathop{\mathsetparameter\c!text\mathsetarguments}}
> \left\mathsetparameter\c!left#1\right\mathsetparameter\c!right
> \endgroup}
>
> \protect
>
> which allows me to do
>
> \definemathset[EXP][text={\mfunction{E}}]
> \definemathset[PR][text={\mfunction{Pr}},left=(,right=)]
>
> \starttext
>
> Correct spacing around the vertical bar.
> \startformula
> \EXP{f(X) | Y} = \sum_{x} f(x) \PR{x|Y}
> \stopformula
>
> Correct scaling of delimiters (as correct as left and right give you)
>
> \startformula
> \EXP{\sum_z f(X,z) | Y} = \sum_{x,z} f(x,z) \PR{x,z|Y}
> \stopformula
>
> Correct handling of sub|/|super scripts
>
> \startformula
> \EXP_X{f(X) | Y} = \sum_{x} f(x) \PR{x|Y}
> \stopformula
>
>
> Is there anyone else interested in this kind of stuff? I have not
> ported all the features of braket.sty, but only those that I needed.
> Other should not be too difficult to port.
>
> Hans and Taco: Does it make sense to add these to the core? If so, I
> can polish the macros a bit (add a \setupmathsets command).
>
> Aditya
>
I think I will need it near in the future. Thanks for nice the nice works.
Zulkifli