
É bem conhecido \big\mid
que gera um erro. Mas por que é assim? Até onde eu sei, \mid
é equivalente a \mathrel|
, enquanto \lvert
e \rvert
são equivalentes a \mathopen|
e \mathclose|
, respectivamente --- assim como \vert
é equivalente a |
. E \lvert,\rvert
,fazertrabalhar com ambos \big, \bigl
e \bigr
. Então, por simetria, acho que faria sentido \mid
funcionar com \big,\bigm
etc.
MWE:
\documentclass{article}
\begin{document}
$\bigl\rvert ... \bigr\lvert$ works fine.
$\big\mid$ does not.
\end{document}
Observe que não estou procurando umsoluçãopara imprimir um mais alto \mid
; Eu sei que poderia usar \big|
or \bigm|
. Eu só estou curioso.
Responder1
Os comandos
\bigl\vert
,\bigm\vert
e\bigr\vert
são semanticamente simétricos. Aliás, os trigêmeos dos comandos\bigl\lvert \bigl\vert \big\lvert
e\bigr\rvert \bigr\vert \big\rvert
, respectivamente, produzem a mesma saída.É o comando
\mid
um pouco estranho, semanticamente falando. Como @egreg observou em um comentário,\mid
é construído como um símbolo de relação e não está configurado para receber um prefixo modificador de tamanho.
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\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.
\end{document}
Responder2
Usar \big
geralmente é errado porque produz um átomo comum. Então tem-se melhor aproveitamento \bigl
para abrir cercas, \bigr
para fechar e \bigm
para relações.
A definição de \bigX
ultimamente funciona \big
de qualquer maneira, mas primeiro adicionando o tipo correto. E \big<token>
simplesmente faz
\left<token>
portanto, devemos garantir que o argumento to \bigX
seja um delimitador, o que \mid
não é.
Poderíamos, em princípio, eliminar esta limitação para relações que sabemos serem construídas sobre um delimitador:
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\let\amsmath@bigm\bigm
\renewcommand{\bigm}[1]{%
\ifcsname fenced@\string#1\endcsname
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\expandafter\amsmath@bigm\csname fenced@\string#1\endcsname}%
{\amsmath@bigm#1}%
}
\newcommand{\DeclareFence}[2]{\@namedef{fenced@\string#1}{#2}}
\makeatother
\DeclareFence{\mid}{|}
\begin{document}
$\bigl\{\, x\in X \bigm\mid x\notin X \,\bigr\}$
\smallskip
$\bigl\{\, x\in X \bigm| x\notin X \,\bigr\}$
\end{document}
Esta é apenas uma prova de conceito , então não tentei generalizar para \bigm
irmãos \Bigm
e \biggm
.\Biggm