É possível adicionar nomes às aspas?

É possível adicionar nomes às aspas?

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}

insira a descrição da imagem aqui

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}

atormentar

Quando voce diz

<options>, "<text>"

<options>aplicar ao edgenão ao edge quotes. Você deve usar

"<text>"<options>

como diz o manual, se você quiser <options>aplicar ao edge quotesem vez de ao edge.

Comparar

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

Harry vermelho

que se aplica reda My name is Harry.e bluepara 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 Harrye edgeserão blue.

Harry azul

Mas isso não se blueaplica diretamente, Harrymas 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 Harryem vez decoloraçãoele, você deve usar a sintaxe especificada no manual.

informação relacionada