
Puedo colocar etiquetas en bordes normales sin problemas, pero cuando el borde tiene un estilo aplicado, la etiqueta ya no se aplica.
¿Alguna idea de qué está pasando o cómo solucionarlo?
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,quotes}
\begin{document}
\tikz[hv path/.style = {to path={-| (\tikztotarget)}}]
\graph[grow down sep, branch right = 4em] {
A ->["this prints"] B ->{C,D};
A ->[hv path,"this doesn't"] D;
};
\end{document}
Respuesta1
Los nodos realmente se aplican, sin embargo, no aparecen porque la to path
declaración hv path
pierde la \tikztonodes
macro que luego se expandirá a los nodos que la biblioteca recopiló en algún momento quotes
.
La definición completa y correcta de hv path
es
hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}
Los nodos se colocan de forma predeterminada en pos = .5
(= midway
) a lo largo de la ruta. En líneas normales, esto está en el medio real de la línea. Con los caminos ortogonales -|
y |-
este está en la esquina. La posición pos = .75
(= near end
) está en el punto medio de la segunda parte. (Ver tambiénNodo en un camino TikZ articulado.)
La clave swap
(o su atajo '
) se puede utilizar para colocar un nodo a lo largo de un camino en el otro lado. (El gráfico utiliza internamente la auto
opción predeterminada auto=left
. La swap
clave cambia esto a auto=right
y viceversa).
Código
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs,quotes}
\begin{document}
\tikz[hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}}]
\graph[grow down sep, branch right = 4em] {
A ->["this prints", '] B ->{C,D};
A ->[hv path,"this doesn't" near end] D;
};
\end{document}