如何调整 \cong、\simeq 和 = 的高度使其相同?

如何调整 \cong、\simeq 和 = 的高度使其相同?

好吧,如果你写下这三个符号

\cong \simeq =

彼此相邻(假设你在一条线上证明两个事物是等价的,但周围有一些相等和同构)高度不匹配,看起来很丑。我希望每条线的底部水平线都在同一高度。

我已经部分解决了这个问题,但我并不满意。以下最小示例使\cong\simeq大致处于相同的高度。

\documentclass{amsart}

\let\oldsimeq\simeq
\renewcommand{\simeq}{\mathrel{\raisebox{.456mm}{$\oldsimeq$}}}

\begin{document}

{\huge \[=\cong\simeq\cong=\simeq=\cong\simeq\cong=\]}

\end{document}

有没有办法让它们确切地在同一高度?也许有一个聪明的方法可以做到这一点。

答案1

提升量应取决于某些字体参数;通过目视检查,我发现\fontdimen22与当前样式相关的 40% 是好的。对于对齐\cong,删除 .5pt 降低。

\documentclass{amsart}
\usepackage{etoolbox}

\makeatletter
% fix \simeq
% (1) save a copy of it
\mathchardef\latex@simeq\simeq
% (2) undefine \simeq
\let\simeq\relax
% (3) redefine it
\DeclareRobustCommand{\simeq}{\mathrel{\mathpalette\new@simeq\relax}}
\newcommand{\new@simeq}[2]{%
  \raisebox{\simeq@raise{#1}}{$\m@th#1\latex@simeq$}%
}
% (4) the helper command
\newcommand{\simeq@raise}[1]{%
  \ifx#1\displaystyle .4\fontdimen22\textfont2\fi
  \ifx#1\textstyle .4\fontdimen22\textfont2\fi
  \ifx#1\scriptstyle .4\fontdimen22\scriptfont2\fi
  \ifx#1\scriptscriptstyle .4\fontdimen22\scriptscriptfont2\fi
}

% fix \cong
\patchcmd{\@vereq}{.5}{0}{}{}
\makeatother

\begin{document}

\[=\cong\simeq_{=\cong\simeq}\]

\end{document}

在此处输入图片描述

相关内容