164

This is difficult for me to explain, but how do I put words over a symbol? For instance, I want to add words over an equal sign. Anyone know the command/syntax for that?

Also adding ^ doesn't cut it..., I want the text to appear ON TOP.

Mensch
  • 65,388
Lemon
  • 3,153

4 Answers4

176
$\stackrel{sometext}{=}$

if sometext is not intended to be in math mode then write \text{sometext} within. (\text is available in amsmath package)

$\stackrel{\text{sometext}}{=}$

blessings

  • Is it possible to change the size and fonts of the text? I tried {\small sometext|, but it didn't work. Also the syntax isn't working very well in \begin{align}...\end{align} environment – Lemon Sep 25 '12 at 23:36
  • 6
    @jak: Please include a minimal working example (MWE) that shows your current usage and highlight clearly what you want or need changed. Do so via an edit to your post. – Werner Sep 25 '12 at 23:55
  • 1
    @jak: You can't use \small in mathmode. Have a look at Gonzalo's answer, he successfully uses \tiny there... – Tom Bombadil Sep 26 '12 at 01:19
  • @Hawk now with my edit, by using the command \text inside, you can use any text command you want ;) – loved.by.Jesus Feb 18 '16 at 15:54
  • https://tex.stackexchange.com/a/39230/75621 suggests to use \underset instead of \stackrel, because the former is "obsolete". – AXO Oct 21 '19 at 16:10
129

You can use a combination of \stackrel and \mathclap (from the mathtools package):

\documentclass{article}
\usepackage{mathtools}

\newcommand\myeq{\stackrel{\mathclap{\normalfont\mbox{def}}}{=}}

\begin{document}

\begin{align*}
a &\myeq b \\
  &=c \\
  &= d.
\end{align*}

\end{document}

enter image description here

If using mathtools is not an option, you can use a \makebox of width 0pt:

\documentclass{article}
\usepackage{amsmath}

\newcommand\myeq{\mathrel{\stackrel{\makebox[0pt]{\mbox{\normalfont\tiny def}}}{=}}}

\begin{document}

\begin{align*}
a &\myeq b \\
  &=c \\
  &= d.
\end{align*}

\end{document}

enter image description here

Even better, if amsmath has been loaded, is to use \overset instead of \stackrel; a little example using \tiny\sffamily for "def" :

\documentclass{article}
\usepackage{amsmath}

\newcommand\myeq{\mathrel{\overset{\makebox[0pt]{\mbox{\normalfont\tiny\sffamily def}}}{=}}}

\begin{document}

\begin{align*}
a &\myeq b \\
  &=c \\
  &= d.
\end{align*}

\end{document}

enter image description here

Inside the argument for \mbox one can use some of the font modifiers, as I did in my second and third examples.

Particularly, I don't like this kind of notation (it's not really necessary); you should consider if you really need the text above the equal sign.

Moriambar
  • 11,466
Gonzalo Medina
  • 505,128
  • Wouldn't be \mbox better than \text in this case, so that the def is still upshape even e.g. in theorem? – yo' Sep 26 '12 at 06:43
  • @tohecz -- if upshape is always desired, then the expression (as in this case) is probably an operator name, so that approach would be better. – barbara beeton Sep 26 '12 at 12:44
  • @tohecz yes; I updated my answer. Thanks you. – Gonzalo Medina Sep 26 '12 at 14:47
  • I'd prefer \overset to \stackrel; instead of \mbox I'd use \mathrm or \textnormal. – egreg Sep 26 '12 at 15:52
  • @egreg; right; I've added an example with \overset; thank you. I kept the \mbox since I wanted to illustrate changes to the font for the text (which the OP seems to want to apply according to a comment to the other answer). – Gonzalo Medina Sep 26 '12 at 17:23
  • You should issue \normalfont inside the \mbox anyway, or "def" would inherit the font attributes which are current outside the formula (it may be italics in a theorem statement, for instance). – egreg Sep 26 '12 at 17:33
  • @egreg oh, you're right. Added. Thanks, again. – Gonzalo Medina Sep 26 '12 at 20:17
  • I learned from https://tex.stackexchange.com/questions/130510/write-text-correctly-in-equations that we can use \operatorname{def} to have "def" with proper text font withing a theorem environment. Here "def" feels like an operator anyway, just like cos and sin. – verdelite Feb 20 '20 at 04:52
  • @verdelite I would use \textnormal rather than \operatorname. "def" is more of a piece of descriptive text than an operator which is inherently a math object. Sine is, for example, a function. "Define" is by no means a math object. – Long Horn Sep 05 '23 at 12:17
96
$\overset{\mathrm{def}}{=}$

\overset is available in amsmath package.

Good luck.

Stefan Pinnow
  • 29,535
MathOverview
  • 2,921
6

All answers here suppose that you are using LaTeX (??). If it is not true then there is standard plain TeX macro \buildrel for doing this. The syntax is \buildrel (what above) \over (relation)

$a \buildrel \rm def \over = b$
\bye
wipet
  • 74,238