Quiero dibujar un diagrama de árbol con asíntota. Pero tengo algunos problemas.
Busqué y encontré 2 sugerencias en la web. http://asymptote.sourceforge.net/FAQ/section4.html http://asymptote.sourceforge.net/doc/Frames-and-pictures.html
Usando estos consejos, y traté decajayárboles.
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);
Pero esto no funciona. Últimodibujar(f1 - f2);El comando es incorrecto.
dibujarLos comandos necesitan coordinar. Pero este método... no es inteligente (para mí).
Yo quieroconectar2 cajas. ¿Cómo puedo conectar 2 objetos?
encontréárbol de dibujomódulo en el PDF de tutoriales oficiales, pero parece difícil de usar de manera flexible (¿se puede cambiar la forma del árbol?).
Si hay una manera de usar fácilmenteárbol de dibujomódulo, ¿dirías eso?
Gracias.
Respuesta1
El siguiente código funciona como un asymptote
script independiente. No he usado el drawtree
módulo así que no puedo ayudarte con eso. En mi código, no estoy usando marcos. En cambio, cada etiqueta se dibuja en la imagen predeterminada.
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));
Respuesta2
Dado que las metodologías alternativas son generalmente aceptables, no puedo resistirme a proporcionar unabosquesolución.
math content
Pone el contenido de todos los nodos en modo matemático, evitando la necesidad de $...$
. draw
Dibuja un borde alrededor de cada nodo del árbol.
Los nodos se conectan automáticamente: de padre a hijo para cada relación padre-hijo. (Úselo <node content>, no edge
para excepciones). He especificado l sep
que coincida con lo unit
definido en el código original. Esta es la distancia mínima entre niveles del árbol. (5 cm es mucho).
bosqueno necesita coordenadas explícitas. Automáticamente formateará el árbol.
\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}
Modificar la apariencia del árbol es muy fácil. Simplemente alteras el preámbulo del forest
medio ambiente.
Por ejemplo,
for tree={
draw=red,
thick,
edge={blue, thick, <->},
fill=red!10,
math content,
l sep=50mm,
grow=45,
}
produce
mientras que la especificación del árbol en sí sigue siendo idéntica
[\mathbb{N} \models A(0)
[\mathbb{N} \models A(1)]
]