长等号和小等号

长等号和小等号

我正在寻找一个大等号和一个小等号。

如果我们使用,\textdblhyphen我们会得到一个小的等号,但是我怎样才能简单地“缩小” LaTeX 中的通常 = 并“扩展”通常 = ,就像下面的图片一样?

谢谢!

在此处输入图片描述

答案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

这个宏的使用\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$

pdfmsym 变量

\@Arrow@type创建一个双描边箭头,其参数依次为:左线头和右线头、长度(相对于当前数学样式)以及笔划之间的高度差。\@Linecap只是一个双描边圆角线头,其高度差为 1。

\@Arrow@type宏没有记录(但应该有)。

相关内容