
Posso colocar rótulos em bordas normais sem problemas, mas quando a borda tem um estilo aplicado a ela, o rótulo não é mais aplicado.
Alguma ideia do que está acontecendo/como consertar isso?
\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}
Responder1
Os nós são realmente aplicados, porém não aparecem porque a to path
declaração em hv path
perde a \tikztonodes
macro que então se expandirá para os nós que foram coletados em algum momento pela quotes
biblioteca.
A definição completa e correta de hv path
é
hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}
Os nós são, por padrão, colocados em pos = .5
(= midway
) ao longo do caminho. Em linhas normais, isso fica no meio da linha. Com os caminhos ortogonais -|
e |-
isso fica na esquina. A posição pos = .75
(= near end
) está no ponto médio da segunda parte. (Veja tambémNó em um caminho TikZ articulado.)
A chave swap
(ou seu atalho '
) pode ser usada para colocar um nó ao longo de um caminho do outro lado. (O gráfico usa internamente a auto
opção cujo padrão é auto=left
. A swap
chave troca isso para auto=right
e vice-versa.)
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}