Multi-column spacing of many equation-like environments

Skipping over minor details, this may be accomplished with a tabular:

\usepackage{array}
\newcolumntype{C}{>{$\displaystyle}c<{$}}
\newcommand{\onecol}[1]{\multicolumn{2}{C}{#1}}

The above code should go in the preamble. Then the big thing can be set by

\begin{figure}
\centering
\renewcommand{\arraystretch}{2} % adjust here for interrow spacing
\begin{tabular}{CC}
\onecol{Formula for first line} \\
\onecol{Formula for second line} \\
\onecol{Formula for third line} \\
Left formula & right formula (row 4)\\
Left formula & right formula (row 5)\\
...
\end{tabular}
\caption{Sequent calculus formulation}\label{fig:seqcalc}
\end{figure}

Instead of setting \arraystretch you can define

\newcommand\mystrut{\vrule width 0pt height 24pt depth 24pt}

and insert \mystrut in a cell in each row but the first and the last. Adjust the dimensions to suit.


It actually seems to me that you should use some of the amsmath environments : gather, aligned, and gathered. I am typing from my phone right now so an example is difficult (I will update later) but you probably want something like this :

\begin{gather*}
  \begin{aligned}
   \begin{gathered} Left formula \\ Left formula … \end{gathered} &&
   \begin{gathered} Right formula \\ Right formula … \end{gathered}
  \end{aligned}
  \\
  \begin{gathered}
   Formula \\
   Formula \\
   …
  \end{gathered}
  …
\end{gather*}

When you want a two-column set of formulas (with.each column centered) use an aligned with a gathered for each column. For a single column just use gathered. Put the whole thing in a gather so that the sets are collectively centered and you should get what the example shows.


Here's a minor mock-up using @egreg's tabular and @percusse's \frac suggestion:

enter image description here

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{array}% http://ctan.org/pkg/array
\usepackage{MnSymbol}% http://ctan.org/pkg/mnsymbol
\newcolumntype{C}{>{$\displaystyle}c<{$}}
\newcommand{\onecol}[1]{\multicolumn{2}{C}{#1}}
\newcommand{\seq}[2]{\frac{\strut#1}{\strut#2}}
\begin{document}
\begin{figure}[ht]
  \centering
  \renewcommand{\arraystretch}{2.5} % adjust here for interrow spacing
  \begin{tabular}{C@{\quad}C}
    \onecol{\seq{}{A \vdash A}\ \textit{Identity}} \\
    \onecol{\seq{\Gamma,A,B,\Delta \vdash C}{\Gamma,B,A,\Delta \vdash C}\ \textit{Exchange}} \\
    \onecol{\seq{\Gamma \vdash B \qquad B,\Delta \vdash C}{\Gamma,\Delta \vdash C}\ \textit{Cut}} \\
    \seq{}{\Gamma \vdash \mathbf{t}}\ (\mathbf{t}_\mathcal{R}) &
      \seq{}{\Gamma, \mathbf{f} \vdash A}\ (\mathbf{f}_\mathcal{L}) \\
    \seq{\Gamma \vdash A}{\Gamma,I \vdash A}\ (I_\mathcal{L}) &
      \seq{}{{}\vdash I}\ (I_\mathcal{R}) \\
    \seq{\Gamma,A,B \vdash C}{\Gamma, A \otimes B \vdash C}\ (\otimes_\mathcal{L}) &
      \seq{\Gamma \vdash A \qquad \Delta \vdash B}{\Gamma,\Delta \vdash A \otimes B}\ (\otimes_\mathcal{R}) \\
    \seq{\Gamma \vdash A \qquad \Delta,B \vdash C}{\Gamma,\Delta,A \multimap B \vdash C}\ (\multimap_\mathcal{L}) &
      \seq{\Gamma,A \vdash B}{\Gamma \vdash A \multimap B}\ (\multimap_\mathcal{R}) \\
    \seq{\Gamma,A \vdash C}{\Gamma,A \mathbin{\&} B \vdash C}\ (\&_{\mathcal{L}-1}) &
      \seq{\Gamma,B \vdash C}{\Gamma,A \mathbin{\&} B \vdash C}\ (\&_{\mathcal{L}-2}) \\
    \onecol{\vdots}
  \end{tabular}
  \caption{Sequent Calculus Formulation of \textbf{ILL}}
\end{figure}
\end{document}

Some things to note:

  • You tabular column specification will determine the space between the two-column entries:

    \begin{tabular}{C@{\quad}C}
    

    will insert \quad between the widest elements in either column. To visualize the gap , you could use C@{}|@{\quad}|@{}C:

    enter image description here

  • An \arraystretch of 2.5 seems sufficient to spread out the expressions within the tabular.

  • \frac centres its contents with respect to the math axis, so there's no need to fiddle around with vertical adjustment in placing contents on the right.
  • \frac is also supplied with a \strut in the numerator and denominator for spacing considerations. Alternatively, use \mystrut as defined in @egreg's answer. For convenience, everything is used in a macro \seq that takes, as arguments, the same configuration as \frac.

Tags:

Logic

Spacing