Beamer 列顺序

Beamer 列顺序

我正在使用 beamer,并且使用创建了两列

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

我想在使用命令时控制这些列的顺序\pause。使用\pausebefore\column{.5\textwidth}命令时,它会导致出现左侧的列,然后单击后,第二列就会出现。我怎样才能让 beamer 先绘制右列,然后绘制左列?

答案1

正如亨德里克 (Hendrik) 在评论中所说,\onslide效果很好:

\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}

右列将按照需要首先出现。

诀窍是将列从左到右排版,但是通过巧妙地使用覆盖,右侧列会首先出现...

答案2

假设您有最新版本的 bidi。这将使 beamer 列变为 RTL:

\makeatletter
\renewenvironment<>{columns}[1][]{%
  \begin{actionenv}#2%
  \def\beamer@colentrycode{%
    \hboxR to\textwidth\bgroup%
    \leavevmode%
    \hskip-\beamer@leftmargin%
    \nobreak%
    \beamer@tempdim=\textwidth%
    \advance\beamer@tempdim by\beamer@leftmargin%
    \advance\beamer@tempdim by\beamer@rightmargin%
    \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}%
    \leavevmode\raggedleft\beamer@colheadskip\ignorespaces}
\makeatother

相关内容