Znaménko nerovnosti (≠) se svislou čarou

Je možné získat \neq ale se svislou čarou bar místo šikmého? Existují operátoři nerovnosti, jako je AMS \gvertneqq, kteří tento druh „nerovnají“, ale bez jeho smíchání s jinými znaky.

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

výsledek výše uvedeného kódu

Takže to, co bych v zásadě chtěl mít, je izolovaný symbol pod> v \gvertneqq výše. Zejména proto, že se mi nelíbí různé svahy lomítek ve druhém řádku a „≠ ∅“ je docela běžná kombinace.

Odpověď

Znaménko rovnosti se svislou čarou

Svislá čára | je pro mě trochu vysoká chuť. Následující definice pro \vneq snižuje celkovou výšku svislé čáry tak, aby odpovídala celkové výšce \neq. Změnou velikosti svislé výšky se tloušťka čáry ve vodorovném směru nezmění.

  • Konečnou hloubku a výšku svislé čáry lze doladit předefinováním maker \vneqxscale a \vneqyscale. Výchozí hodnota je 1.
  • \mathpalette umožňuje automatickou změnu velikosti symbolu.

Příklad souboru:

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

Výsledek

Výška může být dále snížena, např.

\renewcommand*{\vneqyscale}{.8} 

Výsledek / .8

Výsledek pro mathabx:

mathabx

Výsledek pro txfonts:

txfonts

Výsledek pro MnSymbol:

MnSymbol

Zde je svislá čára příliš silná a horizontální změna velikosti se musí zmenšit:

Výsledek pro MnSymbol a \vneqxscale = .67 :

MnSymbol / .67

Alternativa k varnothing

Místo změny \neq se zobrazí prázdná sada symbolů \varnothing lze zkonstruovat pomocí \not tak, aby odpovídal sklonu šikmých svislých čar. \circ je však příliš malý a \bigcirc příliš velký. Proto je tato metoda zobrazena pro txfonts, která poskytuje \medcirc a MnSymbol s \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} 

Výsledek pro txfonts:

txfonts

Výsledek pro MnSymbol:

MnSymbol

Komentáře

  • Toto je úžasná odpověď! Doufám, že Wernerovi nevadí, že bych nemohl ' změnit přijímanou odpověď na tuto. ' mám potíže při pokusu \renewcommand \neq k této verzi \vneq ačkoli. Přesněji řečeno, mám " překročena kapacita TeX ". Nějaký nápad proč?
  • \vneq is using \ neq` v makru \@vneq. Můžete tedy uložit starý význam: \let\ltxneq=\neq a použít \ltxneq v \@vneq. Pak byste měli být schopni předefinovat \neq.

Odpovědět

Ano:

snímek obrazovky níže

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

Pro motivaci příkazy v \vneq, přečtěte si vynikající tutoriál egreg o \ooalign v \subseteq + \circ jako jeden symbol („otevřená podmnožina“)

Komentáře

  • Skvělé, díky! Přidal jsem $$ také kolem =, což se stává důležitým, když máte jiný text než matematické písmo.Kromě toho se jedná o nejelegantnější řešení 🙂

Odpověď

Zjednodušujícím řešením by bylo

\usepackage{mathabx} \changenotsign 

ale to by znamenalo změnit velkou část matematických symbolů, což není žádoucí, protože podle mého názoru některé symboly poskytované mathabx jsou špatně navrženy.

Řešení se standardními nástroji je

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

Použil jsem \renewcommand protože to bude prostě otázka odstranění tohoto kódu, aby se \neq vrátil do svého obvyklého tvaru.

Použitím \mathpalette, vytvořený symbol se zmenší v dolních nebo horních indexech.

zde zadejte popis obrázku

Komentáře

  • jak tento symbol, tak i znaménko rovnosti se zpětně šikmým zrušením jsou zahrnuty ve fontech stix.
  • @barbarabeeton Ano, ale tato písma nejsou ' tm Ix dobře s Computer Modern a jinými písmy.
  • smutné, ale pravdivé. byly navrženy tak, aby se mísily s dobou, což bylo písmo shody členů konsorcia stipub.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *