views:

4313

answers:

6

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  A: 

How about

\^{}

or

\verb|^|

?

genehack
\verb is never allowed inside the argument to other commands, so is of limited use for this sort of thing.
Will Robertson
+1  A: 
paxdiablo
Cool link ... thanks.
Anthony Cramp
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
A: 

\^ 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 used in programming languages frequently.

Karl
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
I know it's not the cleanest answer, but it works on my machine, you know how that goes...
Karl
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
+11  A: 

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
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
Just tried your answer, looks good, thanks.
Anthony Cramp
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
Thanks for \mathbin :)
ShreevatsaR
A: 

I highly recommend the short math guide which includes a list of symbols.

dreeves
A: 

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

Dayo Adetoye