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
\vneqxscale
a\vneqyscale
. Výchozí hodnota je1
. -
\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ýš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
\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:
\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í 🙂