# Multi-column delimiter in align

I want to set the following, but with all the <'s aligned horizontally

Source of this failed attempt:

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

\newcommand{\ra}{\rightarrow}
\newcommand{\T}[1]{\mathbb{T}_{#1}}
\newcommand{\lbe}{<_{\beta\eta}}

\begin{align*}
0 & \lbe 0 \ra 0                && \in \T0 \\
&\left.
\begin{aligned}
& \lbe 0^2 \ra 0 \\
& \lbe \cdots \\
& \lbe 0^k \ra 0 \\
& \lbe \cdots
\end{aligned}
\right\}                        && \in \T1 \\
& \lbe 1 \ra 0 \ra 0            && \in \T2 \\
& \lbe 1 \ra 1 \ra 0 \ra 0      && \in \T3 \\
& \lbe 3 \ra 0 \ra 0            && \in \T4 \\
& \lbe 1_2 \ra 0 \ra 0          && \in \T5
\end{align*}

\end{document}

-
I added your image inline. since you have 10 rep you should be able to edit your question with no problems due to the image... –  Yossi Farjoun Dec 25 '10 at 15:33
add comment

## 2 Answers

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

\newcommand{\ra}{\rightarrow}
\newcommand{\T}[1]{\mathbb{T}_{#1}}
\newcommand{\lbe}{<_{\beta\eta}}

\begin{align*}
0 & \lbe 0 \ra 0                && \in \T0 \\
&\left.
\renewcommand\arraystretch{1.3}
\begin{array}{@{}l}
\lbe\displaystyle 0^2 \ra 0 \\
\lbe\displaystyle \cdots \\
\lbe\displaystyle 0^k \ra 0 \\
\lbe\displaystyle \cdots
\end{array}
\right\}                        && \in \T1 \\
& \lbe 1 \ra 0 \ra 0            && \in \T2 \\
& \lbe 1 \ra 1 \ra 0 \ra 0      && \in \T3 \\
& \lbe 3 \ra 0 \ra 0            && \in \T4 \\
& \lbe 1_2 \ra 0 \ra 0          && \in \T5
\end{align*}

\end{document}


This is basically what the cases environment does except that it has two columns, the brace is on the other side and the \arraystretch is set to 1.2.

Edit:
This is basically how aligned works except that I removed the \null\,.

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}

\makeatletter
\newenvironment{alignedleft}[1][c]{%
\RIfM@\else
\nonmatherr@{\begin{\@currenvir}}%
\fi
\if #1t\vtop \else \if#1b \vbox \else \vcenter \fi \fi \bgroup
\def\math@cr@@@{\cr}%
\Let@ \chardef\dspbrk@context\@ne
\default@tag
\spread@equation % no-op if already called
\ialign\bgroup
&\strut@
$\m@th\displaystyle{##}$%
\hfil
\tabskip\minalignsep
\crcr
}{%
\crcr
\egroup
\egroup
}
\makeatother

\begin{document}

\newcommand{\ra}{\rightarrow}
\newcommand{\T}[1]{\mathbb{T}_{#1}}
\newcommand{\lbe}{<_{\beta\eta}}

\begin{align*}
0 & \lbe 0 \ra 0                && \in \T0 \\
&
\def\arraystretch{1.206}
\left.
\begin{alignedleft}
\lbe 0^2 \ra 0 \\
\lbe \cdots \\
\lbe 0^k \ra 0 \\
\lbe \cdots
\end{alignedleft}
\right\}                        && \in \T1 \\
& \lbe 1 \ra 0 \ra 0            && \in \T2 \\
& \lbe 1 \ra 1 \ra 0 \ra 0      && \in \T3 \\
& \lbe 3 \ra 0 \ra 0            && \in \T4 \\
& \lbe 1_2 \ra 0 \ra 0          && \in \T5
\end{align*}

\end{document}

-
Thanks. This method looks promising. There are two imperfections: the spacing within the array is larger than outside of the array. When setting <code>\arraystretch</code> to 1.2 instead of 1.3, that problem disappears. The second problem is that the spacing between <code>0 \ra 0</code> and <code>0^2 \ra 0</code> and <code>\cdots</code> and <code>1 \ra 0 \ra 0</code> is bigger than it should. –  bas Dec 25 '10 at 19:45
@bas: Actually, I think what you want is 1.2069 for a 12 pt document and 2.5 for a 10 pt document. (align uses \openup\jot with \jot set to 3 pt so what you really want is 1+3/\baselineskip where \baselineskip is 12 pt for a 10 pt document and 14.5 pt for a 12 pt document [I didn't look up what 11 pt was].) The extra space above and below the array comes from the brace. –  TH. Dec 25 '10 at 20:46
@TH. Great! Two questions: (1) Can I define the \arraystretch' by using the used constants? (2) Can I get rid of the extra space above and below the array' caused by the brace? –  bas Dec 25 '10 at 21:02
@bas: I provided another way of doing it that is very similar to aligned. Hopefully this does what you want. –  TH. Dec 25 '10 at 21:25
@TH. That's nice! The only remaining glitch is the additional vertical space. Is there any way to get rid of it? –  bas Dec 25 '10 at 23:53
show 2 more comments

The \hline are only for some demonstration here. Should be deleted and for the last line of the alignenvironment also the \\

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}

\newcommand\ra{\rightarrow}
\newcommand\T[1]{\mathbb{T}_{#1}}
\newcommand\lbe{<_{\beta\eta}}
\begin{document}

\twocolumn
\begin{align*}
0 & \lbe 0 \ra 0                && \in \T0 \\\hline
& \lbe 0^2 \ra 0 \\\hline
& \lbe \cdots \\\hline
& \lbe 0^k \ra 0 && \in \T1 \\\hline
& \lbe \cdots\\\hline
& \lbe 1 \ra 0 \ra 0            && \in \T2 \\\hline
& \lbe 1 \ra 1 \ra 0 \ra 0      && \in \T3 \\\hline
& \lbe 3 \ra 0 \ra 0            && \in \T4 \\\hline
& \lbe 1_2 \ra 0 \ra 0          && \in \T5\\\hline
\end{align*}

\newpage

\begin{align*}
0 & \lbe 0 \ra 0                && \in \T0 \\\hline
& \lbe 0^2 \ra 0 \\\hline
& \lbe \cdots \\\hline
& \lbe 0^k \ra 0 \quad
\makebox(0,0){\put(0,60){$\left.\rule{0pt}{1.4cm}\right\}$}}
&& \mathrel{\makebox(0,0){\put(0,30){$\in \T1$}}} \\\hline
& \lbe \cdots\\\hline
& \lbe 1 \ra 0 \ra 0            && \in \T2 \\\hline
& \lbe 1 \ra 1 \ra 0 \ra 0      && \in \T3 \\\hline
& \lbe 3 \ra 0 \ra 0            && \in \T4 \\\hline
& \lbe 1_2 \ra 0 \ra 0          && \in \T5\\\hline
\end{align*}

\end{document}
`
-
Thanks. This almost perfectly sets the formulae. There is one glitch: the space beneath the first \cdots is too large. I also have to ask whether your method can be made more general – viz. not having to manually set the 1.4cm, 60 and 30. –  bas Dec 25 '10 at 19:47
everything can be done automatically, but it is not worth to investigate here, when you need it oly for this one specific case –  Herbert Dec 25 '10 at 20:07
Two things: (1) I intended using these multicolumn delimiters in more places. Besides that, it would be educational (for me) to see (pointers to) the general solution. (2) Have you looked at the extra vertical space at the first '\cdots'? –  bas Dec 25 '10 at 21:07
I see no extra vertical space, see example –  Herbert Dec 25 '10 at 21:15
I don't see it in the updated answer anymore. However, it remains in the first answer. (Version 1) See this image: img405.imageshack.us/img405/5987/screenshot20101226at244.png –  bas Dec 25 '10 at 23:49
show 2 more comments