![在数组上方的特定位置重叠文本或图片](https://linux22.com/image/317682/%E5%9C%A8%E6%95%B0%E7%BB%84%E4%B8%8A%E6%96%B9%E7%9A%84%E7%89%B9%E5%AE%9A%E4%BD%8D%E7%BD%AE%E9%87%8D%E5%8F%A0%E6%96%87%E6%9C%AC%E6%88%96%E5%9B%BE%E7%89%87.png)
我有一个包含一段代码的框架:
\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}