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
\vneqxscalei\vneqyscale. Wartość domyślna to1. -
\mathpaletteumoż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\neqdo tej wersji\vneqchociaż. 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=\neqi użyć\ltxneqw\@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 🙂