14

I want to define \ext to behave exactly like \lim.

I tried \newcommand{\ext}{{\mathrm{ext}}\,} but that doesn't behave exactly like \lim.

1

4 Answers 4

10

If you use amsmath, which is recommendable for math texts in any way, a similar definition to \lim is

\def\ext{\qopname\relax m{ext}}

since amsmath, specifically amsopn.sty, defines:

\def\lim{\qopname\relax m{lim}}
5
  • 1
    Why not use \operatorname? I think it is a robust command.
    – Rushavski
    Mar 16, 2011 at 0:26
  • 1
    @Rushavski: I posted this solution because \ext shall behave exactly like \lim, not a bit different or even better. So I suggested the original definition of \lim in amsmath.
    – Stefan Kottwitz
    Mar 16, 2011 at 6:39
  • 1
    Curious: In what way would it behave different if I would use \operatorname?
    – Albert
    Mar 16, 2011 at 9:45
  • 4
    Then you should have suggested \DeclareMathOperator*\ext{ext} which will behave exactly like \lim and has the advantage of not using internal amsmath macros. (The one difference is that there will be some local assignments that are totally irrelevant inside the \mathop for this particular example. Cf. \DeclareMathOperator*\good{foo-bar} \def\bad{\qopname\relax m{foo-bar}}.)
    – TH.
    Mar 16, 2011 at 19:22
  • @TH: Maybe, I just focused on exactly like. So I showed how to do it in exactly the same way and where it can be found, straightforward. Hope that adds something (general practice in copying macro behavior), otherwise the link to the "duplicate" would have been sufficient. Give me downvotes for it. :-) I upvoted Gonzalos solution because it is good.
    – Stefan Kottwitz
    Mar 16, 2011 at 20:55
27

Use \DeclareMathOperator or its starred form (if the operator should take limits):

\usepackage{amsmath}

% \DeclareMathOperator{<command>}{<text>}
% if the operator shouldn't take limits
\DeclareMathOperator\ext{ext}
% if the operator should take limits
% \DeclareMathOperator*\ext{ext}
1
  • 3
    The stared version produces something that behaves exactly like \lim.
    – TH.
    Mar 16, 2011 at 19:23
3

try

\makeatletter
\def\ext{\mathop{\operator@font ext}}
\makeatother
3
  • Does that do limits correctly?
    – Caramdir
    Mar 15, 2011 at 19:44
  • sure, why should it not?
    – user2478
    Mar 15, 2011 at 20:12
  • Sorry, the command name sort of implies that it only sets the font. It seems to work as intended though.
    – Caramdir
    Mar 16, 2011 at 3:59
1

As an alternative to \DeclareMathOperator, there is also \mathop to be used with \newcommand. For example:

\newcommand{\ext}{\mathop{\mathrm{ext}}
1
  • \mathop is a tex primitive, so this definition is a hybrid, non-latexy. if you look into the documentatin for amsopn.sty (texdoc mathopn) you will see that \mathop is used there for the "internal" definitions, but command naming quickly shifts into the latex realm. you will also see that the choice of commands is stated to be governed by the amount of memory they use. remember, amsmath and its kin were written when memory use still mattered. Mar 16, 2011 at 13:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .