我有一个包含一段代码的框架:
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}
\begin{document}
\begin{frame}{title}
\begin{array}{l}
int v \\
v = 1 \\
v = v + 1 \\
...
\end{array}
\end{frame}
\end{document}
我想实现以下的事情(overlay
可能):
- 首先,演示仅显示代码
- 在下一张幻灯片中,将添加一段文本(或图片)并指向
int v
例如a declaration
- 在下一张幻灯片中,将添加一段文本(或图片)并指向
v = 1
例如an assignment
- 在下一张幻灯片中,将添加一段文本(或图片)并指向
v = v + 1
例如an incrementation
希望可以指定和调整文本块(或图片)的位置。
这种事情在 Microsoft Powerpoint 等中很容易实现,但我不知道在 LaTex 中是否容易实现。
答案1
这是一个可能的解决方案。我无法让“鼠标单击进度”起作用,但如果您单击右箭头,它就会起作用。
我将尝试稍后查看并查看是否可以将其包括在内。
代码
\documentclass[step]{beamer}
\usetheme{Boadilla}
\usepackage{lmodern}
\usepackage[absolute,overlay]{textpos}
%\usepackage[frenchb]{babel}
\usepackage{tikz}
\usetikzlibrary{tikzmark, arrows.meta}
\newcommand{\mymark}[1]{%
\tikz[remember picture,overlay]{\node[anchor=south, minimum size=2mm, inner sep=0, outer sep=0] (#1) {};}%
}
\begin{document}
\begin{frame}
\begin{onlyenv}<1->%
\begin{textblock}{5}(1,5)
int v\mymark{a} \\%
v = 1\mymark{b} \\%
v = v + 1\mymark{c} \\%
... \\%
\end{textblock}
\end{onlyenv}
\begin{onlyenv}<2->
\begin{tikzpicture}[remember picture,overlay]
\draw[<-, {Latex}-] (a) --++ (3,2) node[anchor=west] {a declaration};
\end{tikzpicture}
\end{onlyenv}
\begin{onlyenv}<3->
\begin{tikzpicture}[remember picture,overlay]
\draw[<-, {Latex}-] (a) --++ (3,2) node[anchor=west] {a declaration};
\draw[<-, {Latex}-] (b) --++ (3,0) node[anchor=west] {an assignment};
\end{tikzpicture}
\end{onlyenv}
\begin{onlyenv}<4->
\begin{tikzpicture}[remember picture,overlay]
\draw[<-, {Latex}-] (a) --++ (3,2) node[anchor=west] {a declaration};
\draw[<-, {Latex}-] (b) --++ (3,0) node[anchor=west] {an assignment};
\draw[<-, {Latex}-] (c) --++ (4,-2) node[anchor=west] {an incrementation};
\end{tikzpicture}
\end{onlyenv}
\end{frame}
\end{document}