
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}
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}
Wenn du sagst
<options>, "<text>"
<options>
gelten für die edge
nicht 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 quotes
edge
Vergleichen
\path (0,0) edge [blue, "My name is Harry."{name=Harry, red}] (1,1);
was red
auf My name is Harry.
und blue
auf 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 Harry
und edge
wird sein blue
.
Dies liegt jedoch nicht daran, dass blue
direkt auf zutrifft, Harry
sondern nur daran, dass Knoten auf Pfaden standardmäßig Farben von diesen Pfaden erben. Namen werden jedoch nicht auf diese Weise vererbt. Wenn Sie alsoName Harry
stattFärbungUm ihn zu verwenden, müssen Sie die im Handbuch angegebene Syntax verwenden.