My (personal) thoughts on the matter
I don't know of any typographical rules for this, but I think adding additional space around relations or operations between propositions makes a lot of sense because these operate at a different level in some sense.
So I would probably add some space around the arrow in $a=b \Rightarrow x=y$
, and I might do the same thing for a=b \land x=y
(though I probably wouldn't in an inline equation).
I don't believe the same thing applies to probabilities, however, since these are just numbers.
I think adding extra space to either P(a=b) + P(x=y)$
or P(a=b) = P(x=y)$
is unnecessary and actually a little inconsistent.
You can always add space for the sake of legibility, but I don't see any syntactic reason for it.
About implies
, \impliedby
and \iff
The amsmath
package (which you are likely already using) actually defines the macros \implies
, \iff
and \impliedby
as versions of \Longrightarrow
, \Longleftrightarrow
and \Longleftarrow
that insert some extra space on either side (though \iff
actually also works without amsmath
.)
You can see them in action here:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[P \implies Q \iff R \impliedby S\]
\[P \Longrightarrow Q \Longleftrightarrow R \Longleftarrow S\]
\end{document}
![arrow comparison](https://cdn.statically.io/img/i.sstatic.net/uexID.png)
These commands are defined as \DOTSB\;\Longrightarrow\;
, \DOTSB\;\Longleftrightarrow\;
and \DOTSB\;\Longleftarrow\;
respectively.
The important part is \;
, which inserts a \thickmuskip
and effectively doubles the amount of space around these arrows.
\DOTSB
doesn't really do anything; it is just a marker that tells amsmath
's "magic" \dots
that this is a binary operator/relation.
If you think \implies
et al. are a little too long by default, you can redefine these with
\renewcommand\implies{\DOTSB\;\Rightarrow\;}
\renewcommand\impliedby{\DOTSB\;\Leftarrow\;}
\renewcommand\iff{\DOTSB\;\Leftrightarrow\;}
and you could similarly define versions of your favourite symbols that add more space with
\newcommand\metasomesymbol{\DOTSB\;<somesymbol>\;}
You can leave out \DOTSB
if you don't use \dots
and are sure you never will, but including it consistently requires relatively little effort.
The same thing can of course also be accomplished by adding a pair of \;
every time (as long as there are no \dots
around).
Suggestion
Since I (personally) think all this extra space would actually be rather unpleasant in inline equations, here is a way to define symbols that only get extra space in display style.
I'm using \mathchoice
to do this.
An explanation of how this works can be found e.g. in the answers to this question.
\documentclass{article}
\usepackage{amsmath}
\newcommand*\mathmeta[1]{\DOTSB\mathchoice{\;#1\;}{#1}{#1}{#1}}
\newcommand*\newmetasymbol[2]{\newcommand#1{\DOTSB\mathmeta{#2}}}
\newcommand*\renewmetasymbol[2]{\renewcommand#1{\DOTSB\mathmeta{#2}}}
\renewmetasymbol\implies{\Rightarrow}
\renewmetasymbol\impliedby{\Leftarrow}
\renewmetasymbol\iff{\Leftrightarrow}
\usepackage{amssymb}
\newmetasymbol\nimplies{\nRightarrow}
\newmetasymbol\nimpliedby{\nLeftarrow}
\newmetasymbol\niff{\nLeftrightarrow}
\begin{document}
This is an inline equation: $x=y \implies x^2=y^2 \iff y^2=x^2 \impliedby y=x$.
This is a displayed equation:
\[
x=y \implies x^2=y^2 \iff y^2=x^2 \impliedby y=x.
\]
Here are a few more symbols: $(x = y \mathmeta{\land} y = z) \implies x = z$, but
\[
(x = y \mathmeta{\lor} y = z) \nimplies x = z
\]
\end{document}
![output](https://cdn.statically.io/img/i.sstatic.net/lDTv3.png)
amsmath
defines\implies
,\iff
and\impliedby
as\DOTSB\;\Longrightarrow\;
,\DOTSB\;\Longleftrightarrow\;
and\DOTSB\;\Longleftarrow\;
respectively.\DOTSB
and\dotsb
?\DOTSB
itself doesn't actually do anything; it is just a marker foramsmath
's "magic"\dots
(which can look like either\cdots
or\ldots
, depending on the character following it). See e.g. this answer.\DOTSB\;=\;
,\DOTSB\;\land\;
and\DOTSB\;+\;
to work in cases like$a=b \land x=y$
and$P(a=b) = P(x=y)$
, I suppose.