Por que \big\mid não funciona?

Por que \big\mid não funciona?

É bem conhecido \big\midque gera um erro. Mas por que é assim? Até onde eu sei, \midé equivalente a \mathrel|, enquanto \lverte \rvertsão equivalentes a \mathopen|e \mathclose|, respectivamente --- assim como \verté equivalente a |. E \lvert,\rvert,fazertrabalhar com ambos \big, \bigle \bigr. Então, por simetria, acho que faria sentido \midfuncionar com \big,\bigmetc.

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\verte \bigr\vertsão semanticamente simétricos. Aliás, os trigêmeos dos comandos \bigl\lvert \bigl\vert \big\lverte \bigr\rvert \bigr\vert \big\rvert, respectivamente, produzem a mesma saída.

  • É o comando \midum 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.

insira a descrição da imagem aqui

\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 \biggeralmente é errado porque produz um átomo comum. Então tem-se melhor aproveitamento \biglpara abrir cercas, \bigrpara fechar e \bigmpara relações.

A definição de \bigXultimamente funciona \bigde qualquer maneira, mas primeiro adicionando o tipo correto. E \big<token>simplesmente faz

\left<token>

portanto, devemos garantir que o argumento to \bigXseja um delimitador, o que \midnã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 \bigmirmãos \Bigme \biggm.\Biggm

insira a descrição da imagem aqui

informação relacionada