TikZ ツリー: 特定のツリーエッジのスタイルを変更する

TikZ ツリー: 特定のツリーエッジのスタイルを変更する

ツリーの一部のエッジのスタイルを変更したいです。ルートからツリーの 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}

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

関連情報