I've seen an equals sign with a small exclamation mark on top being used to say "equals because of data that was given in the problem", for example for a boundary condition or initial value in a differential equation.

A rough picture of what I mean:

f(x) = 4

How do I typeset this in LaTeX? I've tried $=^!$ (which doesn't produce the desired result) and looked through the "relations" section of the Comprehensive List of Symbols without success.


That's very easy. And there are at least two identical solutions.


   a\stackrel{!}{=} b   % from vanilla LaTeX

   a\overset{!}{=} b    % from »amsmath«

Both give identical output in this case but \overset should be preferred because it takes care of operator spacing.

|improve this answer|||||
  • 1
    Is there any reason to use the ams solution over the plain TeX version? – Seamus Dec 17 '10 at 18:05
  • 11
    »amsmath« is always preferable. – Thorsten Donig Dec 17 '10 at 22:18
  • 2
    in most cases, it's preferable for some reason! For my part I'm not skeptical that it is better here, but I would be interested to know in what ways it's better :-) – Peter LeFanu Lumsdaine Dec 21 '10 at 6:32
  • 17
    @Peter: when you use amsmath, \stackrel can be considered obsolete as \overset does the same thing better, because it gives correct spacing with binary operators (like +, \oplus, etc.) and ordinary symbols. – Philippe Goutet Jan 20 '11 at 13:07
  • 1
    @ThorstenDonig: The output is ugly when I want to put a questionmark over equals sign, because "?" is too high above "=". How can I make it appear lower, right above "="? – Leo Aug 22 '12 at 7:02

is the command you search.


will lead to the sign you want to typeset. The first argument sits on top of the second argument, where the first one is smaller than the second one.

|improve this answer|||||

If you needed to customize the separation between the overset, here's a way it could be done. The default is 3pt, halfway between the two examples shown.

 a \mathrel{\stackon[5pt]{$=$}{$\scriptstyle!$}} b
 a \mathrel{\stackon[1pt]{$=$}{$\scriptstyle!$}} b

enter image description here

|improve this answer|||||

just to add another one....

|improve this answer|||||
  • Also fine! Just the spacing is too tight for a relation symbol, but you could add \mathrel around the expression. – Stefan Kottwitz Dec 17 '10 at 18:28

Here's an oldie goldie

\[ a \buildrel!\over= b \]
|improve this answer|||||

To reduce typing and opportunity for syntax errors, it is better to place a frequently used typesetting algorithm inside a macro. Rather than type

        a\overset{!}{=} b

for each equation, one might utilize a macro in the preamble


and use it thusly


For myself, I use the following macro for an overset question mark:





|improve this answer|||||
  • 2
    Try to use it in text mode and you'll have a nasty surprise :-) This works in math mode because of a happy coincidence, since \ensuremath basically becomes \@firstofone. However, in text mode this becomes $relax\overset${!}{=} and goes quite wrong. Either you enclose the whole \overset construction in braces or (IMNSHO better) you eliminate \ensuremath altogether. – campa Mar 6 '18 at 16:12

Here is how you can define custom commands using special characters for the \stackrel approach.

% ...
$f(x) \eq! 4$

It is also nice to define \leq?, \mid? etc.

This solution is significantly better than writing \stackrel{?}{=} and friends frequently.

|improve this answer|||||
  • 1
    You'll regret doing this when $x/\!y$ will throw you a strange error. – egreg Oct 9 '19 at 9:07
  • @egreg Why? Just write $x/!y$ – okovko Oct 9 '19 at 10:48
  • That's a different thing. – egreg Oct 9 '19 at 12:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.