Warum funktioniert \big\mid nicht?

Warum funktioniert \big\mid nicht?

Es ist bekannt, dass es \big\mideinen Fehler auslöst. Aber warum ist das so? Soweit ich weiß, \midist gleichbedeutend mit \mathrel|, während \lvertund jeweils \rvertgleichbedeutend mit \mathopen|und sind \mathclose|– genau wie \vertgleichbedeutend mit ist |. Und \lvert,\rvert,Tunfunktioniert sowohl mit \big, \biglals auch \bigr. Aus Symmetriegründen denke ich, dass es Sinn ergibt, dass auch \midmit usw. funktioniert .\big,\bigm

MWE:

\documentclass{article}

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

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

Beachten Sie, dass ich nicht auf der Suche nach einemLösungzum Drucken eines größeren \mid; ich weiß, ich könnte einfach \big|oder verwenden \bigm|. Ich bin nur neugierig.

Antwort1

  • Die Befehle \bigl\vert, \bigm\vert, und sind semantisch symmetrisch. Übrigens erzeugen \bigr\vertdie Befehlstripel \bigl\lvert \bigl\vert \big\lvertbzw. die gleiche Ausgabe.\bigr\rvert \bigr\vert \big\rvert

  • Es ist der Befehl \mid, der semantisch gesehen ein bisschen ein Ausreißer ist. Wie @egreg in einem Kommentar angemerkt hat, \midist es als Beziehungssymbol aufgebaut und nicht darauf ausgelegt, ein größenveränderndes Präfix anzunehmen.

Bildbeschreibung hier eingeben

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

Antwort2

Using \bigist grundsätzlich falsch, da es ein gewöhnliches Atom erzeugt. Daher ist using besser \biglfür das Öffnen von Zäunen, \bigrfür das Schließen und \bigmfür Beziehungen geeignet.

Die Definition von \bigXletztendlich tut es \bigsowieso, aber zuerst fügt man den richtigen Typ hinzu. Und \big<token>tut es einfach

\left<token>

Daher müssen wir sicherstellen, dass das Argument \bigXein Trennzeichen ist, was \midnicht der Fall ist.

Man könnte diese Einschränkung im Prinzip für Relationen aufheben, von denen wir wissen, dass sie auf einem Trennzeichen aufbauen:

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

Dies ist nur ein Proof of Concept, daher habe ich nicht versucht, eine Verallgemeinerung auf \bigmdie Geschwister \Bigm, \biggmund zu machen \Biggm.

Bildbeschreibung hier eingeben

verwandte Informationen