答案1
有多种方法可以实现这一点。可以插入\tikzmark
常规文本并叠加箭头。可以将每个单词放入单独的锚点中\tikz[remember picture]{node(name){...};}
并叠加来自锚点的箭头south
。
这种方法将所有内容合并为一个tikzpicture
,整个句子位于一个节点中。箭头末端相对于节点锚点使用calc
库符号指定。奇怪的小玩意被指定为图片,以便于重现。与节点不同,图片没有锚点。
\documentclass{standalone}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc,arrows.meta}
\tikzset{doohicky/.pic={%
\fill[color=Aqua,rounded corners] (-15pt,-11pt) rectangle (15pt,-1pt);
\fill[color=yellow] (-10pt,-6pt) circle[radius=4pt]
(0pt,-6pt) circle[radius=4pt]
(10pt,-6pt) circle[radius=4pt];
}}
\begin{document}
\begin{tikzpicture}
\node (A) {Sentence with some words};
\draw[-latex] ($(A.south west)!.2!(A.south east)$) -- ++(-20pt,-20pt) pic{doohicky};
\draw[-latex] ($(A.south west)!.45!(A.south east)$) -- ++(-7.5pt,-20pt) pic{doohicky};
\draw[-latex] ($(A.south west)!.65!(A.south east)$) -- ++(7.5pt,-20pt) pic{doohicky};
\draw[-latex] ($(A.south west)!.9!(A.south east)$) -- ++(20pt,-20pt) pic{doohicky};
\end{tikzpicture}
\end{document}
请注意,通常将 pic 像常规一样进行调试会更容易tikzpicture
,然后将代码复制到中\tikzset
。