将枚举项与 tikzpicture 的顶部对齐

将枚举项与 tikzpicture 的顶部对齐

我使用 pgf/tikz 绘制了一棵树,并试图将其放在枚举列表中。我的完整代码片段如下:

\subsection*{Problem 2}
\begin{enumerate}[1)]
\item Max heap
\item
\begin{tikzpicture}[level/.style={sibling distance=50mm/#1}]
\node [circle,draw] (z){98}
  child {node [circle,draw] (a) {80}
    child {node [circle,draw] (b) {23}
      child {node [circle,draw] (c) {18}}
      child {node [circle,draw] (d) {21}}
    }
    child {node [circle,draw] (g) {48}}
  }
  child {node [circle,draw] (j) {79}
    child {node [circle,draw] (k) {76}}
    child {node [circle,draw] (l) {29}}
};
\end{tikzpicture}
\end{enumerate}

我的问题是列表编号与 tikzpicture 的底部对齐。我该如何将其与 tikzpicture 的顶部对齐?

答案1

以下是一种方法:

\item \leavevmode\vadjust{\vspace{-\baselineskip}}\newline
\begin{tikzpicture}

答案2

只需添加baseline

\begin{tikzpicture}[level/.style={sibling distance=50mm/#1},baseline]

没有任何参数,baseline取值0pt,这很好,因为您的树向下生长。因此 y=0 位于顶部。

答案3

tikzpicture您必须明确确定环境相对于当前线的基线。请参阅下面的示例。

\documentclass{article}
\usepackage{tikz}

\begin{document}
  \begin{enumerate}
    \item Max heap
    \item
      \begin{tikzpicture}[%
        baseline=(current bounding box.north),
        level/.style={sibling distance=50mm/#1}
      ]
        \node [circle,draw] (z){98}
        child {node [circle,draw] (a) {80}
          child {node [circle,draw] (b) {23}
            child {node [circle,draw] (c) {18}}
            child {node [circle,draw] (d) {21}}
          }
          child {node [circle,draw] (g) {48}}
        }
        child {node [circle,draw] (j) {79}
          child {node [circle,draw] (k) {76}}
            child {node [circle,draw] (l) {29}}
        };
      \end{tikzpicture}
  \end{enumerate}
\end{document}

答案4

提高数字的一个简单方法(这也是我经常做的)是在~\\后面添加\item

相关内容