好吧,如果你写下这三个符号
\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}