Semn nu egal (≠) cu o bară verticală

Este posibil să obțineți un \neq, dar cu o verticală bar în loc de unul înclinat? Există operatori de inegalitate precum AMS „s \gvertneqq care prezintă acest tip de” nu egal „, dar nu fără a-l amesteca cu alte semne.

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

rezultatul codului de mai sus

Deci, ceea ce aș dori în principiu să fie simbolul izolat de sub> în \gvertneqq de mai sus. Mai ales pentru că nu-mi plac diferitele pante ale barelor din a doua linie și „≠ ∅” este o combinație destul de obișnuită.

Răspuns

Semn egal cu linie verticală

Linia verticală | este puțin înaltă pentru mine gust. Următoarea definiție pentru \vneq reduce înălțimea totală a liniei verticale pentru a se potrivi cu înălțimea totală a \neq. Redimensionarea înălțimii verticale nu va modifica grosimea liniei în direcția orizontală.

  • Witdh-ul final și înălțimea liniei verticale pot fi reglate fin redefinind macro-urile \vneqxscale și \vneqyscale. Valoarea implicită este 1.
  • \mathpalette permite redimensionarea simbolului automat.

Exemplu de fișier:

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

Rezultat

Înălțimea poate fi redusă în continuare, de ex.

\renewcommand*{\vneqyscale}{.8} 

Rezultat / .8

Rezultat pentru mathabx:

mathabx

Rezultat pentru txfonts:

txfonts

Rezultat pentru MnSymbol:

MnSymbol

Aici linia verticală este prea groasă și redimensionarea orizontală trebuie să se micșoreze:

Rezultat pentru MnSymbol și \vneqxscale = .67 :

MnSymbol / .67

Alternativă la varnothing

În loc să schimbi \neq, simbolul setului gol ar putea fi construit folosind \not pentru a se potrivi cu panta liniilor verticale înclinate. Cu toate acestea, \circ este prea mic și \bigcirc prea mare. Prin urmare, această metodă este afișată pentru txfonts care oferă \medcirc și MnSymbol cu \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} 

Rezultat pentru txfonts:

txfonts

Rezultat pentru MnSymbol:

MnSymbol

Comentarii

  • Acesta este doar un răspuns uimitor! Sper că Werner nu s-a gândit ' că nu aș putea ' t să schimb răspunsul acceptat la acesta. ' Am unele probleme când încerc să \renewcommand \neq la această versiune a \vneq totuși. Mai precis, obțin o " capacitate TeX depășită ". Ai idee de ce?
  • \vneq is using \ neq` în macro \@vneq. Astfel, puteți stoca vechiul sens: \let\ltxneq=\neq și utilizați \ltxneq în \@vneq. Apoi, ar trebui să puteți redefini \neq.

Răspundeți

Da:

captură de ecran a codului de mai jos

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

Pentru o motivație din spatele comenzi în \vneq, citiți tutorialul excelent al lui egreg pe \ooalign în \subseteq + \circ ca simbol unic („subset deschis”)

Comentarii

  • Super, mulțumesc! Am adăugat și $$ în jurul =, care devine important atunci când aveți un text diferit de fontul matematic.În afară de aceasta, aceasta este cea mai elegantă soluție 🙂

Răspuns

O soluție simplistă ar fi

\usepackage{mathabx} \changenotsign 

dar acest lucru ar însemna schimbarea unei mari părți a simbolurilor matematice, ceea ce nu este de dorit deoarece, în opinia mea, unele dintre simbolurile furnizate de mathabx sunt prost concepute.

O soluție cu instrumente standard este

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

Am folosit \renewcommand deoarece va fi pur și simplu o chestiune de eliminare a codului pentru a reveni la \neq la forma sa obișnuită.

Prin utilizarea \mathpalette, simbolul creat va deveni mai mic în indexuri sau superindici.

introduceți descrierea imaginii aici

Comentarii

  • atât simbolul, cât și un semn egal cu o anulare înclinată înapoi sunt incluse în fonturile stix.
  • @barbarabeeton Da, dar acele fonturi nu ' tm ix bine cu Computer Modern și alte fonturi.
  • trist, dar adevărat. au fost concepute pentru a se amesteca cu vremurile, care a fost tiparul de consens al membrilor consorțiului stipub.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *