
我可以將標籤很好地放置在正常邊緣上,但是當邊緣應用了樣式時,標籤將不再套用。
知道發生了什麼事/如何解決這個問題嗎?
\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}
答案1
這些節點實際上已應用,但是它們不會顯示,因為to path
中的聲明hv path
錯過了\tikztonodes
宏,該宏隨後將擴展到庫在某個時刻收集的節點quotes
。
完整且正確的定義hv path
是
hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}
預設情況下,節點沿著路徑放置在pos = .5
(= ) 處。midway
在正常的線到線中,它位於線的實際中間。與正交路徑-|
,|-
這是在轉角處。位置pos = .75
(= near end
) 位於第二部分的中間點。 (也可以看看聯合 TikZ 路徑上的節點.)
鍵swap
(或其快速鍵'
)可用於沿著另一側的路徑放置節點。 (該圖在內部使用auto
預設為 的選項auto=left
。swap
金鑰將其交換為auto=right
,反之亦然。)
程式碼
\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}