我想创建一个交互式幻灯片,它包含两部分:
- 在左侧,
enumerate
环境中会给出一些注释(每个覆盖会突出显示一个) - 在右侧,一张图片将伴随当前突出显示的文本(例如,该图像中将显示一个箭头)
例如,看看这个第 23 帧文件。
截屏:
做这个的最好方式是什么?
根据要求,这是我正在尝试的(简短版本)......
平均能量损失
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{minipage}{0.2\textwidth}
\begin{enumerate}
\item this is 1
\item this is 2
\end{enumerate}
\end{minipage}
\hfill
\begin{minipage}{0.75\textwidth}
\only<1> {\includegraphics[width=.75\textwidth]{fig4-2}}
\only<2> {\includegraphics[width=.75\textwidth]{fig4-3}}
\end{minipage}
\end{frame}
\end{document}
图片如下:
图4-2
图4-3
更新
正如@GonzaloMedina在左侧部分(解决了我当前的问题)的回复,现在我只需要动态创建图像。这意味着,与其单独创建每个图像然后包含它,不如做一项繁琐而单调的工作。应该有更好的方法来从其前一个图像中重现一个图像。为了完成整个问题,根据他(Gonzalo Medina)的建议,我正在创建这个后续问题问题。
答案1
以下是一种方法:
代码:
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newcounter{tmp}
\newcommand<>\Highlight[1]{%
\stepcounter{tmp}%
\only#2{\begin{tikzpicture}[remember picture,overlay]
\fill[green!60!black,opacity=0.5]
([xshift=-.2em,yshift=2ex]pic cs:start-\thetmp)
rectangle
([xshift=.2em,yshift=-1ex]pic cs:end-\thetmp);
\end{tikzpicture}}%
\tikzmark{start-\thetmp}#1\tikzmark{end-\thetmp}%
}
\begin{document}
\begin{frame}
\begin{minipage}{0.2\textwidth}
\begin{enumerate}
\item \Highlight<+>{this is 1}
\item \Highlight<+>{this is 2}
\item \Highlight<+>{this is 3}
\item \Highlight<+>{this is 4}
\item \Highlight<+>{this is 5}
\end{enumerate}
\end{minipage}
\hfill
\begin{minipage}{0.75\textwidth}
\only<1> {\includegraphics[width=.75\textwidth]{fig4-2}}
\only<2> {\includegraphics[width=.75\textwidth]{fig4-3}}
\only<3> {\includegraphics[width=.75\textwidth,height=0.7cm]{example-image-a}}
\only<4> {\includegraphics[width=.75\textwidth,height=0.7cm]{example-image-b}}
\only<5> {\includegraphics[width=.75\textwidth,height=0.7cm]{example-image-c}}
\end{minipage}
\end{frame}
\end{document}
使用该tikzmark
库,\Highlight
命令会在背景中放置一个彩色矩形。我在这里假设要突出显示的文本不超过一行;否则,将需要修改定义;例如,
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newcounter{tmp}
\newcommand<>\Highlight[1]{%
\stepcounter{tmp}%
\only#2{\begin{tikzpicture}[remember picture,overlay]
\fill[green!60!black,opacity=0.5]
([xshift=-.2em,yshift=2ex]pic cs:start-\thetmp)
rectangle
([xshift=.2em,yshift=-1ex]pic cs:end-\thetmp);
\end{tikzpicture}}%
\tikzmark{start-\thetmp}#1\hfill\tikzmark{end-\thetmp}%
}
\begin{document}
\begin{frame}
\begin{minipage}{0.3\textwidth}
\begin{enumerate}
\item \Highlight<+>{this is 1 and some other text}
\item \Highlight<+>{this is 2}
\item \Highlight<+>{this is 3}
\item \Highlight<+>{this is 4}
\item \Highlight<+>{this is 5}
\end{enumerate}
\end{minipage}
\hfill
\begin{minipage}{0.65\textwidth}
\only<1> {\includegraphics[width=\linewidth]{fig4-2}}
\only<2> {\includegraphics[width=\linewidth]{fig4-3}}
\only<3> {\includegraphics[width=\linewidth,height=0.7cm]{example-image-a}}
\only<4> {\includegraphics[width=\linewidth,height=0.7cm]{example-image-b}}
\only<5> {\includegraphics[width=\linewidth,height=0.7cm]{example-image-c}}
\end{minipage}
\end{frame}
\end{document}
该代码需要运行两次或三次才能稳定下来。