Czy można uzyskać \neq
, ale z pionową drążek zamiast skośnego? Istnieją operatory nierówności, takie jak AMS „s \gvertneqq
, które zawierają ten rodzaj„ nierówności ”, ale nie bez ich mieszania z innymi znakami.
\documentclass[a5paper]{article} \usepackage{amssymb} \usepackage{amsmath} \begin{document} \begin{align*} a&\gvertneqq b\\ C&\neq \varnothing \end{align*} \end{document}
Zasadniczo chciałbym mieć izolowany symbol pod> w \gvertneqq
powyżej. Szczególnie dlatego, że nie podoba mi się różne nachylenia ukośników w drugiej linii, a „≠ ∅” to dość powszechna kombinacja.
Odpowiedź
Znak równości z pionową linią
Pionowa linia |
jest trochę wysoka jak na mój smak. Poniższa definicja \vneq
zmniejsza całkowitą wysokość pionowej linii, aby dopasować ją do całkowitej wysokości \neq
. Zmiana rozmiaru pionowej wysokości nie zmieni grubości linii w kierunku poziomym.
- Ostateczną szerokość i wysokość pionowej linii można dostosować, ponownie definiując makra
\vneqxscale
i\vneqyscale
. Wartość domyślna to1
. -
\mathpalette
umożliwia automatyczną zmianę rozmiaru symbolu.
Przykładowy plik:
\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}
Wysokość można dodatkowo zmniejszyć, np.
\renewcommand*{\vneqyscale}{.8}
Wynik dla mathabx
:
Wynik dla txfonts
:
Wynik dla MnSymbol
:
Tutaj pionowa linia jest zbyt gruba i pozioma zmiana rozmiaru wymaga zmniejszenia:
Wynik dla MnSymbol
i \vneqxscale
= .67
:
Alternatywa dla varnothing
Zamiast zmieniać \neq
, pusty symbol zestawu można skonstruować za pomocą \not
, aby dopasować nachylenie ukośnych linii pionowych. Jednak \circ
jest za mały i \bigcirc
za duży. Dlatego ta metoda jest wyświetlana dla txfonts
, które zapewnia \medcirc
i MnSymbol
z \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}
Wynik dla txfonts
:
Wynik dla MnSymbol
:
Komentarze
- To po prostu niesamowita odpowiedź! Mam nadzieję, że Werner wygrał '. Nie przeszkadza mi, że nie mogę ' zmienić zaakceptowanej odpowiedzi na tę. ' Mam problemy podczas próby
\renewcommand
\neq
do tej wersji\vneq
chociaż. Mówiąc dokładniej, otrzymuję " pojemność TeX-a przekroczona ". Masz jakiś pomysł, dlaczego? -
\vneq is using
\ neq` w makrze\@vneq
. W ten sposób możesz zapisać stare znaczenie:\let\ltxneq=\neq
i użyć\ltxneq
w\@vneq
. Wtedy powinieneś być w stanie ponownie zdefiniować\neq
.
Odpowiedź
Tak:
\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}
Dla motywacji poleceń w \vneq
, przeczytaj doskonały samouczek egreg na temat \ooalign
w \subseteq
+ \circ
jako pojedynczy symbol („otwarty podzbiór”)
Komentarze
Odpowiedź
Uproszczonym rozwiązaniem byłoby
\usepackage{mathabx} \changenotsign
ale oznaczałoby to zmianę dużej części symboli matematycznych, co nie jest pożądane, ponieważ moim zdaniem niektóre symbole dostarczane przez mathabx
są źle zaprojektowane.
Rozwiązanie ze standardowymi narzędziami to
\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}
Użyłem \renewcommand
, ponieważ będzie to po prostu kwestia usunięcia tego kodu w celu przywrócenia \neq
do jego zwykłego kształtu.
Używając \mathpalette
, utworzony symbol zmniejszy się w indeksach dolnych lub górnych.
Komentarze
- zarówno ten symbol, jak i znak równości z anulowaniem pochylonym do tyłu są zawarte w czcionkach stix.
- @barbarabeeton Tak, ale te czcionki nie ' tm dobrze współpracuje z czcionkami Computer Modern i innymi czcionkami.
- smutne, ale prawdziwe. zostały zaprojektowane tak, aby mieszały się z czasem, co stanowiło konsensus członków konsorcjum stipub.
$$
do=
, co staje się ważne, gdy masz inny tekst niż czcionka matematyczna.Poza tym jest to najbardziej eleganckie rozwiązanie 🙂