答案1
您可以使用引线,但当所需长度较小时需小心。
\documentclass{article}
\usepackage{graphicx}
\makeatletter
\newcommand{\shorteq}{\mathrel{\mkern0.2mu\mathpalette\shorteq@\relax\mkern0.2mu}}
\newcommand{\shorteq@}[2]{\scalebox{0.5}[1]{$\m@th#1=$}}
\newcommand{\longeq}[1]{\mathrel{\mathpalette\longeq@{#1}}}
\newcommand{\longeq@}[2]{%
\begingroup
\sbox\z@{$\m@th#1=$}%
\ifdim#2<\wd\z@
\resizebox{#2}{\height}{\box\z@}%
\else
\ifdim#2<3\wd\z@
\hbox to #2{$\m@th#1=\hss=\hss=\hss=$}%
\else
\hbox to #2{$\m@th#1=\cleaders\hbox to 0.2\wd\z@{\hss$#1=$\hss}\hfil=$}%
\fi
\fi
\endgroup
}
\makeatother
\begin{document}
$A\shorteq B$ $\scriptstyle A\shorteq B$
$A\longeq{2em}B$ $\scriptstyle A\longeq{1.6em}B$
\sbox0{$\longeq{12pt}$}\the\wd0
$A\longeq{2pt}B$\par
$A\longeq{4pt}B$\par
$A\longeq{6pt}B$\par
$A\longeq{8pt}B$\par
$A\longeq{10pt}B$\par
$A\longeq{12pt}B$\par
$A\longeq{14pt}B$\par
$A\longeq{16pt}B$\par
$A\longeq{18pt}B$\par
$A\longeq{20pt}B$\par
$A\longeq{22pt}B$\par
$A\longeq{24pt}B$\par
$A\longeq{26pt}B$\par
$A\longeq{28pt}B$\par
$A\longeq{30pt}B$\par
$A\longeq{32pt}B$\par
$A\longeq{34pt}B$\par
$A\longeq{36pt}B$\par
$A\longeq{38pt}B$\par
$A\longeq{40pt}B$\par
\end{document}
如果长度减少,则末端弯曲度较小,并且 Computer Modern 字体具有圆形帽。
\shorteq
将宽度减少一半;\longeq
需要长度。
答案2
您可以尝试合并两个等号:
$A=\joinrel=B$
或者你可以使用领导者来扩展这一点:
\def\varequals#1{\mathrel{\leaders\hbox to3pt{$=$\hss}\hskip#1=}}
$A\varequals{10pt}B$
这个宏的使用\varequals{dimen}
大致dimen
对应于您希望等号具有的额外宽度。
但是这两种方法都不允许你缩短等号。我能想到的一个解决方案是使用我的包pdfMsym。该解决方案还不存在\leaders
解决方案的缺点,即中心可能比长等号的边缘更粗。
% In your preamble
\input pdfmsym
\pdfmsymsetscalefactor{10} % Change 10 to be the font size you're using
\makeatletter
\def\varequals#1{\@Arrow@type\@Linecap\@Linecap{#1}{1}}
\makeatother
$A\varequals{10pt}B$
$A\varequals{3pt}B$
\@Arrow@type
创建一个双描边箭头,其参数依次为:左线头和右线头、长度(相对于当前数学样式)以及笔划之间的高度差。\@Linecap
只是一个双描边圆角线头,其高度差为 1。
该\@Arrow@type
宏没有记录(但应该有)。