
O seguinte MWE funciona conforme esperado:
\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}
no entanto, quando tento substituir a linha de código
\path (0,0) edge node[auto] (label) {label} (1,1);;
com
\path (0,0) edge ["label",name=label] (1,1);
Recebo o erro "nenhuma forma chamada fr0 não é conhecida" ...
Eu esperava que, de acordo com a descrição no manual TikZ (pp 237), fosse possível adicionar um nome às aspas:
Em detalhes, quando a biblioteca de cotações é carregada, cada vez que um par chave-valor em uma lista de opções passada para uma borda ou um comando to path começa com ", o par chave-valor deve na verdade ser uma string no seguinte formato:
"<text>"’<options>
Essa string é transformada no seguinte:
edge node=node [every edge quotes]<options>]{<text>}
Questões:
- é possível adicionar um nome à citação de borda, que pode ser usado posteriormente como coordenadas, conforme mostrado na imagem acima?
- se for possível, como fazer isso?
Responder1
Seu código não segue a sintaxe especificada.
Trabalhando com um exemplo mais mínimo:
\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}
Quando voce diz
<options>, "<text>"
<options>
aplicar ao edge
não ao edge quotes
. Você deve usar
"<text>"<options>
como diz o manual, se você quiser <options>
aplicar ao edge quotes
em vez de ao edge
.
Comparar
\path (0,0) edge [blue, "My name is Harry."{name=Harry, red}] (1,1);
que se aplica red
a My name is Harry.
e blue
para o edge
. Freqüentemente, é claro, essa diferença é irrelevante porque os nós nos caminhos herdam atributos desses caminhos. Então, se você apenas disser
\path (0,0) edge [blue, "My name is Harry."{name=Harry}] (1,1);
ambos Harry
e edge
serão blue
.
Mas isso não se blue
aplica diretamente, Harry
mas apenas porque os nós nos caminhos herdam as cores desses caminhos por padrão. No entanto, os nomes não são herdados desta forma. Portanto, se você quisernome Harry
em vez decoloraçãoele, você deve usar a sintaxe especificada no manual.