tikz ノード内の制限パターン

tikz ノード内の制限パターン

tikz でツリーを作成し、パターンを使用して特定のノードを強調表示したいと思います。ただし、テキストが白い背景に表示されるように、四角形内のパターンを制限したいと思います。

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}

これによって次のものが生成されます:

tikzツリー

私が望む結果は次のようになります:

ここに画像の説明を入力してください

答え1

テキストを白いカラーボックスにラップすることもできます。

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

ここに画像の説明を入力してください

関連情報