Padrão de limite dentro do nó tikz

Padrão de limite dentro do nó tikz

Quero criar uma árvore no tikz, onde destaco certos nós usando um padrão. No entanto, quero limitar o padrão dentro dos retângulos de forma que o texto fique visível em um fundo branco.

Aqui está o MWE:

\documentclass{article}
\usepackage{graphicx} 

\usepackage{tikz}
\usetikzlibrary{patterns,trees}

\begin{document}

\begin{tikzpicture}[
  every node/.style={rectangle,draw,align=center, minimum height=0.5cm},
  grandchild/.style={grow=down,xshift=0.5em,anchor=west,
    edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}},
  first/.style={level distance=7mm},
  second/.style={level distance=14mm},
  third/.style={level distance=21mm},
  level 1/.style={sibling distance=12em}]
    \node[font = {\small\bfseries}] {This is a very long root}
    [edge from parent fork down,level distance=10mm]
    child{node[font = {\footnotesize}, style={}] {Foo\\[-0.3mm]Bar}
    [edge from parent fork down,level distance=10mm]
      child[style={sibling distance=6em, level distance=10mm}] {node[font = {\footnotesize}, ]{Alpha}}
      child[style={sibling distance=6em, level distance=10mm}] {node[font = {\footnotesize}]{Beta}
      }
      child[style={sibling distance=6em, level distance=10mm,}] {node[font = {\footnotesize},preaction={clip, postaction={pattern=north west lines, pattern color=red, }}]{Charlie}}
    }
    child{node[font = {\footnotesize},] {Bar\\[-0.3mm]Foo}
      child[grandchild,first] {node[font = {\footnotesize},]{Test 1}}
      child[grandchild,second] {node[font = {\footnotesize},]{Test 2}}
      child[grandchild,third] {node[font = {\footnotesize},preaction={clip, postaction={pattern=north west lines, pattern color=red, }}]{Test 3}}
    };
\end{tikzpicture}

\end{document}

O que produz:

árvore tikz

Meu resultado desejado seria algo assim:

insira a descrição da imagem aqui

Responder1

Você pode agrupar seu texto em uma caixa de cores branca:

\documentclass[border=0.1cm]{standalone}
\usepackage{graphicx} 

\usepackage{tikz}
\usetikzlibrary{patterns,trees}

\setlength{\fboxsep}{1.5pt}

\begin{document}

\begin{tikzpicture}[
  every node/.style={rectangle,draw,align=center, minimum height=0.5cm},
  grandchild/.style={grow=down,xshift=0.5em,anchor=west,
    edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}},
  first/.style={level distance=7mm},
  second/.style={level distance=14mm},
  third/.style={level distance=21mm},
  level 1/.style={sibling distance=12em}]
    \node[font = {\small\bfseries}] {This is a very long root}
    [edge from parent fork down,level distance=10mm]
    child{node[font = {\footnotesize}, style={}] {Foo\\[-0.3mm]Bar}
    [edge from parent fork down,level distance=10mm]
      child[style={sibling distance=6em, level distance=10mm}] {node[font = {\footnotesize}, ]{Alpha}}
      child[style={sibling distance=6em, level distance=10mm}] {node[font = {\footnotesize}]{Beta}
      }
      child[style={sibling distance=6em, level distance=10mm,}] {node[inner sep=.3333em-\fboxsep,font = {\footnotesize},preaction={clip, postaction={pattern=north west lines, pattern color=red, }}]{\colorbox{white}{Charlie}}}
    }
    child{node[font = {\footnotesize},] {Bar\\[-0.3mm]Foo}
      child[grandchild,first] {node[font = {\footnotesize},]{Test 1}}
      child[grandchild,second] {node[font = {\footnotesize},]{Test 2}}
      child[grandchild,third] {node[inner sep=.3333em-\fboxsep,font = {\footnotesize},preaction={clip, postaction={pattern=north west lines, pattern color=red, }}]{\colorbox{white}{Test 3}}}
    };
\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

informação relacionada