我正在尝试在 Beamer 中完成精准(绝对)定位,以便进行演示。我决定避免,tickz
因为我的时间不够。所以我找到了一个这里的帖子不错提供了一个简单的解决方案\put
。但是,我试图扩展该解决方案以在我的图下添加一些文本。例如:
原始示例是(从帖子中复制):
\PassOptionsToPackage{demo}{graphicx}%% Only for demo here
\documentclass{beamer}
\def\Put(#1,#2)#3{\leavevmode\makebox(0,0){\put(#1,#2){#3}}}
\begin{document}
\begin{frame}
\includegraphics[height=3cm]{img1}\pause
\Put(10,50){\color{blue}\includegraphics[height=3cm]{img2}}\pause
\Put(100,30){\color{red}\includegraphics[height=3cm]{img3}}
\end{frame}
\end{document}
例如,我想要在每个矩形的底部放置一个包含“黑色”、“蓝色”和“红色”的文本。
我想简单定义一下:
\def\Putt(#1,#2){\put(#1,#2)\minipage{#}}
但它不起作用。它给了我一些奇怪的错误:
! You can't use `\raise' in internal vertical mode.
我说奇怪,因为原则上,我忽略了\离开模式在我的新指挥中。请提供建议。
答案1
minipage
是一个环境,因此不能\minipage{...}
单独使用。相反,您可以将figure
环境包装在 中varwidth
,然后用作varwidth
的第三个参数\Put
。
一个例子:
\PassOptionsToPackage{demo}{graphicx}%% Only for demo here
\documentclass{beamer}
\usepackage{varwidth}
\def\Put(#1,#2)#3{\leavevmode\makebox(0,0){\put(#1,#2){#3}}}
\begin{document}
\begin{frame}
\includegraphics[height=3cm]{example-image-a}\pause
\Put(10,50){%
\begin{varwidth}{\linewidth}
\begin{figure}
\centering
\color{blue}\includegraphics[height=3cm]{example-image-b}
\caption{Title}
\end{figure}
\end{varwidth}%
}\pause
\Put(100,30){\color{red}\includegraphics[height=3cm]{example-image-c}}
\end{frame}
\end{document}