Segno diverso da (≠) con una barra verticale

È possibile ottenere un \neq ma con una verticale bar invece di uno inclinato? Esistono operatori di disuguaglianza come \gvertneqq di AMS che presentano questo tipo di “non uguale” ma non senza mescolarlo con altri segni.

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

risultato del codice sopra

Quindi quello che fondamentalmente vorrei avere è il simbolo isolato sotto> nel \gvertneqq sopra. Soprattutto perché non mi piacciono le diverse pendenze delle barre nella seconda riga e “≠ ∅” è una combinazione abbastanza comune.

Risposta

Segno di uguale con linea verticale

La linea verticale | è un po alta per il mio gusto. La seguente definizione di \vneq riduce laltezza totale della linea verticale in modo che corrisponda allaltezza totale di \neq. Il ridimensionamento dellaltezza verticale non cambierà lo spessore della linea in direzione orizzontale.

  • La larghezza e laltezza finali della linea verticale possono essere regolate ridefinendo le macro \vneqxscale e \vneqyscale. Il valore predefinito è 1.
  • \mathpalette consente al simbolo di ridimensionarsi automaticamente.

File di esempio:

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

Risultato

Laltezza può essere ulteriormente ridotta, ad esempio

\renewcommand*{\vneqyscale}{.8} 

Risultato / .8

Risultato per mathabx:

mathabx

Risultato per txfonts:

txfonts

Risultato per MnSymbol:

MnSymbol

Qui la linea verticale è troppo spessa e il il ridimensionamento orizzontale deve essere ridotto:

Risultato per MnSymbol e \vneqxscale = .67 :

MnSymbol / .67

Alternativa a varnothing

Invece di modificare \neq, il simbolo dellinsieme vuoto \varnothing può essere costruito utilizzando \not per far corrispondere la pendenza delle linee verticali oblique. Tuttavia, \circ è troppo piccolo e \bigcirc troppo grande. Pertanto questo metodo viene mostrato per txfonts che fornisce \medcirc e MnSymbol con \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} 

Risultato per txfonts:

txfonts

Risultato per MnSymbol:

MnSymbol

Commenti

  • Questa è solo una risposta fantastica! Spero che a Werner ' non importi che non potevo ' cambiare la risposta accettata a questa. ' riscontro qualche problema durante il tentativo di \renewcommand \neq a questa versione di \vneq però. Più specificamente, ottengo una " capacità TeX superata ". Qualche idea sul perché?
  • \vneq is using \ neq` nella macro \@vneq. In questo modo puoi memorizzare il vecchio significato: \let\ltxneq=\neq e utilizzare \ltxneq in \@vneq. Quindi dovresti essere in grado di ridefinire \neq.

Risposta

Sì:

screenshot del codice di seguito

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

Per una motivazione alla base comandi in \vneq, leggi leccellente tutorial di egreg “su \ooalign in \subseteq + \circ come singolo simbolo (“open subset”)

Commenti

  • Fantastico, grazie! Ho aggiunto $$ attorno al =, che diventa importante quando hai testo diverso dal carattere matematico.A parte questo, questa è una soluzione molto elegante 🙂

Risposta

Una soluzione semplicistica sarebbe

\usepackage{mathabx} \changenotsign 

ma ciò significherebbe cambiare gran parte dei simboli matematici, il che non è desiderabile come, a mio parere, alcuni dei simboli forniti da mathabx sono mal progettati.

Una soluzione con strumenti standard è

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

Ho usato \renewcommand perché sarà semplicemente una questione di rimuovere quel codice per riportare \neq alla sua forma abituale.

Utilizzando \mathpalette, il simbolo creato diventerà più piccolo in pedici o apici.

inserisci qui la descrizione dellimmagine

Commenti

  • sia questo simbolo che un segno di uguale con una cancellazione inclinata allindietro sono inclusi nei caratteri stix.
  • @barbarabeeton Sì, ma questi caratteri non sono ' tm ix bene con Computer Modern e altri caratteri.
  • triste ma vero. sono stati progettati per mescolarsi con i tempi, che era il carattere tipografico consensuale dei membri del consorzio stipub.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *