Ich möchte ein Baumdiagramm mit Asymptote zeichnen. Habe aber ein paar Probleme.
Ich habe im Internet gesucht und zwei Hinweise gefunden. http://asymptote.sourceforge.net/FAQ/section4.html http://asymptote.sourceforge.net/doc/Frames-and-pictures.html
Mit diesen Tipps und versuchte,KastenUndBäume.
settings.outformat="pdf";
unitsize(5cm);
usepackage(amsmath);
frame f1;
label(f1, "$\mathbb{N} \models A(0)$", Draw);
add(f1, (0, 5))
frame f2;
label(f2, "$\mathbb{N} \models A(1)$", Draw);
add(f2, (0, 4));
draw(f1 -- f2);
Aber das funktioniert nicht. Letztezeichnen(f1 -- f2);Befehl ist falsch.
ziehenBefehle müssen koordiniert werden. Aber diese Methode ist ... (für mich) nicht klug.
Ich möchteverbinden2 Boxen. Wie kann ich 2 Objekte verbinden?
ich fandzeichnerbaumModul im offiziellen Tutorial-PDF, aber es scheint schwierig, es flexibel zu verwenden (ist die Form des Baums veränderbar?).
Wenn es eine Möglichkeit gibt, einfach zu verwendenzeichnerbaumModul, würdest du das sagen?
Danke.
Antwort1
Der folgende Code funktioniert als eigenständiges asymptote
Skript. Ich habe das drawtree
Modul nicht verwendet, daher kann ich Ihnen dabei nicht helfen. In meinem Code verwende ich keine Rahmen. Stattdessen wird jedes Etikett im Standardbild gezeichnet.
texpreamble("\usepackage{amssymb}");
settings.outformat="pdf";
unitsize(5cm);
pair p1 = (0, 5);
pair p2 = (0, 4);
draw(p1--p2);
label("$\mathbb{N} \models A(0)$", p1, FillDraw(white, black));
label("$\mathbb{N} \models A(1)$", p2, FillDraw(white, black));
Antwort2
Da alternative Methoden im Allgemeinen akzeptabel sind, kann ich nicht widerstehen, eineWaldLösung.
math content
versetzt den Inhalt aller Knoten in den Mathematikmodus und macht so die Verwendung von überflüssig $...$
. draw
zeichnet einen Rahmen um jeden Knoten im Baum.
Die Knoten werden automatisch verbunden: Elternknoten zu Kindknoten für jede Eltern-Kind-Beziehung. ( <node content>, no edge
Für Ausnahmen verwenden.) Ich habe angegeben, l sep
dass dies mit der Definition im Originalcode übereinstimmt unit
. Dies ist der Mindestabstand zwischen den Ebenen des Baums. (5 cm sind viel.)
Waldbenötigt keine expliziten Koordinaten. Der Baum wird automatisch formatiert.
\documentclass[tikz, border=10pt, multi]{standalone}
\usepackage{forest,amssymb}
\begin{document}
\begin{forest}
for tree={
draw,
math content,
l sep=50mm,
}
[\mathbb{N} \models A(0)
[\mathbb{N} \models A(1)]
]
\end{forest}
\end{document}
Das Erscheinungsbild des Baums zu ändern ist sehr einfach. Sie ändern einfach die Präambel der forest
Umgebung.
Zum Beispiel,
for tree={
draw=red,
thick,
edge={blue, thick, <->},
fill=red!10,
math content,
l sep=50mm,
grow=45,
}
produziert
während die Spezifikation für den Baum selbst identisch bleibt
[\mathbb{N} \models A(0)
[\mathbb{N} \models A(1)]
]