# Beamer Column Order

I am using beamer and I have created two columns using

\begin{columns}
\column{.5\textwidth}
Column Number 1
\column{.5\textwidth}
Column Number 2
\end{columns}


And I'd like to control the order of these columns when using the \pause command. When using the \pause before \column{.5\textwidth} command, it would cause the column on the left to be appeared and then after clicking or so, the second column will appear. How can I make beamer first draw the right column and then draw the left column?

-
Does \onslide<> help you? –  Hendrik Vogt Jan 21 '11 at 11:04
Well, what you really want to do is making beamer column RTL so that first column appears on RHS and the second column on the left of the previous one while in beamer columns are typeset LTR, first column is on LHS and next is to the right of previous one. Therefore you would need to hack column in beamer so that they are typeset RTL not LTR. –  IRAN Jan 21 '11 at 11:33

As Hendrik said in the comments, \onslide works fine:

\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{columns}
\onslide<2->{
\column{0.4\textwidth}
Foo
}
\onslide<1->{
\column{0.4\textwidth}
Bar and so on
}
\end{columns}
\end{frame}
\end{document}


The right column appears first as desired.

The trick is that the columns are typeset left to right, but with nifty use of overlays, the right hand column appears first...

-

Suppose you have a recent version of bidi. This will make beamer columns RTL:

\makeatletter
\renewenvironment<>{columns}[1][]{%
\begin{actionenv}#2%
\def\beamer@colentrycode{%
\hboxR to\textwidth\bgroup%
\leavevmode%
\hskip-\beamer@leftmargin%
\nobreak%
\beamer@tempdim=\textwidth%
\hbox to\beamer@tempdim\bgroup%
\hbox{}\hfill\ignorespaces}%
\def\beamer@colexitcode{\egroup%
\nobreak%
\hskip-\beamer@rightmargin\egroup}%
\ifbeamer@centered\setkeys{beamer@col}{c}\else\setkeys{beamer@col}{t}\fi%
\setkeys{beamer@col}{#1}%
\par%
\beamer@colentrycode%
\def\beamer@colclose{}\ignorespaces}%
{\beamer@colclose\def\beamer@colclose{}\beamer@colexitcode\end{actionenv}}%
\renewcommand<>\beamer@columncom[2][\beamer@colmode]{%
\beamer@colclose%
\def\beamer@colclose{\end{minipage}\hfill\end{actionenv}\ignorespaces}%
\begin{actionenv}#3%
\setkeys{beamer@col}{#1}%
\begin{minipage}[\beamer@colalign]{#2}%