在 Tikz 节点之间自动居中标签
Automatically center label between Tikz nodes
我刚开始使用乳胶包 Tikz,我正在尝试编写一个 Tableau。我的问题是在同级之间创建足够的 space 以便我可以在中心放置一个标签。这就是我所做的。我想尽可能避免手动间距,所以我正在寻找一个通用的解决方案。
\begin{tikzpicture}[auto, node distance=1.3cm]
\node (A) {$X^1$};
\node (B) [below of=A] {$X^2$};
\node (C) [below of=B] {$X^3$};
\node (D) [below of=C] {$X^4$};
\node (E) [below of=D] {$X^5$};
\node (F) [label={[label distance=-1cm] \color{green}{Complete}}, below left of=E,left=1cm] {$X^6$};
\node (G) [below right of=E, right=1cm] {$X^7$};
\node (H) [below left of=G,left=1cm] {$X^8$};
\node (I) [label={[label distance=-1cm] \color{red}{Closed}}, below right of=G, right=1cm] {$X^9$};
\node (L) [label={[label distance=-1cm] \color{red}{Closed}}, below of=H] {$X^{10}$};
\path (A) edge (B);
\path (B) edge (C);
\path (C) edge (D);
\path (D) edge (E);
\path (E) edge node [below=0.3cm, right=0.4cm]{PB-Rule} (F)
edge (G);
\path (G) edge node [below=0.3cm, right=0.4cm] {PB-Rule} (H)
edge (I);
\path (H) edge node {E-Rule} (L);
\end{tikzpicture}
有什么建议吗?
要将标签放置在兄弟姐妹之间,您可以使用 !0.5!
语法:
\begin{tikzpicture}[auto, node distance=1.3cm]
\node (A) {$X^1$};
\node (B) [below of=A] {$X^2$};
\node (C) [below of=B] {$X^3$};
\node (D) [below of=C] {$X^4$};
\node (E) [below of=D] {$X^5$};
\node (F) [label={[label distance=-1cm] \color{green}{Complete}}, below left of=E,left=1cm] {$X^6$};
\node (G) [below right of=E, right=1cm] {$X^7$};
\node (H) [below left of=G,left=1cm] {$X^8$};
\node (I) [label={[label distance=-1cm] \color{red}{Closed}}, below right of=G, right=1cm] {$X^9$};
\node (L) [label={[label distance=-1cm] \color{red}{Closed}}, below of=H] {$X^{10}$};
\node (label1) at ($(F)!0.5!(G)$) {PB-Rule};
\node (label2) at ($(H)!0.5!(I)$) {PB-Rule};
\path (A) edge (B);
\path (B) edge (C);
\path (C) edge (D);
\path (D) edge (E);
\path (E) edge (F);
\path (E) edge (G);
\path (G) edge (H);
\path (G) edge (I);
\path (H) edge node {E-Rule} (L);
\end{tikzpicture}
注意:您将需要 calc tikz 库来实现该语法。
我刚开始使用乳胶包 Tikz,我正在尝试编写一个 Tableau。我的问题是在同级之间创建足够的 space 以便我可以在中心放置一个标签。这就是我所做的。我想尽可能避免手动间距,所以我正在寻找一个通用的解决方案。
\begin{tikzpicture}[auto, node distance=1.3cm]
\node (A) {$X^1$};
\node (B) [below of=A] {$X^2$};
\node (C) [below of=B] {$X^3$};
\node (D) [below of=C] {$X^4$};
\node (E) [below of=D] {$X^5$};
\node (F) [label={[label distance=-1cm] \color{green}{Complete}}, below left of=E,left=1cm] {$X^6$};
\node (G) [below right of=E, right=1cm] {$X^7$};
\node (H) [below left of=G,left=1cm] {$X^8$};
\node (I) [label={[label distance=-1cm] \color{red}{Closed}}, below right of=G, right=1cm] {$X^9$};
\node (L) [label={[label distance=-1cm] \color{red}{Closed}}, below of=H] {$X^{10}$};
\path (A) edge (B);
\path (B) edge (C);
\path (C) edge (D);
\path (D) edge (E);
\path (E) edge node [below=0.3cm, right=0.4cm]{PB-Rule} (F)
edge (G);
\path (G) edge node [below=0.3cm, right=0.4cm] {PB-Rule} (H)
edge (I);
\path (H) edge node {E-Rule} (L);
\end{tikzpicture}
有什么建议吗?
要将标签放置在兄弟姐妹之间,您可以使用 !0.5!
语法:
\begin{tikzpicture}[auto, node distance=1.3cm]
\node (A) {$X^1$};
\node (B) [below of=A] {$X^2$};
\node (C) [below of=B] {$X^3$};
\node (D) [below of=C] {$X^4$};
\node (E) [below of=D] {$X^5$};
\node (F) [label={[label distance=-1cm] \color{green}{Complete}}, below left of=E,left=1cm] {$X^6$};
\node (G) [below right of=E, right=1cm] {$X^7$};
\node (H) [below left of=G,left=1cm] {$X^8$};
\node (I) [label={[label distance=-1cm] \color{red}{Closed}}, below right of=G, right=1cm] {$X^9$};
\node (L) [label={[label distance=-1cm] \color{red}{Closed}}, below of=H] {$X^{10}$};
\node (label1) at ($(F)!0.5!(G)$) {PB-Rule};
\node (label2) at ($(H)!0.5!(I)$) {PB-Rule};
\path (A) edge (B);
\path (B) edge (C);
\path (C) edge (D);
\path (D) edge (E);
\path (E) edge (F);
\path (E) edge (G);
\path (G) edge (H);
\path (G) edge (I);
\path (H) edge node {E-Rule} (L);
\end{tikzpicture}
注意:您将需要 calc tikz 库来实现该语法。