# Commands with Capital letters in their name

A topic that appear over and over is to explain the difference about commands such as \operatorname vs. \DeclareMathOperator. So far I've seen discussions about using one or the other, but no one explains if there is a substantial difference between them.

My question, however, goes a bit further. I believe that commands with capital letters in their names are a sort of special commands, say a lower level language of the programming (Am I right?).

Thus,

Questions

• What is (are) the difference(s) between \operatorname and \DeclareMathOperator?
• Is it customary to reserve "capitalised" commands to writing of classes?
• In the same spirit, What is the difference between \usepackage and \RequirePackage

I'll stop asking to avoid a lengthy post. Cheers.

\operatorname is a document-level command that typesets a name at that point \operatorname{foo} typesets foo with the spacing and font of an operator. \DeclareMathOperator is a package level command that defines a command that prodiuces an operator name.
\usepackage and \RequirePackage are identical apart from their name the definition of the former is \let\usepackage\RequirePackage
• I think it's worth pointing out that this (\DeclareMathOperator) is a case where the distinction between package and document level commands is blurred. I certainly use \DeclareMathOperator in documents. Aug 19 '13 at 13:08
• @IanThompson sure but probably in the preamble (which is essentially a local unnamed package) you wouldn't I assume use it like \operatorname in the middle of a formula? Aug 19 '13 at 13:15
• @IanThompson In my mental model the document begins at \begin{document} (there is a hint in the syntax:-) (the \usepackage/\RequirePackage distinction breaks that model, but life's complicated) Aug 19 '13 at 13:31