A maior parte da árvore desaparece quando é muito grande

A maior parte da árvore desaparece quando é muito grande

Estou tentando desenhar árvores de sufixos em látex para um relatório. Como estou programando árvores, apenas as imprimo no formato qtree do meu código para não precisar me preocupar em criá-las manualmente.

Para árvores pequenas, isso funciona muito bem. (O exemplo usual de "banana" chegando)

\documentclass{article}
\usepackage{graphics}
\usepackage{qtree}

\begin{document}
    \begin{center}
        \Tree[.  [.\$ ]
        [.banana\$ ]
        [.a [.n [.a [.na\$ ]
        [.\$ ]
        ]  ] [.\$ ]
        ] [.n [.a [.na\$ ]
        [.\$ ]
        ]  ]  ]
    \end{center}
\end{document}

Árvore de sufixo para $banana$

Mas se eu quiser desenhar uma árvore maior, como "idontknowsomethingbig" eu uso o mesmo processo:

\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}

Tudo que eu consigo é isso

árvore quebrada

Dependendo da entrada posso obter o último ramo ou apenas uma palavra como neste caso.

Meu palpite é que o código está sintaticamente correto e que o problema está no fato de ele ser muito grande e o látex ficar confuso com ele. Mas afaik pode ser qualquer coisa.

Responder1

O problema, conforme explicado nos comentários, é queqtreenão pode lidar com mais de 14 filiais. A solução foi simplesmente usar a floresta. Com ele agora posso desenhar árvores maiores como esta:

Grande árvore genômica aleatória

Que vem 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}

A sintaxe forestdifere de qtreeentão cada nó possui um '.' extra. personagem neste exemplo. Tenha isso em mente se você estiver usando esta resposta como exemplo de como construir árvores usando florestas :)

informação relacionada