当将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}
答案1
最好将其与节点中已知的自然点对齐:
\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 询问了),那么您将需要更加努力。
\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 分隔值,但这在更复杂的代码中可能是必要的。