考虑以下:
\documentclass{article}
\usepackage{tikz}
\begin{document}
This is a
\begin{tikzpicture}
\node[draw, rectangle, align=left] {%
And here \\[.3em]
is
\tikz \node[draw, rectangle, align=center] {a \\ nested};
};
\end{tikzpicture}
one.
\end{document}
这产生了
我希望放置节点,使得外部节点垂直居中,外部文本tikzpicture
,内部节点垂直居中,外部节点的“is”行。
答案1
baseline=(current bounding box.center)
将选项添加到tikzpicture
and\tikz
命令中。这会将图表的基线置于其中心,并将与其他基线垂直对齐(!)。
但是,如果您想将其与文本的垂直中心对齐,即“is”的中心,这样看起来可能更好,请使用
baseline={([yshift=-1ex]current bounding box.center)}
。根据您的喜好调整值。也许.8ex
可能更好(大写字母约为 1.6ex)。
\documentclass{article}
\usepackage{tikz}
\begin{document}
This is a
\begin{tikzpicture}[baseline={([yshift=-.8ex]current bounding box.center)}]
\node[draw, rectangle, align=left] {%
And here \\[.3em]
is
\tikz [baseline={([yshift=-.8ex]current bounding box.center)}]
\node[draw, rectangle, align=center] {a \\ nested};
};
\end{tikzpicture}
one.
\end{document}
其他一些提示:
一般来说,您可以使用\raisebox{<length>}{<content>}
来升高或降低某些材料。然后您可以使用\height
、\depth
和\width
来\totalheight
引用内容的原始尺寸。使用\dimexpr
进行数学运算:
\raisebox{\dimexpr-.5\height+.5\depth+.8ex\relax}{<content>}
还有\vcenter{...}
将事物垂直居中的方法,但它旨在用于数学模式。