ツリーのノードサイズを変更する

ツリーのノードサイズを変更する

私にはこの木があります:

ここに画像の説明を入力してください

これは次のコードで作成されました:

\begin{figure}[h]
        \centering
        \begin{tikzpicture}
            \node[circle,draw]{}
            child{
                node[circle,draw]{a}
            }
            child[missing]{};
        \end{tikzpicture}
    \end{figure}

ルート サークルのサイズを大きくして、空の場合でも下部のサークルと同じように見えるようにするにはどうすればよいでしょうか。または、これらのツリーを作成するためのより良い方法はありますか。

答え1

パッケージを使用するとforest:

\documentclass[margin=3mm]{standalone}
\usepackage{forest}

\begin{document}
    \begin{forest}
for tree = {circle,
            draw,
            minimum size=1.1em,
            inner sep=2pt,
            font=\small,
    l sep=9mm,
    s sep=6mm
            }
[
    [a]
    [, coordinate, no edge]
]   
    \end{forest}
\end{document}

ここに画像の説明を入力してください

答え2

ツリー ノードのサイズを最小値に定義するだけで済みます。ノードの大部分も円として描画される可能性があり、このようなツリーが複数ある可能性があるため、これらすべてのパラメーターを含む再利用のためのグローバル スタイルを作成するのが合理的です。

たくさんのツリーを描画する場合は、 に切り替えることを強くお勧めしますforest。基本的な TikZ ツリー描画ツールは、構文が非常に扱いにくく、自動ノード パッキングも行われないため、あまり使いやすくありません。

\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\tikzset{my tree/.style={every node/.style={draw,circle,minimum size=1.5em}}}\begin{document}
        \begin{tikzpicture}[my tree]
            \node{}
            child{
                node{a}
            }
            child[missing]{};
        \end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

答え3

TeX.SE コミュニティへようこそ。 高速な解決策として、\node[circle,draw]{...}ファントム文字 を入力するハックを使用します: \phantom{\small a}

ここに画像の説明を入力してください

\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usepackage{graphicx}

\begin{document}
\begin{figure}[h]
        \centering
        \begin{tikzpicture}
            \node[circle,draw]{\phantom{\small a}}
            child{
                node[circle,draw]{a}
            }
            child[missing]{};
        \end{tikzpicture}
    \end{figure}
\end{document}

関連情報