ツリーの一部のエッジのスタイルを変更したいです。ルートからツリーの 1 つのリーフまでの赤い破線のパスが必要です。ただし、特定のエッジを変更すると、その下のエッジもすべて変更されます。ラベルも赤くなってしまいますが、これは望ましくありません。
つまり、次のことが起こります:
しかし、私は次のようなものを望んでいます:
何か提案はありますか? そんなに難しいことではないはずです。しかし、調べるのに 1 時間以上かかっています。これが私のコードです:
\documentclass[border=10pt,svgnames]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,automata,backgrounds}
\definecolor{light-gray}{gray}{0.6}
\begin{document}
\centering
\begin{tikzpicture}[level distance=1.5cm,
level 1/.style={sibling distance=3cm},
level 2/.style={sibling distance=1cm},
level 3/.style={sibling distance=1cm},
every node/.style={thin}]
\node {1}
child {node {00}
child {node {00}}
child {node {}}
child {node {10}}
child {node {}}
}
child {node {}}
child {node {10}
child {node {00} edge from parent[dashed, very thick, red]
child {node {00}}
child {node {01}}
child {node {10}}
child {node {11} edge from parent[dashed, very thick, red]}
}
child {node {}}
child {node {}}
child {node {11}}
}
child {node {}};
\end{tikzpicture}
\end{document}
答え1
使用できますForest
ツリーのすべてのエッジをカスタマイズするためのシンプルな構文を備えたパッケージ。次のようにエッジオプションを挿入するだけです。
edge={dashed,red,thick}
完全なコード
\documentclass[border=10pt,svgnames]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={delay={where content={}{content={\phantom{00}}}{}},s sep+=5mm,l+=5mm}
[1
[00
[00]
[]
[10]
[]
]
[]
[10,edge={dashed,red,thick}
[00,edge={dashed,red,thick}
[00]
[01]
[10]
[11,edge={dashed,red,thick}]
]
[]
[]
[11]
]
[\phantom{00}]
]
\end{forest}
\end{document}