如何将 \sim 放置在 \equiv 之上,类似于 \simeq 和 \cong?

如何将 \sim 放置在 \equiv 之上,类似于 \simeq 和 \cong?

正如问题所述,我想要一个类似于 \simeq 和 \cong 命令的 \equiv 上的波浪符号。更具体地说,波浪符号需要更靠近符号\equiv

我尝试过使用stackrelDeclareMathOperator*但他们把它放得太高了。

我甚至尝试将其放在\equiv数学运算符的空白处,例如

\DeclareMathOperator*{\eq}{\equiv}
\newcommand{\poly}{\eq^{\stackrel{\sim}{\hspace*{2em}}}}

但还是没有运气。

有什么建议吗?谢谢。

答案1

\cong对代码进行简单的修改fontmath.ltx

\DeclareRobustCommand
  \cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
\def\@vereq#1#2{\lower.5\p@\vbox{\lineskiplimit\maxdimen\lineskip-.5\p@
    \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}

这是新的\ccong(根据您的喜好更改名称):

\documentclass{article}

\makeatletter
\DeclareRobustCommand{\ccong}{\mathrel{\mathpalette\@verequiv\sim}}
\newcommand{\@verequiv}[2]{%
  \lower.5\p@\vbox{
    \lineskiplimit\maxdimen
    \lineskip-.5\p@
    \ialign{%
      $\m@th#1\hfil##\hfil$\crcr
      #2\crcr
      \equiv\crcr
    }%
  }%
}
\makeatother

\begin{document}

$A=B\equiv C\cong D\ccong E$

\end{document}

在此处输入图片描述

答案2

这里我使用了一个堆栈。

\documentclass{article}
\usepackage{amssymb,amsmath,stackengine}
\DeclareMathOperator*{\eq}{\equiv}
\newcommand{\poly}{\mathrel{\ensurestackMath{%
  \stackengine{-.5pt}{\equiv}{\sim}{O}{c}{F}{F}{S}}}}
\begin{document}
$A \equiv A \simeq A \cong A \poly A$
\end{document}

在此处输入图片描述

编辑:这是一个适用于较小数学风格的版本

\documentclass{article}
\usepackage{amssymb,amsmath,stackengine,scalerel}
\DeclareMathOperator*{\eq}{\equiv}
\newcommand{\poly}{\mathrel{\ThisStyle{\ensurestackMath{%
  \stackengine{-.5\LMpt}{\SavedStyle\equiv}{\SavedStyle\sim}{O}{c}{F}{F}{S}}}}}
\begin{document}
$A \equiv A \simeq A \cong A \poly A$\par
$\scriptstyle A \equiv A \simeq A \cong A \poly A$\par
$\scriptscriptstyle A \equiv A \simeq A \cong A \poly A$\par
\end{document}

在此处输入图片描述

相关内容