为了\vcenter
在 tikz 中伪造,我一直在使用baseline={([yshift=-.25em]current bounding box.center)}
。它似乎工作得很好,但不确定它是否严格等效(比如我不确定是否.25
完全相同,也不确定它是否适用于任何字体大小......)。我试过了\show\vcenter
(见日志),但它没有给出定义(或者它是一个单个宏定义)。
这是正确的做法吗?
梅威瑟:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\noindent ABC $\vcenter{\hbox{\begin{tikzpicture}[baseline={([yshift=-.27em]current bounding box.center)}]%
\node[inner sep=5mm,fill=green] at (0,0){n};%
\end{tikzpicture}}}$
$\begin{tikzpicture}[baseline={([yshift=-.25em]current bounding box.center)}]
\node[inner sep=5mm,fill=green] at (0,0){n};
\end{tikzpicture}= 42$
\end{document}
答案1
\show\vcenter
由于是 TeX 基元,因此不提供有用信息\vcenter
。在数学轴上垂直居中一个框,其高度由\fontdimen22
字体控制\fam=2
。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\newdimen\axisheight
\setbox0=\hbox{$a$\global\axisheight=\fontdimen22\textfont2}%
$
\hbox{X} % a normal X on the baseline
- % minus sign to show the math axis
\vcenter{\hbox{X}} % an X centred on the math axis
\begin{tikzpicture}[baseline={([yshift=-\axisheight]current bounding box.center)}]%
\node[inner sep=1mm,fill=green] at (0,0){X};
\end{tikzpicture}
$
\end{document}
(我对此几乎一无所知,tikz
所以我猜这就是您想要实现的一致。)