我想要一个\multicolumn
取决于幻灯片的条件命令,因此我将其放在 alt 或 only 命令中,如下所示:
\documentclass{beamer}
\usepackage[latin1]{inputenc}
\begin{document}
\begin{frame}
\begin{equation*}
\begin{array}{rlll}
a&b&c&d\\
A&\multicolumn{3}{l}{BCD}\\ %this is OK
A&B&C&D\\ %as is this obviously...
A&\only<-+>{\multicolumn{3}{l}{BCD}}\only<.->{B&C&D}\\ %but this
A&\alt<-+>{\multicolumn{3}{l}{BCD}}{B&C&D}\\% and this do not compile
A&\multicolumn{3}{l}{\only<-+>{BCD}\only<+->{\begin{tabular}{lll}B&C&D\\\end{tabular}}} %this line works, but, of course, gives the wrong alignment...
\end{array}
\end{equation*}
\end{frame}
\end{document}
问题似乎是 LaTeX 希望命令\multicolumn
出现在 & 或换行符之后的第一个内容……但是,正如最后一行所示,我不知道如何与其他列对齐……
目前,我正在使用该解决方案,\hspace*
但这是一个有点丑陋的黑客攻击。
关于如何让它正常工作,我有什么想法吗?
答案1
我尝试\expandafter
在周围撒一些神奇的仙尘,看看是否\only
可以在“&”符号之前处理该部分,但结果却出现了错误。
这仅需要一个重复标记:
A\alt<-+>{&\multicolumn{3}{l}{BCD}}{&B&C&D}\
我无法让您的\only<-+>
...\only<.->
构造与 s 配合使用+
。它确实适用于显式数字。但我认为,如果构造\alt
有效,您会认为它是可取的。
完整示例:
\documentclass{beamer}
\usepackage[latin1]{inputenc}
\begin{document}
\begin{frame}
\begin{equation*}
\begin{array}{rlll}
a&b&c&d\\
A&\multicolumn{3}{l}{BCD}\\ %this is OK
A&B&C&D\\ %as is this obviously...
A\only<1>{&\multicolumn{3}{l}{BCD}}\only<2->{&B&C&D} \\% this works now, but not with -+ etc.
A\alt<-+>{&\multicolumn{3}{l}{BCD}}{&B&C&D}\\% this works even with -+
\end{array}
\end{equation*}
\end{frame}
\end{document}
答案2
我不太确定您想要创建什么样的布局,但我想您想要某种出现/扩展的东西。
所以对我来说这是可行的:
\begin{frame}
\begin{tabular}{rlll} % works also in the array/equation construct
a&b&c&d\\
A&\multicolumn{3}{l}{BCD}\\ %this is OK
A&B&C&D\\ %as is this obviously...
\only<2>{A & \multicolumn{3}{l}{BCD}\\} \only<3>{A&B&C&D\\} % slide 2 appearing slide 3 expanding
\only<4>{A & \multicolumn{3}{l}{ BCD}\\} \only<5>{A&B&C&D\\} % and this do not compile
%A& \multicolumn{3}{l}{\only<-+>{BCD} \only<+->{\noindent\begin{tabular}{lll}B&C&D\\\end{tabular}}} %
% not sure what to do with that line so im dropping it
\end{tabular}
\end{frame}
所以我不确定这是否符合你的期望,但它确实有效。(这不是非常有效的代码,因为你必须每次都输入 A 列。)