Ist es möglich, Randzitaten Namen hinzuzufügen?

Ist es möglich, Randzitaten Namen hinzuzufügen?

Das folgende MWE funktioniert wie erwartet:

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{quotes}

\begin{document}
\begin{tikzpicture}
  \path (0,0) edge node[auto] (label) {label} (1,1);
  \draw (label.south west) rectangle (label.north east);
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

jedoch, wenn ich versuche, Codezeile zu ersetzen

\path (0,0) edge node[auto] (label) {label} (1,1);;

mit

\path (0,0) edge ["label",name=label] (1,1);

Ich erhalte die Fehlermeldung „Keine Form mit dem Namen fr0 bekannt“ …

Ich hatte erwartet, dass es gemäß der Beschreibung im TikZ-Handbuch (S. 237) möglich sein sollte, Anführungszeichen einen Namen hinzuzufügen:

Im Einzelnen gilt: Wenn die Anführungszeichen-Bibliothek geladen wird, muss jedes Mal, wenn ein Schlüssel-Wert-Paar in einer Liste von Optionen, die an einen Edge- oder To-Path-Befehl übergeben werden, mit " beginnt, das Schlüssel-Wert-Paar tatsächlich eine Zeichenfolge in folgender Form sein:

"<text>"’<options>

Diese Zeichenfolge wird wie folgt umgewandelt:

edge node=node [every edge quotes]<options>]{<text>}

Fragen:

  • ist es möglich, dem Randzitat einen Namen hinzuzufügen, der später als Koordinaten verwendet werden kann, wie im obigen Bild gezeigt?
  • wenn es möglich ist, wie geht das?

Antwort1

Ihr Code folgt nicht der angegebenen Syntax.

Arbeiten mit einem minimalistischeren Beispiel:

\documentclass[tikz]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}
  \path (0,0) edge ["My name is Harry."{name=Harry}] (1,1);
  \draw (Harry.south west) rectangle (Harry.north east);
\end{tikzpicture}
\end{document}

Harry

Wenn du sagst

<options>, "<text>"

<options>gelten für die edgenicht die edge quotes. Sie müssen verwenden

"<text>"<options>

wie im Handbuch angegeben, wenn Sie sich auf und nicht <options>auf bewerben möchten .edge quotesedge

Vergleichen

  \path (0,0) edge [blue, "My name is Harry."{name=Harry, red}] (1,1);

roter Harry

was redauf My name is Harry.und blueauf zutrifft edge. Oft ist dieser Unterschied natürlich irrelevant, da Knoten auf Pfaden Attribute von diesen Pfaden erben. Wenn Sie also einfach sagen

  \path (0,0) edge [blue, "My name is Harry."{name=Harry}] (1,1);

beides Harryund edgewird sein blue.

blauer Harry

Dies liegt jedoch nicht daran, dass bluedirekt auf zutrifft, Harrysondern nur daran, dass Knoten auf Pfaden standardmäßig Farben von diesen Pfaden erben. Namen werden jedoch nicht auf diese Weise vererbt. Wenn Sie alsoName HarrystattFärbungUm ihn zu verwenden, müssen Sie die im Handbuch angegebene Syntax verwenden.

verwandte Informationen