木は大きくなりすぎるとほとんど消えてしまう

木は大きくなりすぎるとほとんど消えてしまう

レポート用に LaTeX で接尾辞ツリーを描画しようとしています。ツリーをプログラミングしているので、手動で作成する手間を省くために、コードから qtree 形式でツリーを印刷するだけです。

小さな木の場合、これはうまく機能します。(いつもの「バナナ」の例が来ます)

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

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

$banana$ の接尾辞ツリー

しかし、「idontknowsomethingbig」のようなもっと大きなツリーを描きたい場合も、同じプロセスを使用します。

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

私が得たのはこれだけ

折れた木

入力に応じて、最後のブランチが取得される場合もあれば、この場合のように単語だけが取得される場合もあります。

私の推測では、コードは構文的には正しく、問題はコードが大きすぎて LaTeX が混乱していることにあります。しかし、私の知る限り、何でもあり得ます。

答え1

コメントで説明されている問題は、qツリー14 以上の枝は処理できません。解決策は、代わりに forest を使用することです。これにより、次のような大きな木を描画できるようになりました。

大きなランダムゲノムツリー

それは次のことから来ています:

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

の構文forestは と異なるqtreeため、この例ではすべてのノードに余分な「.」文字があります。この回答を forest を使用してツリーを構築する方法の例として使用している場合には、この点に留意してください :)

関連情報