带有“名称前缀..”的一个很好的例子

带有“名称前缀..”的一个很好的例子

TiKZ pics包含一个名为的新键name prefix ..TiKZ文档将其定义为

/tikz/name prefix ..

此键仅在图片代码内可用。在那里,它(本地)将名称前缀更改为图片外部的值。这允许您访问当前图片之外的节点。

但它没有显示任何示例。在 TeX.SX 中,我刚刚发现杰利迪亚兹 回答节点和节点矩阵我不明白它name prefix ..有什么用。你能写一个更简单的用法示例吗?

答案1

作为PGF 文档关于图片,我建议画椰子,并把它们贴在海鸥身上(因为我们缺少燕子)。

我们将使用seagull手册中定义的 pic,并介绍另一个非常简单的 pic,叫做coconut,但我们希望确保每个椰子都附着在一只海鸥上。

以下是两张图片的定义:

\tikzset{
    seagull/.pic={
        % Code for a "seagull". Do you see it?...
        \coordinate (-left wing) at (-3mm,0);
        \coordinate (-head) at (0,0);
        \coordinate (-right wing) at (3mm,0);

        \draw (-3mm,0) to [bend left] (0,0) to [bend left] (3mm,0);
    },
    coconut/.pic={
        \draw (0,0) circle[radius=2mm];
        \draw[name prefix ..,very thin] (0,2mm) -- (#1-head)  .. controls ++(-2mm,-0.3mm) and ++(0,-2mm) .. (#1-head) .. controls ++(2mm,-1mm) and ++(0,-2mm) .. (#1-head);
    }
}

name prefix ..请注意,我们在调用椰子时使用了键draw,并且需要一个参数来告诉椰子它附着在哪只海鸥上。让我们尝试使用这些图片:

\begin{tikzpicture}
    \pic (Veronique) at (0.5,1) {seagull};
    \pic (Virginie) at (-1,0.7) {seagull};
    \pic (Emma) at (0,0) {seagull};
    \pic (Coco) at (0.1,-1) {coconut=Emma};
    \pic (Nut) at (-1.1,-0.8) {coconut=Virginie};
\end{tikzpicture}

结果是:

海鸥和椰子

相关内容