在 tikz 环境中对齐项目符号

在 tikz 环境中对齐项目符号

当将tikzpicture环境放入环境时itemize,项目符号与tikz图片未正确对齐。在这种情况下,“正确”意味着项目符号应相对于图片垂直居中。

我之前刚刚调整了baseline手动调整以获得我想要的,但调整将取决于我使用的字体等。我想避免使用神奇数字在我的基线调整中,这样它就会自动调整到我使用的字体。有什么建议可以实现吗?

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{itemize}
    \item
        \begin{tikzpicture}%[baseline = -2.5pt] % magic number tweak
            \draw [very thick, ->] (0,0) -- (2,0);
            \node[left] at (0,0) {XX};
            \node[right] at (2,0) {YY};
        \end{tikzpicture}
\end{itemize}

\end{document}

enter image description here

答案1

最好将其与节点中已知的自然点对齐:

Sample output

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{itemize}
\item
  \begin{tikzpicture}[baseline=(A.base)] % magic number tweak
    \draw [very thick, ->] (0,0) -- (2,0);
    \node[left] at (0,0) (A) {XX};
    \node[right] at (2,0) {YY};
  \end{tikzpicture}
\item \( X \)
\end{itemize}

\end{document}

如果您想修复水平对齐(您没有询问但 Barbara Beeton 询问了),那么您将需要更加努力。

Sample with horizontal spacing

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{itemize}
\item
  \begin{tikzpicture}[baseline=(A.base)] % magic number tweak
    \node at (0,0) (A) {XX};
    \pgfkeysgetvalue{/pgf/inner xsep}{\myAxsep}
    \node at (2,0) (B) {YY};
    \pgfkeysgetvalue{/pgf/inner xsep}{\myBxsep}
    \draw [very thick, ->] (A) -- (B);
    \pgfresetboundingbox
    \useasboundingbox ($(A.south west)+(\myAxsep,0)$) rectangle
    ($(B.north east)-(\myBxsep,0)$);
  \end{tikzpicture}
  and some text.
\item \( X \)
\end{itemize}

\end{document}

我可能过于谨慎地检查每个框后的 x 分隔值,但这在更复杂的代码中可能是必要的。

相关内容