I'm trying to display a caret (^
) in math mode in LaTeX to represent the exclusive or operation implemented in the "C languages". By default, ^
is for creating a superscript in math mode. The closest I can seem to get is by using \wedge
, which isn't the same.

- 2,336
- 5
- 31
- 40

- 4,495
- 6
- 26
- 27
-
For what it's worth, \wedge is the common symbol for AND (conjunction), so it's not a good idea to use a similar-looking character for exclusive OR. Unless you are typesetting code, in which case you should not be using math mode anyway. – ShreevatsaR Dec 01 '08 at 13:35
-
This should go in latex overflow page – Whitecat Apr 10 '13 at 17:05
-
@Whitecat Do you mean `http://tex.stackexchange.com/`? I think old questions like this will not be migrated. – madth3 Apr 10 '13 at 20:25
-
I highly recommend the [short math guide](ftp://ftp.ams.org/pub/tex/doc/amsmath/short-math-guide.pdf) which includes a list of symbols. – dreeves Dec 29 '08 at 20:37
7 Answers
You might want to use the common symbol for exclusive or instead, \oplus (but give it a proper name with something like \newcommand\XOR{\oplus}
).
The caret is a bit too small to be noticeable as a binary operator. However, if you do insist using a caret instead, use this:
\newcommand\XOR{\mathbin{\char`\^}}
$x \XOR y$
The \mathbin
puts the right spacing around the symbol for a binary operator, and the \char
ensures that the glyph is obtained from the roman font.

- 62,540
- 32
- 99
- 117
-
2There are at least four "common symbols" for exclusive or, depending on context. I wanted the one used in the "C languages" which is the carat. The real question that hasn't been mentioned is "why am I using math mode for code?" I probably should have just used a verbatim environment. – Anthony Cramp Dec 01 '08 at 05:02
-
-
Good point with which symbol to use. Take a look at the listings package, if you haven't already. It can do code printing very nicely. – Will Robertson Dec 01 '08 at 05:23
Use the wedge symbol as a superscript. It has the perfect size.
Something like this:
$ ^\wedge $

- 2,336
- 5
- 31
- 40

- 121
- 1
- 2
How about
\^{}
or
\verb|^|
?

- 136,130
- 1
- 24
- 24
-
1\verb is never allowed inside the argument to other commands, so is of limited use for this sort of thing. – Will Robertson Dec 01 '08 at 04:56
Use \textasciicircum
in text mode. If you are in math mode, you need to use something like $\mbox{\textasciicircum}$
.

- 2,336
- 5
- 31
- 40

- 41
- 1
Within math mode, you can use:
$7 \^{ } 3 = 4$
to do this, as shown from the online LaTeX renderer here.

- 854,327
- 234
- 1,573
- 1,953
-
Actually I found this editor seems to double backslashes before passing to LaTeX, so e.g. `\alpha\beta` produces the output *alpha* and then *beta* on the next line, rather than the actual Greek symbols for alpha and beta on a single line. OTOH the "original" equation editor page worked: http://www.codecogs.com/latex/eqneditor.php – j_random_hacker Oct 07 '10 at 10:41
\^
is an accent character that applies to other characters, \^{4}
gives a 4
with a carat on its head. It takes up no horizontal space. If you write $7 \^{} 3 = 4$
you get a 73
with a mark smashed onto both the 7
and the 3
. What you need then is to fill out the space a little bit. Through trial and error and a nice application called LatexIt, I found this sequence to work beautifully:
\hspace{1.5} \^{} \hspace{1.5}
This gives a 3 unit width with the carat centered in it. It looks nice.
It is a pointy carat though, and \verb|^|
gives a more flattened one that looks more like a monotype font frequently used in programming languages.

- 2,336
- 5
- 31
- 40

- 8,967
- 5
- 29
- 31
-
I'm not sure this should be the accepted answer. As noted below, \^ isn't valid in math mode. Furthermore, rather than inserting manual spaces, use \mathbin{} instead to get the spacing right (see fntguide.pdf). – Will Robertson Dec 01 '08 at 04:55
-
I know it's not the cleanest answer, but it works on my machine, you know how that goes... – Karl Dec 01 '08 at 05:15
-
If by "works" you mean "gives an error" :) I think it's a bad design decision that some LaTeX IDEs are set up to scroll past all the errors and warning. – Will Robertson Dec 01 '08 at 05:24