Comment déclarer de nouveaux opérateurs mathématiques?

Pour cela, vous pouvez utiliser la commande \mathop. Par exemple :

% Dans le préambule
\newcommand{\diag}{%
    \mathop{\mathrm{diag}}}
% (...)
% Dans le document
\[\diag_1^n \]

\documentclass{article}
\usepackage{amsmath}
\pagestyle{empty}
\begin{document}
\newcommand{\diag}{\mathop{\mathrm{diag}}}
\[\diag_1^n \]
\end{document}

Les indices et les exposants associés à \diag seront placés en dessous et au-dessus du nom de la fonction, comme ils le sont pour la commande \sum. Si vous voulez que vos indices et exposants soient toujours placés à droite, utilisez la commande \nolimits (Pour plus d'information, voir la question « Comment positionner les limites des grands opérateurs ? »). :

% Dans le préambule
\newcommand{\diag}{%
    \mathop{\mathrm{diag}}\nolimits}
% (...)
% Dans le document
\[\diag_1^n \]

\documentclass{article}
\usepackage{amsmath}
\pagestyle{empty}
\begin{document}
\newcommand{\diag}{\mathop{\mathrm{diag}}\nolimits}
\[\diag_1^n \]
\end{document}

L'ensemble amsmath (dans son extension amsopn automatiquement chargée par l'extension amsmath) fournit une commande \DeclareMathOperator qui effectue le même travail que la deuxième définition ci-dessus :

% Dans le préambule
\DeclareMathOperator{\diag}{diag}
% (...)
% Dans le document
\[\diag_1^n \]

\documentclass{article}
\usepackage{amsmath}
\pagestyle{empty}
\DeclareMathOperator{\diag}{diag}
\begin{document}
\[\diag_1^n \]
\end{document}

Pour créer notre commande \diag originale, il faut utiliser la commande étoilée \DeclareMathOperator* qui génère un opérateur qui a toujours ses exposants et exposants.

% Dans le préambule
\DeclareMathOperator*{\diag}{diag}
% (...)
% Dans le document
\[\diag_1^n \]

\documentclass{article}
\usepackage{amsmath}
\pagestyle{empty}
\DeclareMathOperator*{\diag}{diag}
\begin{document}
\[\diag_1^n \]
\end{document}

La commande \operatorname de l'extension amsopn vous permet d'introduire des opérateurs ad hoc directement dans vos mathématiques. Vous pouvez donc saisir :

\[ \operatorname{foo}(bar) \]

Ceci sera équivalent à :

% Dans le préambule
\DeclareMathOperator{\foo}{foo}
% (...)
% Dans le document
\[ \foo(bar) \]

Comme pour \DeclareMathOperator, il existe une version étoilée \operatorname* pour gérer la position des indices et exposants.

Ce qui suit est informatif car l'extension amstex est obsolète.

En \LaTeX 2.09, l'extension amstex définit les commandes \operatorname et \operatornamewithlimits.


Source: Defining a new log-like function in LaTeX