How to typeset appropriate “does not entail” symbol?

Philipp Ploder 05/22/2018. 4 answers, 736 views
symbols

I am looking for a LaTeX symbol that means "A does not entail B". The mathematical symbol I found for this is , however I haven't found any way of displaying it properly.

How can I convey the desired meaning?

4 Answers


Steven B. Segletes 05/22/2018.
\documentclass{article}
\usepackage{amssymb}
\newcommand\doesnotentail{\mkern-2mu\not\mkern2mu\vdash}
\begin{document}
$A\doesnotentail B$

$A\vdash B$
\end{document}

enter image description here

And some other ways:

\documentclass{article}
\usepackage{amssymb,stackengine}
\newcommand\doesnotentail{\mathrel{\ensurestackMath{%
  \stackengine{.175em}{\vdash}{\scriptstyle/}{O}{c}{F}{F}{L}}}}
\begin{document}
$A\doesnotentail B$ via stackengine

$A\vdash B$ \textbackslash vdash

$A\nvdash B$ \textbackslash nvdash
\end{document}

enter image description here


Bernard 05/22/2018.

The mathabx fonts define a plethora of such symbols. Here is a code to use them without loading the whole font:

\documentclass[11pt]{article}%[14pt]
 \usepackage{amsmath}

\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{%
 <-6> matha5
<6-7> matha6
<7-8> matha7
<8-9> matha8
<9-10> matha9
 <10-12> matha10
  <12-> matha12
  } {}%
\DeclareSymbolFont{matha}{U}{matha}{m}{n}

\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{% 
<-6> matha5 
<6-7> matha6 
<7-8> mathb7 
<8-9> mathb8 
<9-10> mathb9 
<10-12> mathb10 
<12-> mathb12 
}{}%
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}%

\DeclareMathSymbol{\nvdash}{\mathrel}{matha}{"26}
\DeclareMathSymbol{\ndashv}{\mathrel}{matha}{"27}
\DeclareMathSymbol{\nvDash}{\mathrel}{matha}{"2E}
\DeclareMathSymbol{\nDashv}{\mathrel}{matha}{"2F}
\DeclareMathSymbol{\nVdash}{\mathrel}{matha}{"2A}
\DeclareMathSymbol{\ndashV}{\mathrel}{matha}{"2B}

\DeclareMathSymbol{\nVDash}{\mathrel}{mathb}{"2A}
\DeclareMathSymbol{\nDashV}{\mathrel}{mathb}{"2B}
\DeclareMathSymbol{\nVvdash}{\mathrel}{mathb}{"2E}
\DeclareMathSymbol{\ndashVv}{\mathrel}{mathb}{"2F}

\begin{document}

    \begin{alignat*}{4}
\texttt{\textbackslash nvdash} &\quad & \nvdash &\hspace{4em} & \texttt{\textbackslash ndashv} &\quad & \ndashv \\
\texttt{\textbackslash nvDash} &\quad & \nvDash &\hspace{4em} & \texttt{\textbackslash nDashv} &\quad & \nDashv \\
\texttt{\textbackslash nVdash} &\quad & \nvDash &\hspace{4em} & \texttt{\textbackslash ndashV} &\quad & \nDashv \\\\
\texttt{\textbackslash nVDash} &\quad & \nVDash &\hspace{4em} & \texttt{\textbackslash nDashV} &\quad & \nDashV \\
\texttt{\textbackslash nVvdash} &\quad & \nVDash &\hspace{4em} & \texttt{\textbackslash nDashV} &\quad & \ndashVv
\end{alignat*}

\end{document} 

enter image description here


Davislor 05/23/2018.

The ⊬ is U+22AC (Does Not Prove). This is \nvdash in amssymb and many other packages, including unicode-math, pxfonts, MnSymbol, fdsymbol, mathabx, stix and more.

\documentclass[varwidth, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amssymb} % Or your font package of choice.

\DeclareUnicodeCharacter{22AC}{\ensuremath{\nvdash}}

\begin{document}
\( p ⊬ q \) and \(q \nvdash p\).
\end{document}

p ⊬ q and q ⊬ p

The Comprehensive LaTeX Symbols List shows what the symbol looks like in many of these fonts.

Even simpler:

\documentclass[varwidth, preview]{standalone}
\usepackage{unicode-math}

% You can \setmainfont and \setmathfont here.

\begin{document}
\( p ⊬ q \) and \(q \nvdash p\).
\end{document}

The List of Symbols Defined by unicode-math shows what this symbol looks like in several OpenType fonts (on page 58).

But, the other answers give some really clever ways to fake it, if you want to make things more complicated.


egreg 05/22/2018.

Here's a possible solution for keeping the negation slash to the height of the “entailment” symbol.

\documentclass{article}
\usepackage{amsmath,graphicx}

\DeclareRobustCommand{\notvdash}{%
  \mathrel{\mathpalette\vdashnot\vdash}%
}
\makeatletter
\newcommand{\vdashnot}[2]{%
  \sbox0{$\m@th#1#2$}%
  \sbox2{\raisebox{\depth}{$\m@th#1/$}}%
  \ooalign{%
    \hidewidth$\m@th#1\mkern2mu$\resizebox{1.1\width}{\ht0}{\box2}\hidewidth\cr
    \box0\cr
  }%
}
\makeatother

\begin{document}

$A\notvdash B$

\end{document}

enter image description here

Related questions

Hot questions

Language

Popular Tags