
패턴을 사용하여 특정 노드를 강조 표시하는 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}