For completeness here is the one I normally use
\usepackage{mathtools}
\DeclarePairedDelimiterX\Set[2]{\{}{\}}{#1\,\delimsize\vert\,#2}
Edit 2014. After using \Set{A}{B}
for some time, this syntax is not particularly natural, too far from the actual meaning. Instead I'm now using this
\providecommand\given{} % is redefined in \Set
\newcommand\SetSymbol[1][]{\nonscript\:#1\vert\nonscript\:}
\DeclarePairedDelimiterX\Set[1]{\{}{\}}{
\renewcommand\given{\SetSymbol[\delimsize]}
#1
}
Now we can simply use
\Set{ x\in A \given x^2 > 1 }
much much closer to the mathematical meaning.
I use the \SetSymbol
because there are very complicated set constructions, where one cannot use \Set
(\{
and \}
on separate lines), and thus in that case one may want to be able to refer to the given symbol for sets, just in case one want change the symbol later on.
\,\middle\vert\,
\mid
is not a fence it is a binary symbol. I would also suggest making a macro for sets and thus hide the vertical line inside the macro. Then it is also easier to change syntax later on instead of having to do a lot of search and replace. (personally I tend to usemathtools
to build such a set macro).\text
for operators, use say\operatorname
for once of, ot define\End
.\text
does not give you what you would expect in an italic context.\left(
and\right)
should be(
and)
; increasing the size to cover the tilde is wrong. Then also the outer braces can be normal size or, if you really want them larger,\bigl\{
and\bigr\}
; you can then use\bigm|
for the middle bar.