Define additional math operators to be typeset in roman

Mathematical operators, such as function names, should be set in roman type, not italics. Latex already has commands for some operators, including \max, \min, and \log. How can I define additional such commands?

-

\DeclareMathOperator{\foo}{foo} and \DeclareMathOperator*{\hocolim}{hocolim} for sub- and superscripts in the limits position.

-
Great! I thought there was some way of handling the limits, but couldn't remember it. –  Andrew Stacey Jul 30 '10 at 18:56

Alternatively, if you are using any of the packages from the AMS (amsart.cls or amsmath.sty) then there is a command \DeclareMathOperator which does what it says on the tin! For example,

\DeclareMathOperator{\Det}{Det}

I think that it can handle variants, but I don't recall off the top of my head.

-
Ah, you were faster :-) –  Grigory M Jul 30 '10 at 18:57
The slower won! –  The Last Error Mar 15 '12 at 18:25

If you're looking for something one-off, you can always use \mathrm in a math environment like so:

\mathrm{ultimatefunction}(x)

Which will display 'ultimatefunction' in a roman type.

-
Note that \mathrm differs from \operatorname or \DeclareMathOperator in terms of spacing, and that the latter two are preferable to the first in this respect (see this answer for more detailed information). –  Andrew Uzzell Nov 13 '12 at 12:09

Define the command \newoperator as follows:

\providecommand{\newoperator}[3]{%
\newcommand*{#1}{\mathop{#2}#3}}

Here is an example that defines \FD as an operator:

\newoperator{\FD}{\mathrm{FD}}{\nolimits}
-
For example:  $$3 \cdot \text{FoO} (x)$$
Welcome to TeX.SX. A tip: If you indent lines by 4 spaces, then they're marked as a code sample. You can also highlight the code and click the "code" button ({}) or hit Ctrl+K. You may want to have a look to Why is [ … ] preferable to $$…$$? to better typeset equations. –  Claudio Fiandrino Nov 27 '13 at 15:13