在数组上方的特定位置重叠文本或图片

在数组上方的特定位置重叠文本或图片

我有一个包含一段代码的框架:

\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可能):

  1. 首先,演示仅显示代码
  2. 在下一张幻灯片中,将添加一段文本(或图片)并指向int v例如a declaration
  3. 在下一张幻灯片中,将添加一段文本(或图片)并指向v = 1例如an assignment
  4. 在下一张幻灯片中,将添加一段文本(或图片)并指向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}

相关内容