You have to patch the `\@chapter`

command, which is responsible for writing the entries in the auxiliary files. The lines

```
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}
```

and

```
\addcontentsline{toc}{chapter}{#1}
```

should read with `\MakeUppercase{#1}`

instead of `#1`

.

Not quite a generic solution, as it assumes that the first letter is unique in the operator name. The `\relax`

are perhaps a bit optional I am always confused about when I should put some or not ;-)

```
\documentclass{amsart}
\usepackage[english,spanish]{babel}
\makeatletter
\newcommand\Max{\@tempcnta=\mathcode`\m\relax
\mathcode`\m=\mathcode`\M\max\mathcode`\m=\@tempcnta\relax}
\makeatother
\begin{document}
\begin{equation*}
\max_0^\infty = \Max_0^\infty \Max\nolimits_0^\infty m M
\end{equation*}
\selectlanguage{english}
\begin{equation*}
\max_0^\infty = \Max_0^\infty \Max\nolimits_0^\infty m M
\end{equation*}
\end{document}
```

Thanks to egreg for his comment(s). After having temporarily incorporated his simplification (of the code of my initial proposal) to the extension I am now proposing, I now return to the original thing, but also incorporate the later improvements signaled by `egreg`

.

The same restriction as above applies (the operator name should contain its initial letter only once).

```
\documentclass{amsart}
\usepackage[english,spanish]{babel}
\pagestyle{empty}
\makeatletter
\def\Tr@nsmogrify#1#2.{\expandafter\newcommand\csname #1#2\endcsname
{\mathchardef\Tr@ns@temp=\mathcode\lccode`#1\relax
\mathcode\lccode`#1=\mathcode`#1\lowercase{\csname#1#2\endcsname}%
\mathcode\lccode`#1=\Tr@ns@temp\relax}}
\@for\x:=Sin,Cos,Max,Min,Lim,Limsup,Liminf,Inf\do{%
\expandafter\Tr@nsmogrify \x.}
\makeatother
\begin{document}
\thispagestyle{empty}
\noindent
\begin{minipage}{.5\linewidth}
\begin{align*}
\min_0^\infty &= \Min_0^\infty\\
\min\nolimits_0^\infty &= \Min\nolimits_0^\infty\\
\max_0^\infty &= \Max_0^\infty\\
\lim_{x\to\infty} &= \Lim_{x\to\infty}\\
\liminf_{x\to\infty} &= \Liminf_{x\to\infty}\\
\limsup_{x\to\infty} &= \Limsup_{x\to\infty}\\
\inf_{x\in A} &= \Inf_{x\in A}\\
\sin^2 x +\cos^2 x &= \Sin^2 x +\Cos^2 x \\
\limsup_{x\to\infty} &= \Limsup_{x\to\infty}\\
m,M,l,L&,s,S,c,C
\end{align*}
\end{minipage}
\begin{minipage}{.5\linewidth}
\selectlanguage{english}%
\begin{align*}
\min_0^\infty &= \Min_0^\infty\\
\min\nolimits_0^\infty &= \Min\nolimits_0^\infty\\
\max_0^\infty &= \Max_0^\infty\\
\lim_{x\to\infty} &= \Lim_{x\to\infty}\\
\liminf_{x\to\infty} &= \Liminf_{x\to\infty}\\
\limsup_{x\to\infty} &= \Limsup_{x\to\infty}\\
\inf_{x\in A} &= \Inf_{x\in A}\\
\sin^2 x +\cos^2 x &= \Sin^2 x +\Cos^2 x \\
\limsup_{x\to\infty} &= \Limsup_{x\to\infty}\\
m,M,l,L&,s,S,c,C
\end{align*}
\end{minipage}
\end{document}
```

Here is the result:

Addendum:

The above definitions make `\Xyzt`

behave like `\xyzt`

with respect to the positions of *limits*, in inline as well as display style. But there *is* a difference: `\[\sin\limits_a^b\]`

or `$\sin\limits_a^b$`

do *not* put the `a`

and `b`

in *limits* positions, whereas `\[\Sin\limits_a^b\]`

and `$\Sin\limits_a^b$`

do. I would call this an unintended feature rather than a bug! This is illustrated by the following:

Note the asymmetry of behavior of the `amsmath`

operators `\sin`

and `\min`

. Whereas for the first `\limits`

does nothing, for the second `\nolimits`

does work. I will not qualify this as a bug of `amsmath`

(or rather `amsopn.sty`

), as there must be reasons beyond me, but I had never realized that until now.

PS: obviously the above image comes from a source with `\usepackage[spanish]{babel}`

but I checked that the exact same behavior is observed without any loading of babel. Note also that `\sin`

and `\min`

in `amsopn.sty`

are not defined via `\DeclareMathOperator`

, respectively `\DeclareMathOperator*`

, but only by some part of the code of these macros, but this is another not relevant detail.

PS2: as a matter of fact the `[spanish]{babel}`

defined operator names behave differently from the analogous `amsmath`

provided names with respect to limits.

## Best Answer

I would highly recommend you

do this, but you can usenot`\DeclareMathOperator`

to change how the operators are typeset:If you want the operator name in italics you can instead use:

Again, I would advice you to

do this. It is not consistent with the normal conventions.not## Notes:

`\let`

were necessary as we are redefining existing macros, so`\let`

the existing definition to`\relax`

eliminates the error message.## Code: