1. Apr 25, 2010

### gauss^2

When I write something in LaTeX, I always try to create shortcuts for things I use a lot, so my code looks has semantically meaningful constructions like $\CountableUnion{U_n}{n}$ instead of complicated strings of symbols like $\bigcup_{n=1}^{\infty}U_n$, for example. I have run into a difficulty in trying to create something to express sets with constraints such as the set B_N in the image below:

[PLAIN]http://img401.imageshack.us/img401/6616/screenshot1rg.png [Broken]

The code I used for that B_N is

Code (Text):

Let us define the countable collection of sets $\CountableCollection{B_N}$ by
$\Defined {B_N} {\SetWithConstraint { \SetMember { \FiniteSum{a_i x^{n-i}}{i}{0}{n} } { \Polynomials{\Integers}{x} } } { \FiniteSum{\AbsoluteValue{a_i}}{i}{0}{n} \neq 0 \quad\text{and}\quad n + \FiniteSum{\AbsoluteValue{a_i}}{i}{0}{n} = N } }$

where \Defined{a}{b} is translated to a := b and \SetWithContraint{The_set}{The_constraint} is translated to { The_set | The_constraint }. The command \SetWithConstraint is defined in my preamble as:

Code (Text):

\newcommand{\SetWithConstraint}[2]{\left\{\,#1\ \left|\ #2\,\right.\right\}}

My main problem is sizing that center bar | between the set to draw elements from and the constraint the elements must satisfy. As I have it set up right now, its size is determined by the height of the expression in the constraint area (e.g., the expression on the rhs). However, this looks very bad on something like the set K' in the image below, where the expression on the lhs is taller:

[PLAIN]http://img199.imageshack.us/img199/445/screenshottc.png [Broken]

The relevant code there is

Code (Text):

Hence, we have now shown that $x$ is a limit point of $K$ if and only if
$x = 0$ or there is an integer $m > 0$ with $x = 1/m$. In other words,
$\LimitPoints{K} = \Union {\Singleton{0}} {\SetWithConstraint{\frac{1}{m}}{\SetMember{m}{\PositiveIntegers}}}$

where \LimitPoints{K} displays K'. Does anyone know how to size this middle bar | in the \SetWithConstraint command I defined so that it will match the maximum of the height of the expression on the lhs and height of the expression on the rhs? Thanks!

Last edited by a moderator: May 4, 2017
2. Apr 25, 2010

### NeoDevin

Change:
Code (Text):
\newcommand{\SetWithConstraint}[2]{\left\{\,#1\ \left|\ #2\,\right.\right\}}
To:
Code (Text):
\newcommand{\SetWithConstraint}[2]{\left\{\,#1\ \middle|\ #2\,\right\}}

3. Apr 25, 2010

### gauss^2

Thanks NeoDevin; that's exactly what I was looking for. I can't believe that's not included in The Not So Short Introduction to LaTeX2e.

4. Apr 27, 2010

### trambolin

Very nice NeoDevin!

also a less beautiful result might be, to relate the bar character with lhs by
Code (Text):
\newcommand{\SetWithConstraint}[2]{\left\{\left.\,#1\ \right|\ #2\,\right\}}
Did not try but should work...

5. Apr 27, 2010

### NeoDevin

That would work to scale it with the lhs, but my understanding was that the OP wanted it to scale with whichever side what taller.