我是 Tikz 新手。我想使用 Tikz 覆盖将 png 或 pdf 图像放置在另一个 pdf 图形上。不幸的是,我没有这两个图形的 Tikz 代码。
我已经看过这个答案了如何将 PDF 图形放在另一个图形之上使用Tex Commands
,在 Tikz 上绘制图像和最接近的例子图像中包含另一幅图像。
我的问题是使用 Tikz 将图像叠加在正确的位置并保持两个图形的纵横比?
我已经在 MWE 中使用过overpic
包和Tikz
这里(现在无法正常工作)
这是最小的工作示例。Tikz 的标题放置不正确。知道原因吗?
\documentclass[12pt]{article}
\usepackage{mwe,tikz}
\usepackage[percent]{overpic}
\pagestyle{empty}
\begin{document}
\begin{figure}
\centering
\begin{overpic}[scale=0.75]{example-image-a}
\put(3,3){\includegraphics[scale=0.21]{example-image-b}}
\end{overpic}
\caption{Using Overpic}
\end{figure}
\begin{figure}
\centering
\begin{tikzpicture}[overlay]
\node at (1,1) {\includegraphics[scale=1]{example-image-a}};
\node at (1.5,1) {\includegraphics[scale=0.25]{example-image-b}};
\end{tikzpicture}
\caption{Using Tikz Overlay}
\end{figure}
\end{document}
结果:
答案1
第一次尝试时遇到两个问题:
overlay
关键字。你写这个是因为你想覆盖两个图形,但这不是此关键字的目的。在单个图形中,tikzpicture
您绘制的所有内容确实会按照绘制顺序进行叠加。当您希望将tikzpicture
图形叠加在周围的文本或另一个tikzpicture
图形上时,请使用此关键字,但事实并非如此。在这个例子中,
overlay
罪魁祸首是字幕定位错误,因为overlay
它使图形在 TeX 眼中“消失”(它给图形赋予了零尺寸)。图 B 在图 A 内的定位。默认情况下,节点的坐标指的是其中心。您必须使用
anchor=south east
使它们指向左下角,如示例中所示overpic
。您还需要inner sep=0pt
删除包含图形的节点的内部填充。
此外,坐标单位还有另一个问题。overpic
使用相对于比例的单位。因此,在这种情况下,数量3
表示图形 A 的宽度。这在 tikz 中实现起来有点复杂,我认为在这种情况下不需要。您可以使用关键字和3%
手动调整 tikz 使用的单位。使用产生的结果与您的示例大致相同。x=dimension
y=dimension
1mm
overpic
所以最终的代码是:
\documentclass[12pt]{article}
\usepackage{mwe,tikz}\usepackage[percent]{overpic}
\pagestyle{empty}
\begin{document}
\begin{figure}
\centering
\begin{overpic}[scale=0.75]{example-image-a}
\put(3,3){\includegraphics[scale=0.21]{example-image-b}}
\end{overpic}
\caption{Using Overpic}
\end{figure}
\begin{figure} \centering
\begin{tikzpicture}[
every node/.style={anchor=south west,inner sep=0pt},
x=1mm, y=1mm,
]
\node (fig1) at (0,0)
{\includegraphics[scale=0.75]{example-image-a}};
\node (fig2) at (3,3)
{\includegraphics[scale=0.21]{example-image-b}};
\end{tikzpicture}
\caption{Using Tikz Overlay}
\end{figure}
\end{document}