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}
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
\vneqxscalea\vneqyscale. Výchozí hodnota je1. -
\mathpaletteumožň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ýška může být dále snížena, např.
\renewcommand*{\vneqyscale}{.8}
Výsledek pro mathabx:
Výsledek pro txfonts:
Výsledek pro 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 :
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:
Výsledek pro 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\neqk této verzi\vneqač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=\neqa použít\ltxneqv\@vneq. Pak byste měli být schopni předefinovat\neq.
Odpovědět
Ano:
\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
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.
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.
$$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í 🙂