带有竖线的非等号 (≠)

带有竖线的非等号 (≠)

是否可以得到一个\neq带有竖线而不是斜线的“但是”?有些不等式运算符(例如 AMS 的不等式运算符)\gvertneqq具有这种“不等于”的特征,但必须将其与其他符号混合。

\documentclass[a5paper]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\begin{document}
\begin{align*}
a&\gvertneqq b\\
C&\neq \varnothing
\end{align*}
\end{document}

上述代码的结果

所以我基本上想要的是\gvertneqq上面的 > 下面的独立符号。特别是因为我不喜欢第二行中斜线的不同斜度,而且“≠∅”是一种相当常见的组合。

答案1

带垂直线的等号

垂直线|对我来说有点高。以下 的定义会\vneq降低垂直线的总高度以匹配 的总高度\neq。调整垂直高度不会改变水平方向的线条粗细。

  • \vneqxscale垂直线的最终宽度和高度可以通过重新定义宏和来微调\vneqyscale。默认值为1
  • \mathpalette允许符号自动调整大小。

示例文件:

\documentclass{article}

\usepackage{amssymb}% \varnothing

\usepackage{graphicx}% \resizebox
\makeatletter
\newcommand*{\vneq}{%
  \mathrel{%
    \mathpalette\@vneq{=}%
  }%
}
\newcommand*{\@vneq}[2]{%
  % #1: math style (\displaystyle, \textstyle, ...)
  % #2: symbol (=, ...)
  \sbox0{\raisebox{\depth}{$#1\neq$}}%
  \sbox2{\raisebox{\depth}{$#1|\m@th$}}%
  \ifdim\ht2>\ht0 %
    \sbox2{\resizebox{\vneqxscale\width}{\vneqyscale\ht0}{\unhbox2}}%
  \fi
  \sbox2{$\m@th#1\vcenter{\copy2}$}%
  \ooalign{%
    \hfil\phantom{\copy2}\hfil\cr
    \hfil$#1#2\m@th$\hfil\cr
    \hfil\copy2\hfil\cr
  }%
}
\newcommand*{\vneqxscale}{1}
\newcommand*{\vneqyscale}{1}
\makeatother

\begin{document}
\[
  % Comparison \neq vs. vneq
  \varnothing \neq \emptyset \vneq \varnothing \\
\] 
\[ 
  % Check sizes:
  \vneq^{\vneq^{\vneq}} \\
\] 
\[ 
  % Bounding box checks:
  \setlength{\fboxsep}{0pt}
  \setlength{\fboxrule}{.1pt}
  \fbox{$\neq$}\,\fbox{$\vneq$}\,\fbox{$|$}
\]
\end{document}

结果

高度可以进一步降低,例如

\renewcommand*{\vneqyscale}{.8}

结果/.8

结果mathabx

数学

结果txfonts

字体

结果MnSymbol

Mn符号

此处垂直线太粗,水平调整大小需要缩小:

\renewcommand*{\vneqxscale}{.67}

MnSymbol\vneqxscale= 的结果.67

Mn符号/.67

替代varnothing

不用改变,可以使用 构造\neq空集符号来匹配倾斜垂直线的斜率。但是太小和太大。因此,对于 ,该方法显示为,并且。\varnothing\not\circ\bigcirctxfonts\medcircMnSymbol\medcircle

\documentclass{article}

%\usepackage{txfonts}
%\newcommand*{\varemptysetcircle}{\medcirc}

\usepackage{MnSymbol}
\newcommand*{\varemptysetcircle}{\medcircle}

\makeatletter
\newcommand*{\varemptyset}{%
  {% mathord
    \vphantom{\not=}% correct height and depth of the final symbol
    \mathpalette\@varemptyset\varemptysetcircle
  }%
}
\newcommand*{\@varemptyset}[2]{%
  % #1: math style (\displaystyle, \textstyle, ...)
  % #2: circle
  \ooalign{%
    \hfil$\m@th#1\not\hphantomeq$\hfil\cr
    \hfil$\m@th#1#2$\hfil\cr
  }%
}
% \not can be redefined to take an argument
\newcommand*{\hphantomeq}{%
  \mathrel{\hphantom{=}}%
}
\makeatother

\usepackage{color}

\begin{document}
\[
  \not=\; \color{blue}\neq \varemptyset\; \color{black}\varnothing
\]
\end{document}

结果txfonts

字体

结果MnSymbol

Mn符号

答案2

是的:

下面的代码截图

\documentclass[a5paper]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\newcommand\vneq{\mathrel{\ooalign{$=$\cr\hidewidth$|$\hidewidth\cr}}}
\begin{document}
\begin{align*}
a&\gvertneqq b\\
C&\neq \varnothing \\
d&\vneq f
\end{align*}
\end{document}

要了解 中命令背后的动机,请\vneq阅读 egreg 的精彩教程\ooalign\subseteq+\circ作为单个符号(“开子集”)

答案3

一个简单的解决方案是

\usepackage{mathabx}
\changenotsign

但这意味着要改变很大一部分数学符号,这是不可取的,因为在我看来,提供的一些符号mathabx设计得很糟糕。

使用标准工具的解决方案是

\documentclass{article}

\renewcommand\neq{\mathrel{\vphantom{|}\mathpalette\xsneq\relax}}
\newcommand\xsneq[2]{%
  \ooalign{\hidewidth$#1|$\hidewidth\cr$#1=$\cr}%
}

\begin{document}
$a\neq b$
\end{document}

我使用它\renewcommand是因为只需删除该代码即可恢复\neq其正常形状。

通过使用\mathpalette,创建的符号将在下标或上标中变得更小。

在此处输入图片描述

相关内容