I need to create a symbol logical equivalence. Contact vDash with appropriate vertical line, but I can not find any. Can you advise?
[Tex/LaTex] Logical equivalence vDashv
logicsymbols
Related Solutions
You don't need to load the mathabx
package just to use one symbol: just load the necessary font and consult the package to know the slot corresponding to \lll
; it turns out that the font is matha
and the slot is "CE
.
\usepackage{graphicx}
\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{
<5> <6> <7> <8> <9> <10> gen * matha
<10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12
}{}
\newcommand{\bland}{\mathbin{
\raisebox{.1ex}{%
\rotatebox[origin=c]{-90}{\usefont{U}{matha}{m}{n}\symbol{\string"CE}}}}}
\newcommand{\blor}{\mathbin{
\raisebox{.1ex}{%
\rotatebox[origin=c]{90}{\usefont{U}{matha}{m}{n}\symbol{\string"CE}}}}}
If you need those symbols also in subscripts and superscripts, some more work is needed. A possible definition is
\usepackage{graphicx}
\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{
<5> <6> <7> <8> <9> <10> gen * matha
<10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12
}{}
\makeatletter
\newcommand{\blandor}[1]{\mathbin{\@blandor{#1}}}
\newcommand{\@blandor}[1]{\mathchoice
{\@@blandor{#1}{\tf@size}}
{\@@blandor{#1}{\tf@size}}
{\@@blandor{#1}{\sf@size}}
{\@@blandor{#1}{\ssf@size}}
}
\newcommand{\@@blandor}[2]{%
\raisebox{.1ex}{\rotatebox[origin=c]{#1}{%
\fontsize{#2}{#2}\usefont{U}{matha}{m}{n}\symbol{\string"CE}}}%
}
\makeatother
\newcommand{\bland}{\blandor{-90}}
\newcommand{\blor}{\blandor{90}}
I assume package amsmath
is loaded (e.g. needed for \iff
).
\implies
, \impliedby
, and \iff
adds a surrounding space of \;
, that is space of
the amount \thickmuskip
. Macro \HalfThickmuskip
uses the half of \;
.
\implies
, \impliedby
are composed of the arrow with the equals sign.
Macro \HalfRelbar
uses the same equals sign, but the width is scaled by factor 0.5.
\joinrel
fixes the side bearings (horizontal space surrounding the glyph shape) and is adjusted to the smaller side bearings of the scaled equals sign in macro \PartJoinrel
.
The case of \iff
is different, because it is composed by the two arrows that cannot be scaled without affecting the arrow tips. Here the half width of the equals sign is subtracted.
As assumed, package accsupp
is used to get a better Unicode representation of the
glyph constructs.
\documentclass{article}
\usepackage[fleqn]{amsmath}
\usepackage{graphics}
\usepackage{accsupp}
\makeatletter
\newcommand*{\HalfRelbar}{%
\mathrel{%
\mathpalette\MathResizeHalfWidth=%
}%
}
\newcommand*{\MathResizeHalfWidth}[2]{%
\scalebox{.5}[1]{$\m@th#1#2$}%
}
\newcommand*{\HalfThickmuskip}{%
\mskip.5\muexpr\thickmuskip\relax
}
\newcommand*{\NegHalfEquals}{%
\mathrel{%
\mathpalette\@NegHalfEquals=%
}%
}
\newcommand*{\@NegHalfEquals}[2]{%
\setbox0=\hbox{$\m@th#1#2$}%
\kern-.5\wd0 %
}
\newcommand*{\PartJoinrel}{%
\mathrel{\mkern-2.25mu}% -3mu/2 -1.5mu/2
}
\newcommand*{\Implies}{%
\DOTSB
\protect\HalfThickmuskip
\protect\BeginAccSupp{method=hex,unicode,ActualText=21D2}%
\protect\HalfRelbar
\protect\PartJoinrel
\protect\Rightarrow
\protect\EndAccSupp{}%
\protect\HalfThickmuskip
}
\newcommand*{\Impliedby}{%
\DOTSB
\protect\HalfThickmuskip
\protect\BeginAccSupp{method=hex,unicode,ActualText=21D0}%
\protect\Leftarrow
\protect\PartJoinrel
\protect\HalfRelbar
\protect\EndAccSupp{}%
\protect\HalfThickmuskip
}
\newcommand*{\Iff}{%
\DOTSB
\protect\HalfThickmuskip
\protect\BeginAccSupp{method=hex,unicode,ActualText=21D4}%
\protect\Leftarrow
\protect\joinrel
\protect\NegHalfEquals
\protect\Rightarrow
\protect\EndAccSupp{}%
\protect\HalfThickmuskip
}
\makeatother
\begin{document}
\begin{gather*}
a \implies b_{a \implies b} \\
a \Implies b_{a \Implies b} \\
a \Rightarrow b_{a \Rightarrow b} \\
c \impliedby d_{c \impliedby d} \\
c \Impliedby d_{c \Impliedby d} \\
c \Leftarrow d_{c \Leftarrow d} \\
e \iff f_{e \iff f}\\
e \Iff f_{e \Iff f} \\
e \Leftrightarrow f_{e \Leftrightarrow f} \\
\end{gather*}
\end{document}
Best Answer
While
mathabx
has some symbols that might help, using it means changing all symbol fonts and this, in general, is not desirable.Here's a possible way to do it: superimpose a
\vDash
symbol to its reflected copy.I've also defined a
\Dashv
command with the reflected symbol.See \subseteq + \circ as a single symbol ("open subset") for a quick introduction to
\ooalign
.