我想在overprint
环境(例如,包含列表)旁边放置一些文本(实际上是一个图形)。为此,我已将环境的可选参数设置为使用比整行(默认值)更少的空间。但是,显然环境末尾有一个固定的换行符或类似的东西(?)。有没有简单的解决方法,还是我必须求助于列或表格?编辑:为什么\textwidth
在环境前添加 -wide 规则可以“解决”问题!?此外,如何减少环境之间的空间overprint
(无需手动干预\vspace{-somelength}
)?编辑:当涉及列表时,问题会变得更加糟糕:使用\onslide
带括号会完全隐藏列表。
\begin{filecontents*}{file.c}
int foo = 42;
\end{filecontents*}
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\begin{document}
\begin{frame}{}
% \rule{\textwidth}{1pt}
\begin{overprint}[0.5\textwidth]
\onslide<1|handout:0>\lstinputlisting[frame=tlrb]{file.c}%
% \onslide<2|handout:0>{\lstinputlisting[frame=tlrb]{file.c}}% completely lost *and* increasing vspace *shruggle*
\onslide<3|handout:0>{}
\end{overprint}\includegraphics[width=0.25\linewidth,keepaspectratio]{example-image}\\
\rule{\textwidth}{1pt}
\end{frame}
\end{document}
该图像应与所有 3 张幻灯片上的 1 和 2 位于同一行。
答案1
问题的根源在于缺少{}
表示内容的内容\onslide
。尤其是最后一个什么都没有的,需要一个空的{}
。
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{frame}{}
% \rule{\textwidth}{1pt}
\begin{overprint}[0.5\textwidth]
\onslide<1|handout:0>{1}%
\onslide<2|handout:0>{2}%
\onslide<3|handout:0>{}%
\end{overprint}bla
\rule{\textwidth}{1pt}
\end{frame}
\end{document}
我会选择简单的方法并使用列:
\documentclass{beamer}
\begin{document}
\begin{frame}{}
\begin{columns}[onlytextwidth]
\begin{column}{.45\textwidth}
\only<1|handout:0>{1}%
\only<2|handout:0>{2}%
\only<3|handout:0>{3}%
\end{column}
\begin{column}{.45\textwidth}
\includegraphics[width=\textwidth]{example-image}
\end{column}
\end{columns}
\rule{\textwidth}{1pt}
\end{frame}
\end{document}