正如标题所说,我的问题是:“为什么作者不断定义自己的 \gtrsim 和 \lesssim 命令?”
这种事情经常发生。以下是我最近遇到的情况:
\newcommand{\gsim}{\raisebox{-0.13cm}{~\shortstack{$>$ \\[-0.07cm]
$\sim$}}~}
\newcommand{\lsim}{\raisebox{-0.13cm}{~\shortstack{$<$ \\[-0.07cm]
$\sim$}}~}
和
\def\gsim{\stacksymbols{>}{\sim}{2.5}{.2}}
\def\lsim{\stacksymbols{<}{\sim}{2.5}{.2}}
编辑。这里是另一个“新鲜”的(我真的很想收集它们全部......):
\newcommand{\lsim}{{\;\raise0.3ex\hbox{$<$\kern-0.75em\raise-1.1ex\hbox{$\sim$}}\;}}
\newcommand{\gsim}{{\;\raise0.3ex\hbox{$>$\kern-0.75em\raise-1.1ex\hbox{$\sim$}}\;}}
当然,补救措施是:
\newcommand{\gsim}{\gtrsim}
作为埃格尔建议。
答案1
我认为,主要原因是惯性。作者\gsim
在三十多年前就学会了如何用那种(搞笑的)方式制作,或者从一些起源于 LaTeX 早期的模板中借用了它。该amssymb
软件包自 1994 年以来基本上一直处于当前形式,但符号已经可用好几年了,甚至对于纯 TeX(或 AMS-TeX)也是如此。
该宏\shortstack
是为picture
模式而设计的,但实际上并不适用于任何据我所知,这是真实的应用。
您所展示的定义在很多方面都是错误的:
- 间距与关系符号不一样;
- 它不会改变下标/上标的大小;
- -0.07cm 的垂直调整是“通过眼睛”计算的,并且不会随着主字体大小而缩放。
以下是一个视觉比较:
\documentclass{article}
\usepackage{amssymb}
\newcommand{\gsim}{\raisebox{-0.13cm}{~\shortstack{$>$ \\[-0.07cm]
$\sim$}}~}
\begin{document}
$a\gtrsim b_{\gtrsim}$
$a\gsim b_{\gsim}$
\end{document}
(第二行)的输出\gsim
看起来还不错,但是间距很奇怪,而且下标明显错误。
再做一些工作就可以获得稍微好一点的结果:
\documentclass{article}
\usepackage{amssymb}
\makeatletter
\newcommand{\undersim}[1]{\mathrel{\mathpalette\@undersim{#1}}}
\newcommand{\@undersim}[2]{%
\vcenter{%
\ialign{%
##\cr
$\m@th#1#2$\cr
\noalign{\nointerlineskip\kern.2ex}
$\m@th#1\sim$\cr
\noalign{\kern-.4ex}
}%
}%
}
\newcommand{\gsim}{\undersim{>}}
\newcommand{\lsim}{\undersim{<}}
\makeatother
\begin{document}
$a\gtrsim b_{\gtrsim}$
$a\gsim b_{\gsim}$
\end{document}
然而,这种技巧只应用于没有预先组合好的符号的情况(或者在数学字体太多的紧张情况下)。
在你的情况下,不要害怕删除愚蠢的定义,并将它们改为
\newcommand{\gsim}{\gtrsim}
\newcommand{\lsim}{\lesssim}
随着\usepackage{amssymb}
。