Inte lika tecken (≠) med en vertikal stapel

Är det möjligt att få en \neq men med en vertikal bar istället för en lutande? Det finns ojämlikhetsoperatörer som AMS ”s \gvertneqq som har denna typ av” inte lika ”men inte utan att blanda det med andra tecken.

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

resultat av ovanstående kod

Så vad jag egentligen skulle vilja ha är den isolerade symbolen under> i \gvertneqq ovan. Särskilt för att jag inte tycker om snedstreckens olika lutningar i andra raden och ”≠ ∅” är en ganska vanlig kombination.

Svar

Likhetstecken med vertikal linje

Den vertikala linjen | är lite hög för min smak. Följande definition för \vneq minskar den totala höjden för den vertikala linjen för att matcha den totala höjden för \neq. Om du ändrar storlek på vertikal höjd ändras inte linjens tjocklek i horisontell riktning.

  • Den slutliga vitden och höjden på den vertikala linjen kan finjusteras genom att omdefiniera makron \vneqxscale och \vneqyscale. Standardvärdet är 1.
  • \mathpalette gör att symbolen kan ändras automatiskt.

Exempel på fil:

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

Resultat

Höjden kan minskas ytterligare, t.ex.

\renewcommand*{\vneqyscale}{.8} 

Resultat / .8

Resultat för mathabx:

mathabx

Resultat för txfonts:

txfonts

Resultat för MnSymbol:

MnSymbol

Här är den vertikala linjen för tjock och horisontell storleksändring behöver krympas:

Resultat för MnSymbol och \vneqxscale = .67 :

MnSymbol / .67

Alternativ till varnothing

I stället för att ändra \neq är den tomma uppsättningssymbolen \varnothing kan konstrueras med \not för att matcha lutningen på de lutande vertikala linjerna. \circ är dock för litet och \bigcirc för stort. Därför visas denna metod för txfonts som ger \medcirc och MnSymbol med \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} 

Resultat för txfonts:

txfonts

Resultat för MnSymbol:

MnSymbol

Kommentarer

  • Detta är bara ett fantastiskt svar! Jag hoppas Werner vann ' tänker på att jag inte kunde ' t men ändra det accepterade svaret till det här. Jag ' har problem när jag försöker \renewcommand \neq till den här versionen av \vneq dock. Mer specifikt får jag en " TeX-kapacitet överskred ". Någon aning varför?
  • \vneq is using \ neq` i makro \@vneq. Således kan du lagra den gamla betydelsen: \let\ltxneq=\neq och använda \ltxneq i \@vneq. Då ska du kunna omdefiniera \neq.

Svar

Ja:

skärmdump av koden nedan

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

För en motivation bakom kommandon i \vneq, läs egregs utmärkta handledning om \ooalign i \subseteq + \circ som en enda symbol (”öppen delmängd”)

Kommentarer

  • Bra, tack! Jag lade till $$ runt = som också blir viktigt när du har en annan text än matte teckensnitt.Annat än att detta är en mycket elegant lösning 🙂

Svar

En förenklad lösning skulle vara

\usepackage{mathabx} \changenotsign 

men detta skulle innebära att en stor del av matematiksymbolerna ändras, vilket inte är önskvärt eftersom jag, enligt min åsikt, några av de symboler som ges av mathabx är dåligt utformade.

En lösning med standardverktyg är

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

Jag använde \renewcommand eftersom det bara handlar om att ta bort koden för att återställa \neq till sin vanliga form.

Genom att använda \mathpalette, den skapade symbolen kommer att bli mindre i prenumerationer eller överskrift.

ange bildbeskrivning här

Kommentarer

  • både den här symbolen och ett likhetstecken med en bakåtlutande annullering ingår i stix-teckensnitten.
  • @barbarabeeton Ja, men dessa teckensnitt inte ' tm ix bra med Computer Modern och andra teckensnitt.
  • sorgligt men sant. de var utformade för att blandas med tider, vilket var typsnittet för stipubkonsortiets medlemmar.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *