I'd like to have an easy way to declare an operator that brackets its argument with a particular delimiter. As an example I'd like to be able to write


to mean the same as


FYI I know how to do


but I thought I once saw a package that provided some command like


sort of a combination of \DeclarePairedDelimiter and \DeclareMathOperator and I think it also defined a starred version of the operator that didn't take any argument and didn't produce the delimiters.

2 Answers 2


I don't remember of any such package. Your \Pr command maybe obtained by


With this definition, \Pr would behave exactly as if it was defined with \DeclarePairedDelimiter; that is, the *-form would use \left and \right.

If you want to always use \left and \right, you might follow Werner's suggestion, or go the hard way:


(requires amsmath, of course). Note: \renewcommand{\Pr}{...} is necessary, because \Pr is already defined in LaTeX.

  • Is there a way to redeclare existing operators such as \ln to use delimiters as well?
    – math
    Commented Apr 29, 2014 at 20:37
  • 2
    @math Just do \renewcommand{\ln}{\operatorname{ln}\Prfences}. But the logarithm doesn't want delimiters: \log x is the best way to write it.
    – egreg
    Commented Apr 29, 2014 at 20:48
  • I have the equation by Stejskal and Tanner: $\ln{A(t)} = \ln{A(0)} - bg^TTg$ But when you deal with summation and \ln I want to separate the argument of \ln from the summands. Clearly I could rewrite it to $\ln{A(t)-\ln{A(0)} = - bg^TTg$, but the problem to separate the logarithm expression from summands may remain. So can you comment further on that, why log dislikes delimiters?
    – math
    Commented Apr 29, 2014 at 21:34
  • @math Add the delimiters; I don't think you get a clearer input with $\log{A(t)}$ than with $\log(A(t))$.
    – egreg
    Commented Apr 29, 2014 at 21:42
  • don't get me wrong. I just asked as to get more insight not to be too picky. I thought about \log[A(0)] - bg^TTg.
    – math
    Commented Apr 30, 2014 at 7:56

Here is a way to define your own operator with an optional bracketing:

\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{xparse}% http://ctan.org/pkg/xparse
\DeclareDocumentCommand{\Pr}{s m}{% \Pr[*]{..}
  \IfBooleanTF{#1}% Condition on *
    {#2}% Print only the argument in starred * version
    {\left[#2\right]}% Print bracketed argument [ ] in unstarred version

This is $\Pr{2}$, and here is

Operator with starred version that brackets/doesn't bracket argument

The above code defines the macro \Pr{..} (actually redefines \Pr, since it is provided by amsmath), but also provides a starred * version. The unstarred version, as requested, prints its argument in extensible brackets, while the starred * version removes these brackets.

The xparse package provides an easy interface to specify starred versions of commands and environments. The xifthen package provides conditional support.


You must log in to answer this question.

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