It is well-known \big\mid throws an error. But why is it so? As far as I know, \mid is equivalent to \mathrel|, while \lvert and \rvert are equivalent to \mathopen| and \mathclose|, respectively --- just like \vert is equivalent to |. And \lvert,\rvert, do work with both \big, \bigl and \bigr. So by symmetry, I think it would make sense that \mid worked with \big,\bigm etc. as well.



$\bigl\rvert ... \bigr\lvert$ works fine.

$\big\mid$ does not.

Note that I am not looking for a solution to printing a taller \mid; I know I could just use \big| or \bigm|. I'm just curious.

  • Yes, I do, but why? It works with \lvert...\rvert, and by symmetry, it ought to work with \mid, too.
    – Gaussler
    Commented Apr 18, 2015 at 10:16
  • I'm afraid I have no special insights into DEK's linguistic and semantic preferences... BTW, \big| and \bigm| do not produce the same output.
    – Mico
    Commented Apr 18, 2015 at 10:20
  • Indeed, I know that, but thanks for pointing it out if it wasn't clear enough from the question. :-)
    – Gaussler
    Commented Apr 18, 2015 at 10:22
  • 8
    \big must be followed by a delimiter; \mid is not a delimiter, but a relation symbol.
    – egreg
    Commented Apr 18, 2015 at 10:31

2 Answers 2

  • The commands \bigl\vert, \bigm\vert, and \bigr\vert are semantically symmetric. Incidentally, the triplets of commands \bigl\lvert \bigl\vert \big\lvert and \bigr\rvert \bigr\vert \big\rvert, respectively, produce the same output.

  • It's the command \mid that's a bit of an outlier, semantically speaking. As @egreg has noted in a comment, \mid is constructed as a relation symbol and is not set up to take a size-modifying prefix.

enter image description here


\dots\ $\bigl\lvert \ldots \bigm| \ldots \bigr\rvert$ \dots\ works fine.

\dots\ $\bigl\vert \ldots \bigm\vert \ldots \bigr\vert$ \dots\ works just the same.

\dots\ $\bigl\vert \ldots \big| \ldots \bigr\vert$ \dots\ works too, but it isn't the same.

  • Once you use any of \big or \bigx, it doesn't matter whether you use \lvert or \vert -- the category code doesn't matter since the \big commands change it anyways. See $+ \bigl\lvert - x$ vs $+ \big\lvert - x$.
    – yo'
    Commented Apr 18, 2015 at 10:44
  • @yo' - I put in that sentence as an indirect commentary on the code snippets \bigl\rvert and \bigr\lvert in the original posting. I wasn't quite sure what to make of them...
    – Mico
    Commented Apr 18, 2015 at 10:50

Using \big is generally wrong, because it produces an ordinary atom. So one has better using \bigl for opening fences, \bigr for closing and \bigm for relations.

The definition of \bigX ultimately does \big anyway, but first adding the correct type. And \big<token> simply does


so we must ensure that the argument to \bigX is a delimiter, which \mid isn't.

One could, in principle, lift off this limitation for relations that we know are built upon a delimiter:



  \ifcsname fenced@\string#1\endcsname
  {\expandafter\amsmath@bigm\csname fenced@\string#1\endcsname}%




$\bigl\{\, x\in X \bigm\mid x\notin X \,\bigr\}$


$\bigl\{\, x\in X \bigm| x\notin X \,\bigr\}$


This is just a proof of concept, so I didn't attempt a generalization to \bigm siblings \Bigm, \biggm and \Biggm.

enter image description here

  • What do you mean by "And \big<token> simply does \left<token>". Isn't \left a completely different command, whose use is restricted to \left...\right constructions?
    – Gaussler
    Commented Apr 18, 2015 at 10:59
  • 2
    @Gaussler Any \bigX like command eventually places the argument after \left, for constructing the bigger fence.
    – egreg
    Commented Apr 18, 2015 at 11:03

You must log in to answer this question.

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