Geen gelijkteken (≠) met een verticale streep

Is het mogelijk om een \neq te krijgen maar met een verticale bar in plaats van een schuine? Er zijn ongelijkheidsoperatoren zoals AMS “s \gvertneqq die dit soort” niet gelijk “bevatten, maar niet zonder het te vermengen met andere tekens.

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

resultaat van de bovenstaande code

Dus wat ik eigenlijk zou willen hebben is het geïsoleerde symbool onder de> in de \gvertneqq hierboven. Vooral omdat ik de verschillende hellingen van de schuine strepen in de tweede regel niet mooi vind en “≠ ∅” een vrij gebruikelijke combinatie is.

Antwoord

Gelijkteken met verticale lijn

De verticale lijn | is een beetje lang voor mijn smaak. De volgende definitie voor \vneq verlaagt de totale hoogte van de verticale lijn zodat deze overeenkomt met de totale hoogte van \neq. Door de grootte van de verticale hoogte aan te passen, wordt de lijndikte in horizontale richting niet gewijzigd.

  • De uiteindelijke breedte en hoogte van de verticale lijn kunnen worden verfijnd door macros opnieuw te definiëren \vneqxscale en \vneqyscale. De standaardwaarde is 1.
  • \mathpalette zorgt ervoor dat het formaat van het symbool automatisch wordt aangepast.

Voorbeeldbestand:

\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} 

Resultaat

De hoogte kan verder worden verkleind, bijvoorbeeld

\renewcommand*{\vneqyscale}{.8} 

Resultaat / .8

Resultaat voor mathabx:

mathabx

Resultaat voor txfonts:

txfonts

Resultaat voor MnSymbol:

MnSymbol

Hier is de verticale lijn te dik en de horizontale grootte moet worden verkleind:

Resultaat voor MnSymbol en \vneqxscale = .67 :

MnSymbol / .67

Alternatief voor varnothing

In plaats van \neq te wijzigen, het lege set-symbool \varnothing kan worden geconstrueerd met \not om overeen te komen met de helling van de schuine verticale lijnen. \circ is echter te klein en \bigcirc te groot. Daarom wordt deze methode weergegeven voor txfonts die \medcirc en MnSymbol levert met \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} 

Resultaat voor txfonts:

txfonts

Resultaat voor MnSymbol:

MnSymbol

Reacties

  • Dit is gewoon een geweldig antwoord! Ik hoop dat Werner ' het niet erg vindt dat ik ' niet maar het geaccepteerde antwoord in dit antwoord kan veranderen. Ik ' heb wat problemen bij het proberen \renewcommand \neq naar deze versie van \vneq echter. Meer specifiek: ik krijg een " TeX-capaciteit overschreden ". Enig idee waarom?
  • \vneq is using \ neq` in macro \@vneq. U kunt dus de oude betekenis opslaan: \let\ltxneq=\neq en \ltxneq gebruiken in \@vneq. Dan zou je \neq moeten kunnen herdefiniëren.

Antwoord

Ja:

screenshot van onderstaande code

\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} 

Voor een motivatie achter de commandos in \vneq, lees egreg “s uitstekende tutorial over \ooalign in \subseteq + \circ als een enkel symbool (“open subset”)

Reacties

  • Geweldig, bedankt! Ik heb $$ ook rond de = toegevoegd, wat belangrijk wordt als je een andere tekst dan wiskundig lettertype.Anders dan dat is dit een zeer elegante oplossing 🙂

Antwoord

Een simplistische oplossing zou zijn

\usepackage{mathabx} \changenotsign 

maar dit zou betekenen dat een groot deel van de wiskundige symbolen moet worden gewijzigd, wat niet wenselijk is omdat, naar mijn mening, enkele van de symbolen geleverd door mathabx zijn slecht ontworpen.

Een oplossing met standaardtools is

\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} 

Ik gebruikte \renewcommand omdat het simpelweg een kwestie is van het verwijderen van die code om \neq terug te brengen naar de gebruikelijke vorm.

Door \mathpalette, wordt het aangemaakte symbool kleiner in subscripts of superscripts.

voer hier een afbeeldingsbeschrijving in

Opmerkingen

  • zowel dit symbool als een gelijkteken met een schuine annulering naar achteren zijn opgenomen in de stix-lettertypen.
  • @barbarabeeton Ja, maar die lettertypen zijn niet ' tm ix goed met Computer Modern en andere lettertypen.
  • triest maar waar. ze waren ontworpen om te mengen met de tijd, wat het consensus-lettertype was van de stipub-consortiumleden.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *