使用 TikZ 进行抽象词嵌入

使用 TikZ 进行抽象词嵌入

我是 TikZ 的新手,希望绘制词嵌入的简单抽象。

以下是 Keynote 中的一张草图: 在此处输入图片描述

任何帮助都将不胜感激。谢谢!

答案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

相关内容