使用 Tikz 进行连接

使用 Tikz 进行连接

我怎样才能正确设计一个符号,例如\oiint使用 Tikz?

我在网上发现了类似的东西

\usepackage{tikz}
\usetikzlibrary{shapes}

\begin{document}

\[
\oint\iint
{\tikz \node[draw, ellipse, inner xsep=-3.6pt, inner ysep=-9pt] {$\displaystyle\iint$};}
\]

\end{document}

哪个输出

在此处输入图片描述

并且存在垂直错位,无法使用下标。我该如何修复这个问题?此外,我该如何更改椭圆的厚度?

答案1

可能还有更好的方法。

\documentclass{article}
\usepackage{amsmath}
\usepackage{esint}

\usepackage{tikz}
\usetikzlibrary{shapes}

\DeclareRobustCommand{\oiint}{%
  \mathop{}\!%
  \vcenter{\hbox{%
    \makebox[0pt][l]{%
      \sbox0{$\displaystyle\phantom{\iint}$}%
      \makebox[\wd0]{%
        \begin{tikzpicture}
          \node[
            line width=0.5pt,
            draw,
            ellipse,
            inner xsep=-0.15ex,
            inner ysep=-0.15ex,
          ] {\phantom{+\,}};
        \end{tikzpicture}%
      }%
    }%
  }}\!%
  \iint
}

\begin{document}

\[
\oint_{X} \quad \iint_X \quad \oiint_X
\]

\[
X\iint X
\]

\[
X\oiint X
\]

\end{document}

这个想法是插入一个空的 mathop 以便在符号前获得正确的间距;然后我们插入一个负的细空间,因为我们添加了一个普通符号,即设置为零宽度框的椭圆,该框内部有一个与积分一样宽的框,包含椭圆。接下来是另一个负的细空间,以取消插入在 前面的那个\iint。因此限制将附加到\iint

在此处输入图片描述

答案2

不使用 TikZ 的解决方案可以是:

\def\circle{.5 0 m .5 .276 .276 .5 0 .5 c -.276 .5 -.5 .276 -.5 0 c
                  -.5 -.276 -.276 -.5 0 -.5 c .276 -.5 .5 -.276 .5 0 c }
\protected\def\oiint{%
  \mathop{\vcenter{
     \pdfliteral{q 10 0 0 6 7 0 cm .06 w \circle S Q}
       }}\!\iint
}

test:
$$
  \oint, \iint_X, \oiint_X
$$

这是 pdfTeX 原语。您可以在 XeTeX 或LuaTeX 中\pdfliteral定义 。\def\pdfliteral#1{\special{pdf:literal #1}}\def\pdfliteral{\pdfextension literal}

相关内容