求教一个beamer里\ipv6only on,\onslide的动态效果

查看: 4442|回复: 7
求教一个beamer里\only, \onslide的动态效果
想在同一个位置动态显示两个block,用下面方法行不通,结果按照顺序排列了,有没有办法让它在同一地方覆盖住?
我尝试用\only代替\onslide结果出现编译错误,请问大家实现这种效果采用的什么办法?
{\onslide&2&
\begin{exampleblock}{block1}
\begin{itemize}
\item item1
\item item2
\end{itemize}
\end{exampleblock}
}
{\onslide&3&
\begin{exampleblock}{block2}
\begin{itemize}
\item item3
\item item4
\end{itemize}
\end{exampleblock}
}
复制代码
\documentclass{beamer}
\begin{document}
\begin{frame}
& &&&\only&1&{\begin{itemize}
& &&&\item item1
& &&&\item item2
& &&&\end{itemize}}
& &&&\only&2&{\begin{itemize}
& &&&\item item3
& &&&\item item4
& &&&\end{itemize}}
\end{frame}
\end{document}
这种效果?
发现问题在于verbatim环境
我的内容里面含有\verb=test=,所以就出现编译错误
请问如果含有verbatim字样,如何实现这种动态效果呢?
\begin{frame}[fragile]
\only&2&{
\begin{exampleblock}{block1}
\begin{itemize}
\item \verb=item1=
\item item2
\end{itemize}
\end{exampleblock}
}
\only&3&{
\begin{exampleblock}{block2}
\begin{itemize}
\item \verb=item3=
\item item4
\end{itemize}
\end{exampleblock}
}
\end{frame}
复制代码原帖由 孤高天使 于
10:22 发表
\documentclass{beamer}
\begin{document}
\begin{frame}
& &&&\only{\begin{itemize}
& &&&\item item1
& &&&\item item2
& &&&\end{itemize}}
& &&&\only{\begin{itemize}
& &&&\item item3
\documentclass{beamer}
\usepackage{listings}
\begin{document}
\defverb\myverb|\begin{document} abc \end{document}|
\defverbatim\code{
& &&&\begin{lstlisting}
& && && &\begin{document}
& && && && & abc
& && && &\end{document}
& &&&\end{lstlisting}
\defverbatim\codee{
& &&&\begin{lstlisting}
& && && &\begin{document}
& && && && & \begin{frame}
& && && && && &&&XXX
& && && && & \end{frame}
& && && &\end{document}
& &&&\end{lstlisting}
\begin{frame}[fragile]
& &&&\only&1&{
& &&&\begin{itemize}
& && && &\item item1
& && && &\item item2
& &&&\end{itemize}
& &&&\only&2&{
& &&&\begin{itemize}
& && && &\item item3
& && && &\item \myverb
& &&&\end{itemize}
& &&&\only&3&\code
& &&&\only&4&\codee
\end{frame}
\end{document}
参考: Beamer v3.0 Guide by Ki-Joo Kim
inline的verb,就先在frame外
\defverb\myverb|\begin{document} abc \end{document}|
复制代码
然后在frame里用\myverb
block的verbatim,先在frame外
\defverbatim\codee{
& &&&\begin{lstlisting}
& && && &\begin{document}
& && && && & \begin{frame}
& && && && && &&&XXX
& && && && & \end{frame}
& && && &\end{document}
& &&&\end{lstlisting}
}
复制代码
\defverbatim\codee{
& &&&\begin{lstlisting}& && && && & &-- listings包的lstlisting环境
& && && && && & 这里是代码
& &&&\end{lstlisting}
}
复制代码
然后在frame内调用。
多谢多谢。
那就是说inline的verb就要预先定义好,有几个就定义几个?不能用参数吗?
\defverb\myverb{1}| $1 | 这样?
另外我之前很少用lstlisting的环境,觉得不太好动态显示代码,所以都直接用的 semiverbatim
如果用lstlisting环境,能支持 \uncover&& 之类的效果,而不通过预先定义好code block
直接在frame里边写,边设置,可以吗?
多谢指教!
原帖由 孤高天使 于
20:04 发表
inline的verb,就先在frame外
\defverb\myverb|\begin{document} abc \end{document}|
然后在frame里用\myverb
block的verbatim,先在frame外
\defverbatim\codee{
& &&&\begin{lstlisting}
回复 #6 michaelyung 的帖子
inline的话,还可以用\path实现:
& & & & \only&1&{
& & & & \begin{itemize}
& & & & & & & & \item item1
& & & & & & & & \item item2
& & & & & & & & \item \path{\begin{document}aaa\end{document}}
& & & & \end{itemize}
& & & & }
复制代码
代码之类的,都不能当参数传递。直接地定义一个命令或环境,参数是代码的话就会出错。
block的代码块,有切换效果的,原位输入不知道怎么做了。用lstlisting也是看了那份文档我才知道的。我现在想到两个办法:
1 重新设计frame,把代码块用切换frame来实现一些效果,而不是overlays。
2 用普通方式输入代码块,当然,它不能加overlays。但我们可以用白色图形之类的东西挡住它,然后在这个白色图形上实现overlays。
非常感谢,学习了。
原帖由 孤高天使 于
10:39 发表
inline的话,还可以用\path实现:
& & & & \only{
& & & & \begin{itemize}
& & & & & & & & \item item1
& & & & & & & & \item item2
& & & & & & & & \item \path{\begin{document}aaa\end{document}}
& & & & \end{itemize}
代码之类的,都不能当参数传递。 ...
Powered by

我要回帖

更多关于 onlyactiveonindex 的文章

 

随机推荐