Wie füge ich einen Fortschrittsbalken im Waldbaumknoten hinzu?

Wie füge ich einen Fortschrittsbalken im Waldbaumknoten hinzu?

Ich möchte unter einigen Knoten in meinem Baum einen Fortschrittsbalken hinzufügen.

Etwas wie das:

Bildbeschreibung hier eingeben

Mein Baumcode ist der folgende:

\package{forest}
\begin{document}
\begin{forest}
for tree={calign=fixed edge angles},
[Asp \textsubscript{Habitual} [solere\\]
[Asp \textsubscript{Predispositional}
[tendere]
[Asp \textsubscript{Repetetive \textsubscript{i}} [tornare]
[Mod \textsubscript{Volition}
[volere][,phantom]
]]]]
\end{forest}
\end{document}

Mein Fortschrittsbalkencode sieht wie folgt aus:

\package{progressbar}
\begin{document}
\progressbar[linecolor=black, filledcolor=green]{0.6}\llap{\raisebox{1.5pt
{\tiny$60\%$}\hspace{0.8cm}} 
\end{document}

Wie kann ich diese beiden kombinieren? Ich habe versucht, nach jedem Knoten den Fortschrittsbalkencode hinzuzufügen, aber es scheint, als ob der Code in der Gesamtstrukturumgebung nicht funktioniert.

Vielen Dank im Voraus!

Antwort1

Da \progressbarTikZ intern verwendet wird und das Verschachteln von TikZ-Bildern zumindest lästig ist, können wir \progressbarvergessen, ein eigenes zu erstellen tikzpicture.

Da der Balken asymmetrisch aufgebaut ist (der linkeste Punkt liegt beiX= 0) Wir platzieren es in einer Matrix, die wiederum wie ein Knoten platziert werden kann, wodurch wir ein verwenden können label.

Ich habe progressbardem Wald einen Schlüssel hinzugefügt, der vier Argumente akzeptiert:

  1. Optionen zu \progressbar,
  2. Fortschrittswert und
  3. Optionen für den Textknoten mit
  4. Sein Inhalt.

Code

\documentclass[tikz]{standalone}
\usepackage{forest, progressbar}
\forestset{
  progressbar/.style n args={4}{
    label={[matrix, inner sep=+0pt]below:%
      \let\tikzpicture\scope
      \let\endtikzpicture\endscope
      \progressbar[{#1}]{#2}
      \path (Begin) -- node[{midway,anchor=center,node font=\tiny,#3}] {#4\,\%} (End);
      \expandafter\pgfmatrixendrow}}}
\progressbarchange{linecolor=black, filledcolor=green}
\begin{document}
\begin{forest} for tree={calign=fixed edge angles}
[Asp \textsubscript{Habitual}
  [solere, progressbar={}{.6}{}{60}]
  [Asp \textsubscript{Predispositional}
    [tendere, progressbar={filledcolor=yellow}{.3}{}{30}]
    [Asp \textsubscript{Repetetive \textsubscript{i}}
      [tornare]
      [Mod \textsubscript{Volition}
        [volere, progressbar={filledcolor=blue, width=1cm}{.85}{white}{85}]
        [,phantom]
      ]
    ]
  ]
]
\end{forest}
\end{document}

Ausgabe

Bildbeschreibung hier eingeben

Antwort2

Ich habe das Problem gelöst, indem ich nach dem gewünschten Endknoten für die Leiste diesen Code angegeben habe:

[volere, tikz={\node[below=-2.5pt of .south]  
{\progressbar[linecolor=black, filledcolor=green]{0.6}\llap{\raisebox{1.5pt
{\tiny$60\%$}\hspace{0.8cm}}};}]

Der vollständige Code lautet wie folgt:

\usepackage{tikz}
\usepackage{forest}
\begin{document}
\begin{forest}
 for tree={calign=fixed edge angles},
 [Asp \textsubscript{Habitual} [solere]
 [Asp \textsubscript{Predispositional}
 [tendere]
 [Asp \textsubscript{Repetetive \textsubscript{i}} [tornare]
 [Mod \textsubscript{Volition}
 [volere, tikz={\node[below=-2.5pt of .south]  { \progressbar[linecolor=black, filledcolor=green]{0.6}\llap{\raisebox{1.5pt}{\tiny$60\%$}\hspace{0.8cm}}};}][,phantom]
 ]]]]
\end{forest}
\end{document}

verwandte Informationen