我试图让方程的数学部分以 tikz 图片为中心:
\begin{equation}
\mathcal{G} =
\begin{tikzpicture}[]
\tikzstyle{vertex}=[anchor=base,baseline,
circle,fill=black!25,minimum size=18pt,inner sep=2pt]
\node[vertex] (G1) at (0,0) {1};
\node[vertex] (G2) at (1,0) {2};
\node[vertex] (G3) at (1,1) {3};
\node[vertex] (G4) at (0,1) {4};
\draw (G1) -- (G2) -- (G3) -- (G4) -- (G1) -- cycle;
\end{tikzpicture}
\end{equation}
但相反,它将其放在了均匀的基线上:
我对 tikz 部分的尝试来自相关问题:
我想我误解了和之间的语法\tikz
\node
。我该如何更改才能对齐 tikz 图片而不调整原始坐标?\tikzpicture
\tikzstyle
答案1
您需要baseline
在 上使用tikzpicture
,而不是在节点上使用。正如 Tom Bombadil 在评论中提到的,您可以使用current bounding box.center
将 TikZ 图片的中心放在基线上。我还会添加一个yshift
使其围绕=
标志中间居中。-.5ex
似乎可以做到。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{equation}
\mathcal{G} =
\begin{tikzpicture}[baseline={([yshift=-.5ex]current bounding box.center)},vertex/.style={anchor=base,
circle,fill=black!25,minimum size=18pt,inner sep=2pt}]
\node[vertex] (G1) at (0,0) {1};
\node[vertex] (G2) at (1,0) {2};
\node[vertex] (G3) at (1,1) {3};
\node[vertex] (G4) at (0,1) {4};
\draw (G1) -- (G2) -- (G3) -- (G4) -- (G1) -- cycle;
\end{tikzpicture}
\end{equation}
\end{document}
答案2
您的设置有几个问题。
\tikzstyle
旨在成为声明全球的。这意味着它们就像是前导语句,您可以在其中初始化一些经常使用的样式。因此,您不应该将其放在 中\begin{tikzpicture}
。此外(正如 Martin 正确指出的那样),请改用\tikzset
或\pgfkeys
命令,它们更加一致)。\begin{tikzpicture}[<here>]
可以在图片片段中创建临时样式。baseline
是一种影响的风格tikzpicture
,因此仅有的用于\begin{tikzpicture}[baseline]
。
有关样式及其范围的参考,您可以查看我之前的一个回答:风格范围
好的,解决方案的快速解决方法如下:
\begin{equation}
\mathcal{G} =
\begin{tikzpicture}[baseline,vertex/.style={anchor=base,
circle,fill=black!25,minimum size=18pt,inner sep=2pt}]
\node[vertex] (G1) at (0,0) {1};
\node[vertex] (G2) at (1,0) {2};
\node[vertex] (G3) at (1,1) {3};
\node[vertex] (G4) at (0,1) {4};
\draw (G1) -- (G2) -- (G3) -- (G4) -- (G1) -- cycle;
\end{tikzpicture}
\end{equation}
得出的结果是:
即与包含 的圆圈对齐1
。
但是,如果您希望与结构的中心对齐,则应指定基线偏移tikzpicture
。 也就是说baseline=<length>
。
在您的情况下,可以使用库计算图形的中间calc
。 这里您需要意识到两件事:
将
baseline
线的基部与位置对齐。您宁愿与线的中间对齐。
这意味着您需要根据行的高度来计算偏移(即在偏移中包含文本高度)。
使用这种风格可以轻松完成:
baseline=($(G1.base)!.5!(G4.base)$)
这将产生: