我正在使用 制作演示文稿beamer
,我希望能够以我想要的方式在框架中定位某个图像。我不确定该怎么做。有没有办法在框架中指定坐标,然后在那里设置图像?
有没有更好的方法将图像放置在类的各个位置beamer
?
答案1
当我使用这样的应用程序时,我要么使用 TikZ(我最喜欢的),要么在了解 TikZ 之前,我使用 textpos 包。
我将简要讨论这两种解决方案。
蒂克兹
我建议使用\node
带有overlay
选项的 TikZ。
注意:这里有两种使用 TikZ 的方法:一种是相对定位(下面讨论的方法),一种是绝对定位(有关此类任务,请参阅 TikZ 手册)。
这overlay
意味着它没有边界框,即它不会影响现有布局。我编写了一个快捷宏来简化此类节点的生成。要使用它,请将以下代码放入您的 beamer 文档中:
\tikzset{
every overlay node/.style={
draw=black,fill=white,rounded corners,anchor=north west,
},
}
% Usage:
% \tikzoverlay at (-1cm,-5cm) {content};
% or
% \tikzoverlay[text width=5cm] at (-1cm,-5cm) {content};
\def\tikzoverlay{%
\tikz[baseline,overlay]\node[every overlay node]
}%
因此,基本思想是\node[overlay]
与通常的文本(选项)对齐baseline
。您需要使用定位at (<x>,<y>)
来实际放置它。放置将相对于嵌入文本。请记住,您可以使用这个东西隐藏文本(every overlay node
正如您猜对的那样,这是样式的目的)。请注意,文档中后面的文本总是排版在前面的文本段落之后。换句话说:确保命令\tikzoverlay
位于您想要隐藏的内容之后。
举个例子
Here is the text which will probably be hidden by the overlay.
\tikzoverlay[text width=6cm] at (9.3cm,5cm) {
\begin{itemize}
\item \emph{Derive subclass} from \texttt{GetOptWrapper}
\item one \emph{variable definition} per option
\item \emph{Default Values}
\end{itemize}
};
您可以安全地将其与 beamer 的\only<2>
方法结合起来。
文本位置
第二种承诺的方法使用了textpos
包。由于我认为这种方法比上面的方法更弱且更难配置,所以我只是从我的个人笔记中复制粘贴:
根据我以前的笔记,一般的用法是:
\usepackage{textpos}
\setlength{\TPHorizModule}{1cm} % horizontal unit
\setlength{\TPVertModule}{1cm} % vertical unit
...
\begin{textblock}{WIDTH}(OFFSET_X,OFFSET_Y)
CONTENT
\end{textblock}
...
上面的包配置示例:
\definecolor{boxcol}{gray}{0.89}
\begin{textblock}{3}(8,-3)
\fcolorbox{black}{boxcol}{%
\begin{minipage}{\textwidth}
\setlength{\parindent}{0pt}%
\setlength{\parskip}{0.1cm}%
A notice that was put in the page using coordinates
\end{minipage}
}%
\end{textblock}%
答案2
解决方案无需定义新变量或调用额外的包(以外蒂克兹):
例如,要将图形放在右上角,您可以使用:
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=-2cm,yshift=-2cm] at (current page.north east) {\includegraphics{photo.png}};
\end{tikzpicture}
关键在于current page.north east
(设置锚点)和xshift={...},yshift={...}
(将节点从该锚点移开)的组合。请注意,您可以使用任何其他锚点,例如、、current page.north west
等。current page.south west
current page.center
有关详细信息,请参阅For more information, see第 17.13.2 节的蒂克兹手册(只有一页长)。
答案3
以下代码片段用于remember picture
定位。
\usetikzlibrary{calc}
\begin{frame}
\tikz[overlay,remember picture]
\node[anchor=north east] at ($(current page.north east)+(0,-1)$) {
Top-right float content.
};
Regular content.
\end{frame}
它还使用calc
tikz 库来指定距左上角的偏移量用于定位节点,相对于右上角。这可能是定位徽标的常用用例。X 为右,Y 为上,因此您需要负偏移量。