程式碼

程式碼

我有一棵樹(請參閱範例),其第 1 級的文字未對齊,因為其中一個文字使用了一些帶有指數的數學表達式(即$\mathtt{int}^2$)。知道如何使位於樹同一層級的所有文字對齊嗎?

\documentclass{book}
\usepackage{tikz}
\begin{document}
{\tiny
\begin{tikzpicture}
\begin{scope}[level distance=6mm]
  \tikzstyle{level 1}=[sibling distance=8mm]
  \node (1){$\mathtt{atom}$}
    child {node (2){$\mathtt{atom}$}}
    child {node (3){$\mathtt{int}^2$}}
    child {node (4){$\mathtt{collection}$}
     child {node (5){$\mathtt{int}$}}};
\end{scope}
\end{tikzpicture}
}
\end{document}

答案1

您只需添加every node/.append style={anchor=base}即可使所有節點在其基點處對齊

程式碼

\documentclass{book}
\usepackage{tikz}
\begin{document}
{\tiny
\begin{tikzpicture}
\begin{scope}[level distance=6mm,every node/.append style={anchor=base}]
  \tikzstyle{level 1}=[sibling distance=8mm]
  \node (1){$\mathtt{atom}$}
    child {node (2){$\mathtt{atom}$}}
    child {node (3){$\mathtt{int}^2$}}
    child {node (4){$\mathtt{collection}$}
     child {node (5){$\mathtt{int}$}}};
\end{scope}
\end{tikzpicture}
}
\end{document}

輸出

在此輸入影像描述

答案2

使用anchor=base樹的鑰匙。

例子

\documentclass{book}
\usepackage{tikz}
\begin{document}
{\tiny
\begin{tikzpicture}
\begin{scope}[level distance=6mm, anchor=base]
  \tikzstyle{level 1}=[sibling distance=8mm]
  \node (1){$\mathtt{atom}$}
    child {node (2){$\mathtt{atom}$}}
    child {node (3){$\mathtt{int}^2$}}
    child {node (4){$\mathtt{collection}$}
     child {node (5){$\mathtt{int}$}}};
\end{scope}
\end{tikzpicture}
}
\end{document}

結果

在此輸入影像描述

相關內容