是否可以得到一个\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}
结果mathabx
:
结果txfonts
:
结果MnSymbol
:
此处垂直线太粗,水平调整大小需要缩小:
\renewcommand*{\vneqxscale}{.67}
MnSymbol
且\vneqxscale
= 的结果.67
:
替代varnothing
不用改变,可以使用 构造\neq
空集符号来匹配倾斜垂直线的斜率。但是太小和太大。因此,对于 ,该方法显示为,并且。\varnothing
\not
\circ
\bigcirc
txfonts
\medcirc
MnSymbol
\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
:
答案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
,创建的符号将在下标或上标中变得更小。