# Typeset an = with an ! above

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.

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}

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

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


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

-
Is there any reason to use the ams solution over the plain TeX version? –  Seamus Dec 17 '10 at 18:05
»amsmath« is always preferable. –  Thorsten Donig Dec 17 '10 at 22:18
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
@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
@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 "="? –  Leon Lampret Aug 22 '12 at 7:02

Here's an oldie goldie

\documentclass{article}
\begin{document}
$a \buildrel!\over= b$
\end{document}

-

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.

\documentclass[11pt]{article}
\usepackage{stackengine}
\begin{document}
$a \mathrel{\stackon[5pt]{=}{\scriptstyle!}} b \quad a \mathrel{\stackon[1pt]{=}{\scriptstyle!}} b$
\end{document}


-

\mathop{=}\limits^!

-
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
\stackrel#1#2

\stackrel{!}{=}