Почему \big\mid не работает?

Почему \big\mid не работает?

Известно, что \big\midвыдает ошибку. Но почему так? Насколько мне известно, \midэквивалентно \mathrel|, тогда как \lvertи \rvertэквивалентны \mathopen|и \mathclose|, соответственно --- точно так же, как \vertэквивалентно |. И \lvert,\rvert,делатьработают как с , так \big, \biglи \bigr. Поэтому по симметрии, я думаю, было бы логично, чтобы \midработало и с \big,\bigmт. д.

МВЭ:

\documentclass{article}

\begin{document}
$\bigl\rvert ... \bigr\lvert$ works fine.

$\big\mid$ does not.
\end{document}

Обратите внимание, что я не ищурешениедля печати более высокого \mid; Я знаю, что я мог бы просто использовать \big|или \bigm|. Мне просто любопытно.

решение1

  • Команды \bigl\vert, \bigm\vertи \bigr\vertсемантически симметричны. Кстати, триплеты команд \bigl\lvert \bigl\vert \big\lvertи \bigr\rvert \bigr\vert \big\rvert, соответственно, производят одинаковый вывод.

  • Это команда \mid, которая немного выделяется, семантически говоря. Как заметил @egreg в комментарии, \midона построена как символ отношения и не настроена на прием префикса, изменяющего размер.

введите описание изображения здесь

\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}

решение2

Использование \bigвообще неправильно, потому что производит обычный атом. Так что лучше использовать \biglдля открытия заборов, \bigrдля закрытия и \bigmдля отношений.

Определение \bigXв конечном счете делает \bigвсе равно, но сначала добавляя правильный тип. И \big<token>просто делает

\left<token>

поэтому мы должны убедиться, что аргумент \bigXявляется разделителем, что \midне так.

В принципе, можно было бы снять это ограничение для отношений, которые, как мы знаем, построены на разделителе:

\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}

Это всего лишь доказательство концепции, поэтому я не пытался обобщать ее на \bigmбратьев и сестер \Bigm, \biggmи \Biggm.

введите описание изображения здесь

Связанный контент