# Logic operators in LaTeX? (XOR?)

When I google this, it seems that \XOR is how you would get an XOR symbol in LaTeX, however that is giving me the 'undefined control sequence' error. How does one get the xor symbol?

• You probably need to load some package. However, symbols does not list \xor, so I can’t help you without knowing what the symbol looks like. Have a look at “How to look up a math symbol?” for ideas how you can easily find a particular symbol. Oct 9, 2010 at 4:07
• Shouldn't you accept A T's answer instead of TH.'s? Since \oplus is clearly superior to \mathbin{\oplus} or \newcommand*\xor{\mathbin{\oplus}}.
– Eric
Feb 18, 2016 at 7:51

How about \newcommand*\xor{\oplus}?

• I think the \mathbin isn't strictly necessary because \oplus is already a binary operator. Oct 9, 2010 at 9:31
• Alternatively, \lxor to match \lor, \land, etc. Jul 26, 2022 at 10:25

\oplus worked for me :)

I found this in List of logic symbols :P

• This should be the accepted answer! Jan 24, 2019 at 2:25

What you're looking for is \veebar in amssymb.

\usepackage{amssymb}

$\veebar$


If you like, you can create a new command \lxor, named to match \lor and \land:

\providecommand{\lxor}{\veebar}

• Hey, just added some code tags for you :) Oct 15, 2012 at 1:18
• For reference, the veebar symbol is ⊻, though in LaTeX it might not have a space between the ∨ and the bar
– mic
Nov 19, 2020 at 4:17

Another way of representing the XOR connective is by using a W-like symbol (as in p W q), also used in Set Theory to refer to disjunctive union. Since this symbol does not seem to appear in the Comprehensive LaTeX symbol list, you can create it by joining two "or" connectives together through the following command:

\newcommand{\xor}{%
\mathbin{%
{\vee}\mspace{-2.9mu}\nonscript\mspace{0.3mu}{\vee}%
}%
}


that however doesn't work on second levels subscripts/superscripts

Full example:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\xor}{%
\mathbin{%
{\vee}\mspace{-2.9mu}\nonscript\mspace{0.3mu}{\vee}%
}%
}

\begin{document}

$A\xor B_{x \xor y}$

\end{document} • Welcome! Please provide a complete example. What defines \mspace? It is not a default LaTeX command.
– cfr
Apr 21, 2016 at 1:38
• Thanks! It would still be better to give a complete example even though other answers to this question don't. Also, I'm pretty sure this can't possibly be a good way to do it, but I've up-voting anyway as I appreciate the effort ;). (It can't be right to add space like that in maths mode and shouldn't this be declared as a maths symbol?)
– cfr
Apr 21, 2016 at 1:50
• You're right about the example, the spaces and the symbol declaration. The command still needs some fine-tuning. Thanks for the feedback and advice! Apr 21, 2016 at 5:15
• I've taken the liberty of turning your good idea into working code; \DeclareMathOperator was not the correct tool and \ooalign did nothing; using \mspace and mu units allows for making it work also in sub/superscripts (alas, not in second level ones). Apr 21, 2016 at 8:01

I found a bit lame solution, but it works for me. Just do:

\underline{\vee}

• what about \veebar from the mathabx package?
– jon
Nov 30, 2011 at 16:01

I use this one \overline{\vee}.

Hard to believe this one was overlooked. In Overleaf, I type the following:

P \dot{\lor} Q


results in:

P ̇∨ Q

• Actually to provide some spacing consistent with embedded functions, such as P v Q, one can include an inelegant pair of hspaces: Dec 22, 2021 at 16:20
• $P \hspace{0.01in} \dot{\lor} \hspace{0.05in} Q$ Dec 22, 2021 at 16:21
• The proper way is \mathbin{\dot\lor}. Dec 22, 2021 at 16:26