在方程环境中对齐 TikZ 节点

在方程环境中对齐 TikZ 节点

我正在尝试将一个TikZ节点插入到等式中,但是遇到了一些问题:

  1. = 符号未在圆圈内垂直居中
  2. 圆与公式没有垂直对齐。我想获得与第一个方程相同的对齐,但使用该baseline选项也失败了
  3. 等号必须与)第一个等式中的距离相同

解决方案

  1. 未解问题
  2. 在评论中解决使用baseline=-\the\dimexpr\fontdimen22\textfont2\relax
  3. 未解问题

\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

对于像垂直对齐这样的单个符号,=使用baselineanchor=base这意味着节点的基线将垂直对齐在= 0 而baseline隐式baseline=0pt)。

尽管埃格尔公式在这里用来获取=垂直居中的节点(TeX 的原始盒子并不对称)。

然后将一个overlayed 圆放置在.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}

输出

在此处输入图片描述

相关内容