我正在尝试制作一个简单的动画,将表格的行从普通文本更改为粗体文本。我尝试使用 \only 和 \alt 来实现,但最终在行首出现了一个额外的空格。
我的问题是:有没有办法将覆盖应用于整行而不留出多余的空间?
到目前为止我有以下代码:
\begin{tabular}{l l}
\hline
Foo & Bar\\
\hline
\alt<2>{
\textbf{Foo} & \textbf{Bar}\\
}{
Foo & Bar\\
}
Foo & Bar\\
\hline
\end{tabular}
结果如下:
答案1
您在代码中添加了新行,从而引入了一些虚假空间。只需删除新行或%
在末尾使用即可。这里的问题在于您的第七行代码。
% arara: pdflatex
\documentclass{beamer}
\usepackage{booktabs}
\begin{document}
\begin{frame}
\begin{tabular}{ll}
\toprule
Foo & Bar\\
\midrule
\alt<2>{\textbf{Foo} & \textbf{Bar}
}{% % you had an extra space here introduced by the new line of code. Write it on one line or add an % at the end of it.
Foo & Bar}\\
Foo & Bar\\
\bottomrule
\end{tabular}
\end{frame}
\end{document}
除此之外,我建议使用\begin{tabular}{*{2}{p{.585cm}}}
。这样,你的“动画”效果会更好……
% arara: pdflatex
\documentclass{beamer}
\usepackage{booktabs}
\begin{document}
\begin{frame}
\begin{tabular}{*{2}{p{.585cm}}}\toprule
Foo & Bar\\\midrule
\alt<2>{\textbf{Foo} & \textbf{Bar}}{Foo & Bar}\\
Foo & Bar\\\bottomrule
\end{tabular}
\begin{tabular}{*{2}{l}}\toprule
Foo & Bar\\\midrule
\alt<2>{\textbf{Foo} & \textbf{Bar}}{Foo & Bar}\\
Foo & Bar\\\bottomrule
\end{tabular}
\end{frame}
\end{document}