マルチカラムはonslideではうまく機能しません

マルチカラムはonslideではうまく機能しません

エラーなしで動作する次のコードがあります:

\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}

\begin{document}
\begin{frame}
\begin{tabular}{ll|ll}
  \onslide<1->{a & b & c & d}
  \onslide<2->{
    \\ \hline
    \multicolumn{2}{l|}{Line 1}
    \\
    \multicolumn{2}{l|}{Line 2 left}
    & Line 2 right
  }
  \\ \hline
\end{tabular}
\end{frame}
\end{document}

Line 2 rightしかし、に変更したら\multicolumn{2}{l}{Line 2 right}、コンパイルされなくなりました。 次に を削除したらonslide<2->、再度コンパイルされましたが、オーバーレイ効果はありませんでした。 3 番目はmulticoulmnではうまく動作しないようですonslideが、解決方法をご存知の方はいませんか?

...
\onslide<2->{
  \\ \hline
  \multicolumn{2}{l|}{Line 1}
  \\
  \multicolumn{2}{l|}{Line 2 left}
  & \multicolumn{2}{l}{Line 2 right} \\\hline
}
\onslide<3->{
  \multicolumn{2}{l|}{Line 1}
  \\ 
  \multicolumn{2}{l|}{Line 2 left}
  & \multicolumn{2}{l}{Line 2 right} \\\hline
}

...

答え1

内の行の末尾に\\(および)を追加します。\hline\onslide

\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}

\begin{document}
\begin{frame}
\begin{tabular}{ll|ll}
  \onslide<1->{a & b & c & d}
  \onslide<2->{
    \\ \hline
    \multicolumn{2}{l|}{Line 1}
    \\
    \multicolumn{2}{l|}{Line 2 left}
    & \multicolumn{2}{l}{Line 2 right} \\\hline
  }
\end{tabular}
\end{frame}

\end{document}

ただし、セクション23.5 行単位でテーブルを展開するマニュアルのbeamer抜粋

表を 1 行ずつ表示したい場合、表に縦線と横線があると、さまざまな問題が発生します。その理由は、左端の最初の縦線は、その行が読み取られる前 (つまり、特に\onslideコマンドが読み取られる前) に描画されるためです。ただし、行の末尾に\pauseまたは を 配置し\uncoverても役に立ちません。これは、最後に表示した行の下の水平線が抑制されるためです。

(次に、テーブルを明らかにするための可能な方法を示す例を示します。)

元の質問に対する新しい編集:

\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}

\begin{document}
\begin{frame}
\begin{tabular}{ll|ll}
  \onslide<1->{a & b & c & d}
\onslide<2->{
  \\ \hline
  \multicolumn{2}{l|}{Line 1}
  \\
  \multicolumn{2}{l|}{Line 2 left}
  & \multicolumn{2}{l}{Line 2 right} \\\hline
}
\onslide<3->{\\[-\normalbaselineskip]
  \multicolumn{2}{l|}{Line 1}
   \\ 
  \multicolumn{2}{l|}{Line 2 left}
  & \multicolumn{2}{l}{Line 2 right} \\\hline
}
\end{tabular}
\end{frame}

\end{document}

2 行目の終わりは 内にあるため\onslide<2>\onslide<3>時間どおりには認識されません。例に示すように、行の先頭に負の間隔を持つ新しい行を追加します。

関連情報