20

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.

Jason Plank
  • 2,336
  • 5
  • 31
  • 40
Anthony Cramp
  • 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 Answers7

19

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.

Will Robertson
  • 62,540
  • 32
  • 99
  • 117
  • 2
    There 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
  • Just tried your answer, looks good, thanks. – Anthony Cramp Dec 01 '08 at 05:09
  • 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
12

Use the wedge symbol as a superscript. It has the perfect size.

Something like this:

$ ^\wedge $
Jason Plank
  • 2,336
  • 5
  • 31
  • 40
txemagon
  • 121
  • 1
  • 2
9

How about

\^{}

or

\verb|^|

?

genehack
  • 136,130
  • 1
  • 24
  • 24
4

Use \textasciicircum in text mode. If you are in math mode, you need to use something like $\mbox{\textasciicircum}$.

Jason Plank
  • 2,336
  • 5
  • 31
  • 40
4

This is what I did:

$2\hat{\text{ }}3$
Kjuly
  • 34,476
  • 22
  • 104
  • 118
solveeid
  • 41
  • 1
3

Within math mode, you can use:

$7 \^{ } 3 = 4$

to do this, as shown from the online LaTeX renderer here.

enter image description here

paxdiablo
  • 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
2

\^ 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.

Jason Plank
  • 2,336
  • 5
  • 31
  • 40
Karl
  • 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