
Ich habe versucht, diesen Baum mit dem Paket tikz-qtree zu erstellen. Ich habe mehrere Teile davon, aber ich kann die gepunktete Linie nicht erstellen.
\documentclass[a4paper,12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts, amsmath, amsthm, amssymb}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}[scale=1.2,every node/.style={align=center}]
\tikzset{level distance=50pt,sibling distance=5pt}
\Tree [.{$\alpha(\beta)$}:$\tau^a$
[.{$\alpha$}:$\langle\sigma^a,\tau^a\rangle$ $\bullet$\\$\gamma:\rho^c$
]
[.$\beta$:$\sigma^a$ $\bullet$\\$\delta:\vartheta^c$ ] ]
\end{tikzpicture}
\end{document}
Könnten Sie diese gepunktete Zeile machen?
Antwort1
Sie können tikz
Knoten im Baum mit den von Ihnen bevorzugten Optionen erstellen. Sie können beispielsweise einen Knoten mit einer Beschriftung mit gepunktetem Rand und abgerundeten Ecken wie folgt erstellen:
\begin{tikzpicture}
[
scale=1.2,
every node/.style={align=center},
level distance=50pt,
sibling distance=5pt,
]
\Tree
[.{$\alpha(\beta)$}:$\tau^a$
[.{$\alpha$}:$\langle\sigma^a,\tau^a\rangle$ \node[label={[draw, densely dotted, rounded corners]below:\strut$\gamma:\rho^c$}]{$\bullet$};
]
[.$\beta$:$\sigma^a$ \node[label={[draw, densely dotted, rounded corners]below:\strut$\delta:\vartheta^c$}]{$\bullet$};
]
]
\end{tikzpicture}
Ich würde jedoch empfehlen, forest
die die ganze Leistung von Ti bietetkZ und mehr. Wenn Sie möchten, können Sie die endgültigen Linien in einen Knoten einfügen und die Kreise automatisch von Forest mit den gewünschten Optionen hinzufügen lassen, wobei gleichzeitig der gepunktete Rand usw. hinzugefügt wird. Sie können beispielsweise den folgenden Code für die Präambel des Baums verwenden.
for tree={
math content,
Standardmäßig haben Knoten mathematische Inhalte.
parent anchor=children,
child anchor=parent,
Bringen Sie ein bisschen Ordnung in die Sache.
},
before typesetting nodes={
Verschieben Sie dies, bis alles bereit ist.
where n children=0{
Nur für die Endknoten.
no edge,
Zeichnen Sie ihnen keine Kante.
draw,
Zeichnen Sie ihnen eine Grenze.
densely dotted,
Machen Sie diesen Rand dicht gepunktet.
content/.wrap value={\strut#1},
Machen Sie sie alle gleich hoch.
rounded corners,
Runden Sie die Ecken ab.
replace by={[, circle, fill, no edge, inner sep=0pt, minimum size=5pt, append]}
Fügen Sie vor dem Endknoten einen weiteren Knoten ein, der nur ein kleiner, ausgefüllter Kreis ist. Zeichnen Sie auch zu diesem Knoten keine Kante. Der Knoten wird bestätigt, indem replace by
das Original mit dem Ersatz und dann append
mit dem Original verknüpft wird. Wir tun dies später, weil sonst nicht alle ursprünglichen Knoten gespeichert wurden und wir möglicherweise Dinge verlieren, wenn wir versuchen, sie zu verschieben.
}{}
Machen Sie nichts mit Nicht-Terminalknoten.
}
Ende der verzögerten Sachen.
Dadurch können wir den Baum selbst recht präzise spezifizieren, ohne ständig in den Mathematikmodus wechseln zu müssen.
[\alpha(\beta):\tau^a
[{\alpha:\langle\sigma^a,\tau^a\rangle}
[\gamma:\rho^c
]
]
[\beta:\sigma^a
[\delta:\vartheta^c
]
]
]
Zusammenbau,
\begin{forest}
for tree={
math content,
parent anchor=children,
child anchor=parent,
},
before typesetting nodes={
where n children=0{
no edge,
draw,
densely dotted,
content/.wrap value={\strut#1},
rounded corners,
replace by={[, circle, fill, no edge, inner sep=0pt, minimum size=5pt, append]}
}{}
}
[\alpha(\beta):\tau^a
[{\alpha:\langle\sigma^a,\tau^a\rangle}
[\gamma:\rho^c
]
]
[\beta:\sigma^a
[\delta:\vartheta^c
]
]
]
\end{forest}
produziert
\documentclass[tikz,border=10pt,multi]{standalone}
\usepackage{tikz-qtree}
\usepackage{forest}
\begin{document}
\begin{tikzpicture}
[
scale=1.2,
every node/.style={align=center},
level distance=50pt,
sibling distance=5pt,
]
\Tree
[.{$\alpha(\beta)$}:$\tau^a$
[.{$\alpha$}:$\langle\sigma^a,\tau^a\rangle$ \node[label={[draw, densely dotted, rounded corners]below:\strut$\gamma:\rho^c$}]{$\bullet$};
]
[.$\beta$:$\sigma^a$ \node[label={[draw, densely dotted, rounded corners]below:\strut$\delta:\vartheta^c$}]{$\bullet$};
]
]
\end{tikzpicture}
\begin{forest}
for tree={
math content,
parent anchor=children,
child anchor=parent,
},
before typesetting nodes={
where n children=0{
no edge,
draw,
densely dotted,
content/.wrap value={\strut#1},
rounded corners,
replace by={[, circle, fill, no edge, inner sep=0pt, minimum size=5pt, append]}
}{}
}
[\alpha(\beta):\tau^a
[{\alpha:\langle\sigma^a,\tau^a\rangle}
[\gamma:\rho^c
]
]
[\beta:\sigma^a
[\delta:\vartheta^c
]
]
]
\end{forest}
\end{document}