我有以下程式碼,可以正常工作而不會出現錯誤:
\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>
沒有按時看到;在行的開頭新增一個帶有負間距的新行,如我的範例所示。