# 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. Commented 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
Commented 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. Commented Oct 9, 2010 at 9:31
• Alternatively, \lxor to match \lor, \land, etc. Commented 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! Commented 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 :) Commented 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
Commented 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
Commented 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
Commented 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! Commented 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). Commented 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
Commented 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: Commented Dec 22, 2021 at 16:20
• $P \hspace{0.01in} \dot{\lor} \hspace{0.05in} Q$ Commented Dec 22, 2021 at 16:21
• People are just not using the same notation as you. // You should edit the answer to add more information; also you can add image to answers. Commented Dec 22, 2021 at 16:25
• The proper way is \mathbin{\dot\lor}. Commented Dec 22, 2021 at 16:26
• No one above suggested \dot\lor from what I saw above. Either way will work. Yours is more compact or "proper". Note my acknowledgement of "inelegant". Commented Dec 23, 2021 at 4:44

\oplus gives me for XOR

\odot gives me for XNOR, which is equivalent to leftrightarrow which is if and only if