我正在尝试在图像上的任意位置设置一个带有背景图像和一些文本的框架。
我最后一次尝试是这样的:
\documentclass{beamer}
\usepackage{tikz}
\usepackage{graphicx}
\usetikzlibrary{positioning, calc}
\begin{document}
{
\usebackgroundtemplate {
\tikz[remember picture,overlay,shift={(current page.center)}]
\node {\includegraphics[width=1.2\paperwidth]{imgs/background.jpg}};
\node [xshift=2cm, yshift=-4cm] (anchorA) at (0,0) {TEST TEXT};
}
\begin{frame}
\end{frame}
}
\end{document}
答案1
您的代码存在一个问题,如果您在内容周围使用\tikz ...
without {...}
,那么它只会对第一个节点起作用。第二个节点不是它的一部分。您至少可以{...}
在宏的内容周围添加。
但是,如果图像中有多个节点,我通常会发现使用tikzpicture
环境而不是更容易\tikz
。
我还建议使用这个小技巧https://topanswers.xyz/tex?q=1989获取相对于页面的坐标:
\documentclass{beamer}
\usepackage{tikz}
%\usepackage{graphicx}
\usetikzlibrary{positioning, calc}
% trick taken from https://topanswers.xyz/tex?q=1989
\tikzset{
use page relative coordinates/.style={
shift={(current page.south west)},
x={(current page.south east)},
y={(current page.north west)}
}
}
\begin{document}
{
\setbeamertemplate{background canvas}{
\begin{tikzpicture}[remember picture, overlay,use page relative coordinates]
\node at (0.5,0.5) {\includegraphics[width=1.2\paperwidth]{example-image-duck}};
\node at (0.7,0.1) {TEST TEXT};
\end{tikzpicture}
}
\begin{frame}
\end{frame}
}
\end{document}