TikZ/PGF - 如何将节点绘制为一条线(高度为零的矩形)?

TikZ/PGF - 如何将节点绘制为一条线(高度为零的矩形)?

我想要一个节点序列,以一条线结束。我尝试了这个:

\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}

但这给出了TikZ_ex_nodes_v1,即节点具有一定的高度。是否有某种(简单的)方法可以将最后一个节点变成一条线?如果可以使用的定义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 widthinner 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}

其结果为:

在此处输入图片描述

相关内容