TikZ 节点“下方”包含图形

TikZ 节点“下方”包含图形

当我尝试将 TikZ 放置node below of在包含\includegraphics图片的另一个节点上时,它并没有放置在节点下方,而是位于节点中心下方。我感觉 makro 不知道实际的图像尺寸(以及节点尺寸)below of(用局外人的话来说)。

我知道很多解决方法,但没有“正确”的方法来解决这个问题吗?

例子:

\documentclass{beamer}
\usepackage{tikz}
\usepackage{mwe}

\begin{document}
\begin{tikzpicture}
  \node[draw = red] (image) {\includegraphics{example-image}};
  \node[draw = green, below of = image] {this is NOT below of `image`};
\end{tikzpicture}
\end{document}

结果:

mwe 结果

答案1

我更喜欢below密钥并使用positioning库。

\documentclass{beamer}
\usepackage{tikz}
\usepackage{mwe}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[]
  \node[draw = red] (image) {\includegraphics{example-image}};
  \node[draw = green, below = 0mm of image] {this is NOT below of `image`};
\end{tikzpicture}
\end{document}

结果

答案2

您可以使用节点定位,例如image.south

\documentclass{beamer}
\usepackage{tikz}
\usepackage{mwe}

\begin{document}
  \begin{tikzpicture}
    \node[draw = red] (image) {\includegraphics{example-image}};
    \node at (image.south)[draw = green, anchor=north] {this IS below of `image`!};
  \end{tikzpicture}
\end{document}

请注意,您还必须指定anchor

此代码产生

在此处输入图片描述

变化

您可以使用节点的标签:

\documentclass{beamer}
\usepackage{tikz}
\usepackage{mwe}

\begin{document}
  \begin{tikzpicture}
    \node[draw = red,label={[draw=green,text=red]-90:this IS below of `image`!}] (image) {\includegraphics{example-image}};
  \end{tikzpicture}
\end{document}

相关内容