作为回答如何制作长身份标志?@egreg 提供了解决方案:
\documentclass{article}
\usepackage{amsmath,color}
\makeatletter
\newlength{\longeq@wd}
\newcommand{\longeq}[1][2]{\mathrel{\mathpalette\longeq@{#1}}}
\newcommand{\longeq@}[2]{%
\begingroup
\settowidth\longeq@wd{$\m@th#1=$}%
\makebox[#2\longeq@wd][s]{%
$\m@th#1\mspace{1mu}$%
\ifdim#2pt<2pt
$\m@th#1{=}\hss{=}$%
\else
$\m@th#1{=}\kern-0.5\longeq@wd\cleaders\longeqfill@{#1}\hfil\kern-0.5\longeq@wd{=}$%
\fi
$\m@th#1\mspace{1mu}$%
}%
\endgroup
}
\newcommand{\longeqfill@}[1]{\hbox{$\m@th#1\mspace{-3mu}{=}\mspace{-3mu}$}}
\makeatother
\begin{document}
\makeatletter
$a==b$
$a\longeq b$
$a\longeq[1.25]b$
$a\longeq[1.5]b$
$a\longeq[1.75]b$
$a\longeq[3]b$
\end{document}
我怎样才能否定像 这样的长标识符号$\neq$
?
答案1
使用centernot
:
\documentclass[draft]{article}
\usepackage{amsmath,centernot}
\makeatletter
\newlength{\longeq@wd}
\newcommand{\nlongeq}[1][2]{\centernot{\longeq[#1]}}
\newcommand{\longeq}[1][2]{\mathrel{\mathpalette\longeq@{#1}}}
\newcommand{\longeq@}[2]{%
\begingroup
\settowidth\longeq@wd{$\m@th#1=$}%
\makebox[#2\longeq@wd][s]{%
$\m@th#1\mspace{1mu}$%
\ifdim#2pt<2pt
$\m@th#1{=}\hss{=}$%
\else
$\m@th#1{=}\kern-0.5\longeq@wd\cleaders\longeqfill@{#1}\hfil\kern-0.5\longeq@wd{=}$%
\fi
$\m@th#1\mspace{1mu}$%
}%
\endgroup
}
\newcommand{\longeqfill@}[1]{\hbox{$\m@th#1\mspace{-3mu}{=}\mspace{-3mu}$}}
\makeatother
\begin{document}
\makeatletter
$a==b$
$a\longeq b\nlongeq c$
$a\longeq[1.25]b\nlongeq[1.25] c$
$a\longeq[1.5]b\nlongeq[1.5] c$
$a\longeq[1.75]b\nlongeq[1.75] c$
$a\longeq[3]b\nlongeq[3] c$
\end{document}
答案2
采用所引用答案中的替代解决方案,如果最终=
在构造中使用奇数个符号,则只需应用\not
中间的符号即可。
\documentclass{article}
\newcommand\longeq{\mathrel{{=}\mkern-4mu{=}\mkern-4mu{=}}}
\newcommand\nlongeq{\mathrel{{=}\mkern-4mu{\not=}\mkern-4mu{=}}}
\begin{document}
$x\longeq y \nlongeq z$
\end{document}
Werner 在下面的评论中指出了一种更简单的语法
\newcommand\longeq{=\joinrel=\joinrel=}
\newcommand\nlongeq{=\joinrel\not=\joinrel=}
但是,\joinrel
(连接关系)宏使用3mu
移位来实现覆盖,而我最初的定义选择将移位设为,4mu
相比之下,在我的原始情况下,总长度略短。
如果发现它太宽,则将 的负性调高\mkern
。这里是 -10mu(之前是 -4mu):