Estoy intentando dibujar árboles con sufijos en látex para un informe. Como estoy programando árboles, simplemente los imprimo en formato qtree desde mi código para no tener que molestarme en hacerlos manualmente.
Para árboles pequeños esto funciona muy bien. (El ejemplo habitual de "plátano" está llegando)
\documentclass{article}
\usepackage{graphics}
\usepackage{qtree}
\begin{document}
\begin{center}
\Tree[. [.\$ ]
[.banana\$ ]
[.a [.n [.a [.na\$ ]
[.\$ ]
] ] [.\$ ]
] [.n [.a [.na\$ ]
[.\$ ]
] ] ]
\end{center}
\end{document}
Pero si quiero dibujar un árbol más grande, como "no sé algo grande", utilizo el mismo proceso:
\documentclass{article}
\usepackage{graphics}
\usepackage{qtree}
\begin{document}
\begin{center}
\Tree[. [.\$idontknowsomethingbig\$ ]
[.i [.dontknowsomethingbig\$ ]
[.ngbig\$ ]
[.g\$ ]
] [.dontknowsomethingbig\$ ]
[.o [.ntknowsomethingbig\$ ]
[.wsomethingbig\$ ]
[.methingbig\$ ]
] [.n [.tknowsomethingbig\$ ]
[.owsomethingbig\$ ]
[.gbig\$ ]
] [.t [.knowsomethingbig\$ ]
[.hingbig\$ ]
] [.knowsomethingbig\$ ]
[.wsomethingbig\$ ]
[.somethingbig\$ ]
[.methingbig\$ ]
[.ethingbig\$ ]
[.hingbig\$ ]
[.g [.big\$ ]
[.\$ ]
] [.big\$ ]
]
\end{center}
\end{document}
Todo lo que consigo es esto
Dependiendo de la entrada, puedo obtener la última rama o simplemente una palabra como en este caso.
Supongo que el código es sintácticamente correcto y que el problema radica en que es demasiado grande y el látex se confunde. Pero que yo sepa, podría ser cualquier cosa.
Respuesta1
El problema como explican los comentarios es queqtreeNo puede manejar más de 14 sucursales. La solución fue simplemente utilizar el bosque. Con él ahora puedo dibujar árboles más grandes como este:
Que proviene de:
\documentclass[border=1mm]{standalone}
\usepackage{graphics}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
calign=center,
grow'=east,
parent anchor=east, child anchor=west,
text height=1.4ex, text depth=0.2ex
}
[. [.\$GATTACATAGCTGATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.G [.A [.T [.TACATAGCTGATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.G [.C [.TAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] ] [.AGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.CTGS\$ ]
] ] [.C [.T [.GATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.A [.G [.C [.T [.A [.TATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GTCGTAGCTATGATCTGS\$ ]
] ] ] [.TCGTAGCTATGATCTGS\$ ]
] [.T [.ATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GATCTGS\$ ]
] ] [.CGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] [.G [.CTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.ATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] ] [.T [.C [.G [.ATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.TAGCTATGATCTGS\$ ]
] ] [.AGCTATGATCTGS\$ ]
] [.S\$ ]
] [.A [.T [.TACATAGCTGATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.A [.G [.C [.T [.GATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.AGCTAGTCGTAGCTATGATCTGS\$ ]
] ] ] [.TCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] [.G [.C [.TAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] [.ATCTGS\$ ]
] [.C [.GTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.TGS\$ ]
] ] [.CATAGCTGATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.G [.C [.T [.GATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.A [.T [.ATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GATCTGS\$ ]
] [.G [.CTAGTCGTAGCTATGATCTGS\$ ]
[.TCGTAGCTATGATCTGS\$ ]
] ] ] ] [.TCGTAGCTATGATCTGS\$ ]
] ] [.T [.TACATAGCTGATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.A [.CATAGCTGATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.G [.C [.T [.GATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.A [.T [.ATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GATCTGS\$ ]
] [.G [.CTAGTCGTAGCTATGATCTGS\$ ]
[.TCGTAGCTATGATCTGS\$ ]
] ] ] ] [.TCGTAGCTATGATCTGS\$ ]
] [.T [.ATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.CGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GATCTGS\$ ]
] ] [.G [.A [.T [.GCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.CTGS\$ ]
] ] [.C [.TAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] [.S\$ ]
] [.C [.G [.T [.CGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.AGCTATGATCTGS\$ ]
] [.ATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.CGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] [.TGS\$ ]
] ] [.C [.ATAGCTGATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.T [.G [.ATGCTAGCTATATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.S\$ ]
] [.A [.G [.C [.T [.A [.TATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GTCGTAGCTATGATCTGS\$ ]
] ] ] [.TCGTAGCTATGATCTGS\$ ]
] [.T [.ATCGTCGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GATCTGS\$ ]
] ] [.CGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] [.G [.T [.CGATGCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.AGCTATGATCTGS\$ ]
] [.A [.T [.GCGCTCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.AGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] ] [.C [.TCGCGATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
[.GATAGCTAGCTAGTCGTAGCTATGATCTGS\$ ]
] ] ] [.S\$ ]
]
\end{forest}
\end{document}
La sintaxis forest
difiere de qtree
, por lo que cada nodo tiene un '.' adicional. personaje en este ejemplo. Tenga esto en cuenta si está utilizando esta respuesta como ejemplo sobre cómo construir árboles usando el bosque :)