Можно ли получить \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
созданный символ станет меньше в нижних или верхних индексах.