¿Es posible agregar nombres a las comillas?

¿Es posible agregar nombres a las comillas?

El siguiente MWE funciona como se esperaba:

\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}

ingrese la descripción de la imagen aquí

sin embargo, cuando intento reemplazar la línea de código

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

con

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

Recibo el error "no se conoce ninguna forma llamada fr0"...

Esperaba que, según la descripción en el manual de TikZ (pág. 237), fuera posible agregar un nombre entre comillas:

En detalle, cuando se carga la biblioteca de comillas, cada vez que un par clave-valor en una lista de opciones pasadas a un borde o un comando de ruta comienza con ", el par clave-valor en realidad debe ser una cadena de la siguiente forma:

"<text>"’<options>

Esta cadena se transforma en lo siguiente:

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

Preguntas:

  • ¿Es posible agregar un nombre a la cita del borde, que luego se puede usar como coordenadas como se muestra en la imagen de arriba?
  • si es posible, ¿cómo hacer esto?

Respuesta1

Su código no sigue la sintaxis especificada.

Trabajando con un ejemplo más 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}

Harry

Cuando tu dices

<options>, "<text>"

<options>aplicar al edgeno el edge quotes. Debes usar

"<text>"<options>

como dice el manual si desea <options>aplicar en edge quoteslugar de edge.

Comparar

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

Harry rojo

que se aplica reda My name is Harry.y bluepara el edge. Por supuesto, a menudo esta diferencia es irrelevante porque los nodos en los caminos heredan atributos de esos caminos. Entonces si solo dices

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

ambos Harryy edgelo serán blue.

Harry azul

Pero esto no se debe a que bluese aplique directamente aHarry sino sólo a que los nodos en las rutas heredan colores de esas rutas de forma predeterminada. Sin embargo, los nombres no se heredan de esta forma. Por lo tanto, si quieresnombre Harryen vez decoloranteél, debe utilizar la sintaxis especificada en el manual.

información relacionada