蒂克兹

蒂克兹

我正在使用 制作演示文稿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 westcurrent 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}

它还使用calctikz 库来指定距左上角的偏移量用于定位节点,相对于右上角。这可能是定位徽标的常用用例。X 为右,Y 为上,因此您需要负偏移量。

相关内容