È 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}
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}
Laltezza può essere ulteriormente ridotta, ad esempio
\renewcommand*{\vneqyscale}{.8}
Risultato per mathabx
:
Risultato per txfonts
:
Risultato per MnSymbol
:
Qui la linea verticale è troppo spessa e il il ridimensionamento orizzontale deve essere ridotto:
Risultato per MnSymbol
e \vneqxscale
= .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
:
Risultato per 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ì:
\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
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.
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.
$$
attorno al=
, che diventa importante quando hai testo diverso dal carattere matematico.A parte questo, questa è una soluzione molto elegante 🙂