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}

다음을 생성합니다.

티크즈 트리

내가 원하는 결과는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

답변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}

여기에 이미지 설명을 입력하세요

관련 정보