我引入了以下宏
\newcommand{\malcev}{\mathop{\text{\textcircled{\scriptsize M}}}\nolimits}
\newcommand{\imalcev}{\mathop{\text{\textcircled{\tiny M}}}\nolimits}
代码
\[
\mathbf{V} \malcev \mathbf{W} \qquad F_{\mathbf{V} \imalcev \mathbf{W}} \qquad S^{\mathbf{V} \imalcev \mathbf{W}}
\]
现在产生了可接受的结果
然而,这肯定不是一个干净的解决方案,因为我必须根据字体大小手动在 \malcev 和 \imalcev 之间切换(更不用说可能的双上标)。我正在寻找一个更好的解决方案(如果可能的话避免使用 tikz)。我查看了以下问题
这些当然是相关的,但我无法从他们的回答中得到我想要的确切信息。其中一个困难是我在脚本大小的字母上使用 \textcircled(否则我的符号会太大),但这可能不是一个好主意。任何帮助都将不胜感激。
答案1
在这种情况下直接使用\mathchoice
似乎更好:
\documentclass{article}
\usepackage{fix-cm} % make font arbitrarily scalable
\usepackage{amsmath}
\newcommand{\malcev}{\mathbin{
\mathchoice
{\mbox{\normalsize\textcircled{\scriptsize M}}}
{\mbox{\normalsize\textcircled{\scriptsize M}}}
{\mbox{\scriptsize\textcircled{\tiny M}}}
{\mbox{\tiny\textcircled{\fontsize{3.5}{3.5}\selectfont M}}}
}
}
\begin{document}
\[
\mathbf{V} \malcev \mathbf{W} \qquad
F_{\mathbf{V} \malcev \mathbf{W}} \qquad
S^{\mathbf{V} \malcev \mathbf{W}^{\malcev}}
\]
\end{document}