我想要一个节点序列,以一条线结束。我尝试了这个:
\documentclass{article}
\usepackage{tikz}
\tikzstyle{st1}=[circle, inner sep=1.5pt, draw]
\tikzstyle{st2}=[rectangle, inner xsep=2pt, inner ysep=0pt, draw]
\begin{document}
\begin{tikzpicture}[grow=down, level distance=10pt, every node/.style={st1}]
\path node{} child {node{} child {node[st2]{}}};
\end{tikzpicture}
\end{document}
但这给出了,即节点具有一定的高度。是否有某种(简单的)方法可以将最后一个节点变成一条线?如果可以使用的定义st2
,那么使用起来就很简单了。
我最接近做的是:
\documentclass{article}
\usepackage{tikz}
\tikzstyle{st1}=[circle, inner sep=1.5pt, draw]
\tikzset{st2/.style={rectangle, inner sep=-2pt, draw=none}}
\begin{document}
\begin{tikzpicture}[grow=down, level distance=10pt, every node/.style={st1}]
\path node{} child {node{} child {node[st2]{\textbf{--}}}};
\end{tikzpicture}
\end{document}
但这更像是一种肮脏的黑客行为。此外,它需要\textbf{--}
在每个这样的节点中都有……如果我需要序列是水平的,它就不会起作用。
谢谢。
答案1
关键是给该节点一个。在这里您可以分别看到使用和的minimum height
结果:0pt
.4pt
更新:此外,为了更好地控制节点的宽度,请使用minimum width
而不是。类似地,对于圆形节点,inner xsep
您最好也使用而不是。这样您就可以调整节点的大小,例如:minimum width
inner sep=1.5pt
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikzstyle{st1}=[circle, inner sep=0pt, minimum width=4pt, draw]
\tikzstyle{st2}=[rectangle, inner sep=0pt, minimum height=0pt, minimum width=4pt, draw]
\tikzstyle{st1b}=[circle, inner sep=0pt, minimum width=6pt, draw]
\tikzstyle{st2b}=[rectangle, minimum height=.4pt, minimum width=6pt, inner sep=0pt, draw]
\begin{tikzpicture}[grow=down, level distance=10pt, every node/.style={st1}]
\path node{} child {node{} child {node[st2]{}}};
\end{tikzpicture}
\begin{tikzpicture}[grow=down, level distance=10pt, every node/.style={st1b}]
\path node{} child {node{} child {node[st2b]{}}};
\end{tikzpicture}
\end{document}
其结果为: