多列不能很好地與 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->,它再次編譯,但沒有覆蓋效果。所以看來第三個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內容;一點摘錄

當您希望逐行揭開表格時,如果表格中存在垂直線和水平線,您將遇到各種問題。原因是左端的第一條垂直線是在讀取該線之前繪製的(因此,特別是在\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}

第二行的末端在裡面\onslide<2>,所以\onslide<3>沒有按時看到;在行的開頭新增一個帶有負間距的新行,如我的範例所示。

相關內容