答案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}