為了實現動態效果,例如列表逐個顯示,beamer採用了疊層的方式。大概的意思就是實際上生成了多頁pdf,當後一頁把前一頁覆蓋後,就形成了動態效果。例如下面的代碼,

documentclass[compress]{beamer}
usepackage[UTF8,hyperref]{ctex} % 注意這個宏包

usepackage{amssymb,amsmath}

usetheme{AnnArbor}
usecolortheme{dove}

egin{document}
egin{frame}
egin{itemize}
item<1-> First point, shown on all slides.
item<2-> Second point, shown on slide 2 and later.
item<3-> Third point, also shown on slide 2 and later.
item<4-> Fourth point, shown on slide 3.
end{itemize}
end{frame}
end{document}

從代碼上看,整個文件只有一幀,因此只生成一頁pdf,但是實際的效果如下。

可以看出,一共生成了四頁pdf。第一頁只有一項列表,然後主次增加。特別要注意的是頁碼和其它內容並沒有發生變化。這實際上就是beamer實現動態播放,逐次播放的方法。

如果仔細觀察代碼,就會發現在每一個item後面,都會有一個被<>包圍的數字和符號。這裡的含義通過以下的例子說明。

只有數字的情況

documentclass[compress]{beamer}

usetheme{AnnArbor}
usecolortheme{dove}

egin{document}
egin{frame}
egin{itemize}
item<1> First point, shown on all slides.
item<2> Second point, shown on slide 2 and later.

end{itemize}
end{frame}
end{document}

比較上面的item後的數字,我們會看到,數字1控制該列表項顯示在第一頁面上,數字2表示第二項顯示在第二頁上。所以我們也可以通過這些數字任意指定這些選項出現在的頁面。注意這裡的頁面並非pdf的實際上的頁說。只是表明當前幀被分成了若干頁來實現動態效果。

「-」在前

documentclass[compress]{beamer}

usetheme{AnnArbor}
usecolortheme{dove}

egin{document}
egin{frame}
egin{itemize}
item<-1> First point, shown on all slides.
item<-2> Second point, shown on slide 2 and later.
item<-3> Third point, also shown on slide 2 and later.

end{itemize}
end{frame}
end{document}

同樣,通過比較可以發現「-n」的含義是在第n頁(包括第n頁)之前均顯示在頁面上。因此我們可以看出這三項逐次減少。

「-」在後

如果理解了第二種情況,那麼"n-"的含義自然就非常明確了,它的意思是出現在第n頁以及第頁之後均出現,例子如下。

documentclass[compress]{beamer}

usetheme{AnnArbor}
usecolortheme{dove}

egin{document}
egin{frame}
egin{itemize}
item<1-> First point, shown on all slides.
item<2-> Second point, shown on slide 2 and later.

end{itemize}
end{frame}
end{document}

用逗號隔開的多個數字

當然實際上我們也可以指定當前列表可以在哪些頁面顯示,用逗號隔開這些數字即可,例子如下。

documentclass[compress]{beamer}
usepackage[UTF8,hyperref]{ctex}

usetheme{AnnArbor}
usecolortheme{dove}

egin{document}

egin{frame}
egin{itemize}
item<1,3> 該條顯示在第一和第三頁,第二頁不出現。
item<2,4> 這一條顯示在第二頁和第四頁。

end{itemize}
end{frame}
end{document}

在其它環境下使用疊層的方式實現動態效果

除了我們看到在列表環境中可以利用疊層實現動態變化,在其它Latex內置的環境中也可以使用。比方: extbf、 extit、 extsl、 extrm、 extsf、color、alert、structure。此外在beamer內置的環境中,也可以用例如theorem,example等。

如下面的代碼,可以逐次顯示theorem,proof和example。

documentclass[compress]{beamer}
usepackage[UTF8,hyperref]{ctex}

usetheme{AnnArbor}
usecolortheme{dove}

egin{document}

egin{frame}
frametitle{A Theorem on Infinite Sets}
egin{theorem}<1->
There exists an infinite set.
end{theorem}
egin{proof}<3->
This follows from the axiom of infinity.
end{proof}
egin{example}<2->
The set of natural numbers is infinite.
end{example}
end{frame}
end{document}

其它用來控制動態顯示的命令

在beamer內,定義了多個控制內容動態顯示的命令,包括only、alt、visible、uncover、invisible 。這些也可以控制相應的內容以特定的方式顯示。具體請參考手冊

http://www.latexstudio.net/wp-content/uploads/2017/02/BeamerUserGuide_V3.24_zh-cn.pdf?

www.latexstudio.net

中第九章的內容。這篇文章中大部分例子來源於上面的連接。


推薦閱讀:
相关文章