Ei yhtäläisyysmerkki (≠) pystypalkilla

Onko mahdollista saada \neq, mutta pystysuoralla baari viistotun sijasta? On eriarvoisuusoperaattoreita, kuten AMS ”s \gvertneqq, joissa on tällainen” ei tasa ”, mutta ei sekoittamatta sitä muihin merkkeihin.

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

yllä olevan koodin tulos

Joten mitä periaatteessa haluaisin saada, on eristetty symboli \gvertneqq yllä. Erityisesti siksi, että en pidä vinoviivojen eri kaltevuuksista toisella rivillä ja ”≠ ∅” on melko yleinen yhdistelmä.

Vastaus

Yhtälömerkki pystysuoralla viivalla

Pystysuora viiva | on vähän pitkä maku. Seuraava määritelmä kohteelle \vneq pienentää pystysuoran viivan kokonaiskorkeutta vastaamaan \neq -kokonaiskorkeutta. Pystykorkeuden koon muuttaminen ei muuta viivan paksuutta vaakasuunnassa.

  • Pystysuoran viivan viimeinen pituus ja korkeus voidaan hienosäätää määrittelemällä makrot uudelleen \vneqxscale ja \vneqyscale. Oletusarvo on 1.
  • \mathpalette antaa symbolin koon muuttaa automaattisesti.

Esimerkkitiedosto:

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

Tulos

Korkeutta voidaan edelleen pienentää, esim.

\renewcommand*{\vneqyscale}{.8} 

Tulos / .8

Tulos kohteelle mathabx:

mathabx

Tulos kohteelle txfonts:

txfonts

Tulos kohteelle MnSymbol:

MnSymboli

Tässä pystyviiva on liian paksu ja vaakakoon muuttaminen tarvitsee kutistuvan:

Tulos kohteille MnSymbol ja \vneqxscale = .67 :

MnSymbol / .67

Vaihtoehto varnothing

\neq -vaihtoehdon vaihtamisen sijaan tyhjä asetussymboli \varnothing voitaisiin rakentaa käyttämällä \not vastaamaan vinojen pystyviivojen kaltevuutta. \circ on kuitenkin liian pieni ja \bigcirc liian suuri. Siksi tämä menetelmä näytetään kohteelle txfonts, joka tarjoaa \medcirc ja MnSymbol kanssa \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} 

Tulos kohteelle txfonts:

txfonts

Tulos kohteelle MnSymbol:

MnSymboli

Kommentit

  • Tämä on upea vastaus! Toivon, että Werner voitti ' mielessäni, että en voinut ' t, mutta muuttaa hyväksyttyä vastausta tähän. Minulla ' minulla on ongelmia, kun yritän \renewcommand \neq tähän \vneq. Tarkemmin sanottuna saan " TeX-kapasiteetin, joka ylitti ". Onko sinulla mitään syytä miksi?
  • \vneq is using \ neq` makrossa \@vneq. Näin voit tallentaa vanhan merkityksen: \let\ltxneq=\neq ja käyttää \ltxneq kohtaan \@vneq. Sitten sinun pitäisi pystyä määrittelemään uudelleen \neq.

Vastaa

Kyllä:

kuvakaappaus alla olevasta koodista

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

Motivaatiota varten komennot kohdassa \vneq, lue egregin erinomainen opetusohjelma aiheesta \ooalign kohdassa \subseteq + \circ yksittäisenä symbolina (”avoin osajoukko”)

kommentit

  • Hienoa, kiitos! Lisäsin $$ myös = -kohdan ympärille, mikä tulee tärkeäksi, kun sinulla on eri teksti kuin matemaattinen fontti.Tämä on tyylikäs ratkaisu 🙂

Vastaus

Yksinkertainen ratkaisu olisi

\usepackage{mathabx} \changenotsign 

mutta tämä merkitsisi suuren osan matemaattisista symboleista muuttamista, mikä ei ole toivottavaa, koska mielestäni jotkut on suunniteltu huonosti.

Ratkaisu vakiotyökaluilla on

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

Käytin \renewcommand, koska kyse on yksinkertaisesti kyseisen koodin poistamisesta, jotta \neq palautettaisiin tavalliseen muotoonsa.

Käyttämällä \mathpalette, luotu symboli pienenee ala- tai alaindekseissä.

kirjoita kuvan kuvaus tähän

Kommentit

  • sekä tämä symboli että yhtäläisyysmerkki taaksepäin kallistetulla peruutuksella sisältyvät stix-kirjasimiin.
  • @barbarabeeton Kyllä, mutta nuo kirjasimet don ' tm ix hyvin Computer Modernin ja muiden fonttien kanssa.
  • surullinen mutta totta. ne on suunniteltu sekoittumaan aikoihin, mikä oli stipub-konsortion jäsenten yksimielinen kirjasinlaji.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *