垂直对齐 Tikz 节点内的文本

垂直对齐 Tikz 节点内的文本

我想在节点内保留一张图片和关于它的文字,就在它旁边。我想将文本对齐到中间(即它应该位于连接矩形节点垂直边中点的线上)。但是文本移动到了右下角。我该如何修复它?

% code for generating the image shown
\documentclass[tikz]{standalone}

\usepackage{tikz}

\usetikzlibrary{shapes,arrows,chains}
\usetikzlibrary[calc]
\usetikzlibrary{positioning}
\usetikzlibrary{shadows.blur}

\begin{document}

\begin{tikzpicture}

\node[draw=black, thick] (balls) {\includegraphics[scale=0.05]{sample.jpg} Balls};

\end{tikzpicture}

\end{document}

结果:

文字位于右下角,而不是中心线

答案1

欢迎!获得此类物品的众多方法之一是

\documentclass[tikz]{standalone}
\usetikzlibrary{positioning,fit}
\begin{document}
\begin{tikzpicture}
\node (duck) {\includegraphics[width=4cm]{example-image-duck} };
\node[right=1em of duck] (balls) {Balls};
\node[draw,thick,fit=(duck)(balls)]{};
\end{tikzpicture}
\end{document}

在此处输入图片描述

或者

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node[draw,thick] (balls) 
{$\vcenter{\hbox{\includegraphics[width=4cm]{example-image-duck}}}\quad
\mbox{Balls}$};
\end{tikzpicture}
\end{document}

答案2

以下解决方案使用 tikzpicture 的背景矩形来绘制边框并label打印文本。

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{backgrounds}

\begin{document}
\begin{tikzpicture}[
    background rectangles/.style={thick, draw},
    show background rectangle]
    \node[label=right:Frog]{\includegraphics[width=3cm]{frog}};
\end{tikzpicture}
\end{document}

在此处输入图片描述

更新 如果这个集合应该是一个更大图表的一部分(参见对薛定谔猫答案的评论),另一个解决方案可能是matrix

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{matrix, positioning}

\begin{document}
\begin{tikzpicture}
\matrix[matrix of nodes, draw, nodes={anchor=center}] (A)
    {\includegraphics[width=3cm]{frog} & Frog 1\\};

\matrix[matrix of nodes, draw, nodes={anchor=center}, right= of A] (B)
    {\includegraphics[width=3cm]{frog} & Frog 2\\};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容