6

In my MWE :

  • why line width=0pt doesn't work ?
  • why the dashed argument on a level leeks on the next ?

enter image description here

\documentclass[tikz]{standalone}
\usetikzlibrary{trees}

\begin{document}

\begin{tikzpicture}[level distance=5mm,
    level 1/.style={sibling distance=32mm,line width=0pt},
    level 2/.style={sibling distance=16mm,dashed},
    level 3/.style={sibling distance=8mm,level distance=12mm},
    %level 4/.style={sibling distance=7mm},
    %every fit/.style={rectangle,draw,inner sep=3.5pt},
    grow=right]

\scriptsize
\node {$\bullet$}
child {node {P}
        child {node{PP}
            child {node{PPP}}
            child {node{PPF}}
        }
        child {node{PF}
            child {node{PFP}}
            child {node{PFF}}
        }
    }
child {node {F}
        child {node{FP}
            child {node{FPP}}
            child {node{FPF}}
        }
        child {node{FF}
            child {node{FFP}}
            child {node{FFF}}
        }
    } ;
\end{tikzpicture}

\end{document}
Tarass
  • 16,912
  • line width=0pt is invisible. try instead such it definition to use draw=none (effect should be the same). – Zarko Apr 25 '14 at 07:25
  • @Zarko Doesn't work at all. – Tarass Apr 25 '14 at 07:31
  • @HarishKumar Maybe you can cheat a png picture ;-) but in pdf with evince viewer, the line is still here. – Tarass Apr 25 '14 at 07:34
  • @HarishKumar what does it mean ? sorry for my poor english. – Tarass Apr 25 '14 at 07:55
  • What does 'scrap that' means, I appologize for my poor english, I can't understand what you said. – Tarass Apr 25 '14 at 08:03
  • Hehe, it means "scrap my previous comment" as it is wrong. :) And don't apologise for english. Many of us are not native english speakers too. –  Apr 25 '14 at 08:32

1 Answers1

6

You have to change the edge from parent style

\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{trees}

\begin{document}

\begin{tikzpicture}[level distance=5mm,
    level 1/.style={sibling distance=32mm,
      edge from parent/.style={draw=none}},
    level 2/.style={sibling distance=16mm,
      edge from parent/.append style={draw,dashed}},
    level 3/.style={sibling distance=8mm,level distance=12mm,
      edge from parent/.append style={solid}},
    %level 4/.style={sibling distance=7mm},
    %every fit/.style={rectangle,draw,inner sep=3.5pt},
    grow=right]

\scriptsize
\node {$\bullet$}
child {node {P}
        child {node{PP}
            child {node{PPP}}
            child {node{PPF}}
        }
        child {node{PF}
            child {node{PFP}}
            child {node{PFF}}
        }
    }
child {node {F}
        child {node{FP}
            child {node{FPP}}
            child {node{FPF}}
        }
        child {node{FF}
            child {node{FFP}}
            child {node{FFF}}
        }
    } ;
\end{tikzpicture}

\end{document}

enter image description here

esdd
  • 85,675
  • Is there any way I can apply the edge from parent style only to one level and have all others assume the default? – oarfish Nov 26 '14 at 18:08
  • If only the second level should be dashed you could use: level/.style={edge from parent/.style={draw,solid}}, and level 2/.style={edge from parent/.append style={dashed}}. – esdd Nov 27 '14 at 09:23