将 EPS 图形与 EPS 中的点对齐

将 EPS 图形与 EPS 中的点对齐

我有几个 EPS(或 SVG)图形,我想将它们放在子图中。子图在各个阶段代表同一个对象。图形的宽度和高度不一致。我想将子图对齐到 EPS 文件中的同一点。在下面的示例中,我希望子图在 M 处对齐。下图显示了未对齐的子图。

未对齐的子图

下图显示了我希望数字如何对齐。请注意,M 之间的距离是相同的。

对齐子图

我曾尝试使用 TikZ 手动定义中心,但这种方法不准确,而且有点费力。实际图形要复杂得多,无法简单地在 PGF/TikZ 中绘制。

如果在 LaTeX 中没有(简单的)方法可以做到这一点,我愿意接受使用 InkScape、InDesign 等的建议。

答案1

正如所percusse评论的,baseline该选项允许您在内部参考上对齐多个 tizpicture。

如果节点锚点不足以满足您的期望对齐(第一个例子),您可以随时定义一个新的坐标作为参考(第二个例子)

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
\begin{tikzpicture}[baseline=(M.south)]
\node[draw](M){\includegraphics[width=3cm]{example-image}};
\end{tikzpicture}
\hfill
\begin{tikzpicture}[baseline=(M.center)]
\node[draw](M){\includegraphics[width=3cm]{example-image}};
\end{tikzpicture}
\hfill
\begin{tikzpicture}[baseline=(M.north)]
\node[draw](M){\includegraphics[width=3cm]{example-image}};
\end{tikzpicture}
\end{figure}

\begin{figure}
\begin{tikzpicture}[baseline=(aux)]
\node[draw](M){\includegraphics[width=3cm]{example-image}};
\fill[red] ([yshift=2mm]M.south) coordinate (aux) circle(2pt);
\end{tikzpicture}
\hfill
\begin{tikzpicture}[baseline=(aux)]
\node[draw](M){\includegraphics[width=3cm]{example-image}};
\fill[red] ([xshift=1cm]M.185) coordinate (aux) circle(2pt) ;
\end{tikzpicture}
\hfill
\begin{tikzpicture}[baseline=(aux)]
\node[draw](M){\includegraphics[width=3cm]{example-image}};
\fill[red] ([shift={(1cm,-.5cm)}]M.north) coordinate (aux) circle(2pt);
\end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

相关内容