![beamer actionenv 和模式](https://linux22.com/image/319062/beamer%20actionenv%20%E5%92%8C%E6%A8%A1%E5%BC%8F.png)
在给定模式下,是否可以完全丢弃投影机环境?
在下面的 MWE 中,我希望第二个actionenv
tikzpicture
环境与另一列的项目居中,但actionenv
即使它未在 beamer 模式下显示,也会从第一个环境添加一些垂直空间。我通过使用包装来解决这个问题trikzpicture
(\only<article>
参见第二帧),但我不明白为什么需要这样做。
当然,我可以删除所有actionenv
环境并只使用\only<article>
宏,但由于某些原因(该文件是由org-mode
导出创建的),我不能这样做。
\documentclass{beamer}
\usepackage{standalone,tikz}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{.45\columnwidth}
\begin{actionenv}<article>
\begin{tikzpicture}
\draw [very thick, red, ->] (0,0) -- (4,4);
\end{tikzpicture}
\end{actionenv}
\begin{actionenv}<presentation>
\begin{tikzpicture}
\draw [very thick, red, ->] (0,0) -- (4,4);
\end{tikzpicture}
\end{actionenv}
\end{column}
\begin{column}{.45\columnwidth}
\begin{itemize}
\item 1st item
\item 2nd item
\item 3rd item
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\begin{columns}
\begin{column}{.45\columnwidth}
\begin{actionenv}<article>
\only<article>{
\begin{tikzpicture}
\draw [very thick, red, ->] (0,0) -- (4,4);
\end{tikzpicture}
}
\end{actionenv}
\begin{actionenv}<presentation>
\only<presentation>{
\begin{tikzpicture}
\draw [very thick, red, ->] (0,0) -- (4,4);
\end{tikzpicture}
}
\end{actionenv}
\end{column}
\begin{column}{.45\columnwidth}
\begin{itemize}
\item 1st item
\item 2nd item
\item 3rd item
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\end{document}
答案1
这对于环境来说似乎是一个很好的例子onlyenv
:
\documentclass{beamer}
\usepackage{standalone,tikz}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{.45\columnwidth}
\begin{onlyenv}<article>
\begin{tikzpicture}
\draw [very thick, red, ->] (0,0) -- (4,4);
\end{tikzpicture}
\end{onlyenv}
\begin{onlyenv}<presentation>
\begin{tikzpicture}
\draw [very thick, red, ->] (0,0) -- (4,4);
\end{tikzpicture}
\end{onlyenv}
\end{column}
\begin{column}{.45\columnwidth}
\begin{itemize}
\item 1st item
\item 2nd item
\item 3rd item
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\end{document}