我正在尝试将一个TikZ
节点插入到等式中,但是遇到了一些问题:
- = 符号未在圆圈内垂直居中
- 圆与公式没有垂直对齐。我想获得与第一个方程相同的对齐,但使用该
baseline
选项也失败了 - 等号必须与
)
第一个等式中的距离相同
解决方案
- 未解问题
- 在评论中解决使用
baseline=-\the\dimexpr\fontdimen22\textfont2\relax
- 未解问题
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand{\mathnodebase}{%
\tikz[inner sep = 0pt,baseline]{\node[circle,draw=black] (1) {$=$};}}
\newcommand{\mathnode}{%
\tikz[inner sep = 0pt]{\node[circle,draw=black] (1) {$=$};}}
\begin{document}
\begin{equation}
\prod_{z^n=-1}(w_1(z)^n+1) =
\end{equation}
\begin{equation}
\prod_{z^n=-1}(w_1(z)^n+1) \mathnodebase
\end{equation}
\begin{equation}
\prod_{z^n=-1}(w_1(z)^n+1) \mathnode
\end{equation}
\end{document}
答案1
对于像垂直对齐这样的单个符号,=
使用baseline
和anchor=base
这意味着节点的基线将垂直对齐在是= 0 而baseline
隐式baseline=0pt
)。
尽管埃格尔的公式在这里用来获取=
垂直居中的节点(TeX 的原始盒子并不对称)。
然后将一个overlay
ed 圆放置在.center
该节点的 处。该overlay
选项将圆从该 TikZ 图片的边界框中取出,这样\mathrel
它就像单个 一样工作=
。
圆的半径可以随意调整。
代码
\documentclass{article}
\usepackage{amsmath,tikz}
\newcommand{\tikzeq}{%
\mathrel{%
\tikz[baseline]{
\node[inner sep=+0pt, outer sep=+0pt, anchor=base, text depth=+0pt, text height=\the\dimexpr2\fontdimen22\textfont2\relax, name=tikz@equal] {${=}$};
\draw[overlay] ([email protected]) circle [radius=+1ex];
}%
}%
}
\begin{document}
\[ \prod_{z^n=-1}(w_1(z)^n+1) = \]
\[ \prod_{z^n=-1}(w_1(z)^n+1) \tikzeq \]
\[ a=b \tikzeq c = \tikzeq \]
\begin{gather} a = b \\ a \tikzeq b \end{gather}
\end{document}