Verwendung von \big| und \right| im Vergleich zu \bigr\rvert und \right\rvert

Verwendung von \big| und \right| im Vergleich zu \bigr\rvert und \right\rvert

Basierend auf den Antworten aufdiese Frage(über \bigl, \bigr, \big, usw.) unddiese Frage(über \lvert, \rvert, |, usw.), würde ich denken, dass man immer, wenn man einen vertikalen Strich zur Abgrenzung auf der rechten Seite verwendet \rvert, \bigr\rvert, , usw. oder \right\rvert(oder \mright\rvert) schreiben sollte. Ich habe jedoch das Gefühl, dass ich diese in einigen Antworten gemischt sehe. Nehmen Sie zum Beispiel den Auszug

\right|_{#2} % this is the delimiter

ausdiese Antwortoder der Auszug

\NewDocumentCommand{\evalat}{sO{\big}mm}{%
  \IfBooleanTF{#1}
   {\mleft. #3 \mright|_{#4}}
   {#3#2|_{#4}}%
}

ausdiese AntwortWarum ist es sinnvoll, hier die unterschiedlichen Kombinationen zu verwenden?

Antwort1

OK, die kurze Antwort finden Sie in den Kommentaren. Hier ist dielaaaangeins.

Bitte beachten Sie: Diese Antwort gilt für das Original-TeX von Knuth, für eTeX und für pdfTeX. Ich weiß nicht, wie die Zeicheneingabe im Mathematikmodus und die mathematischen Schriftarten in anderen Satzmaschinen gehandhabt werden.z.B, in XeTeX. Darüber hinaus ist im Prinzip dieEingabencPaket könnte in die unten beschriebenen Prozesse eingreifen, worauf am Ende kurz eingegangen wird.

Bereits vorhandene Antworten, die nützliche Informationen zu diesem Thema geben, sind unter anderem:


Zeichen-Token, ihre mathematischen Codes und Atomarten

Wie Sie wissen, werden die Eingabetoken im „Mathematikmodus“ verarbeitet, wenn TeX eine zu setzende Formel aus der Eingabedatei liest. Die meisten dieser Eingabetoken sind einfache Zeichen wie „x“, „y“, „+“, „=“ usw., die syntaktische Einheiten der Formel darstellen: Beispielsweise sind „x“ und „y“ Variablen, „+“ ist eine binäre Operation, „=“ ist eine Relation usw. Natürlich gibt es auch viele mathematische Symbole, die nicht durch die in normalem Text verwendeten einfachen Zeichen dargestellt werden können und deshalb als Steuersequenzen eingegeben werden: beispielsweise , \sum, \int, \cup, \capusw., aber auch \langleoder \rangle. Offensichtlich |fällt in den ersten Fall, während \vert, \lvert, und \rvertin den zweiten.

Unabhängig von der Methode, mit der es eingegeben wird, muss TeX nun für jedes Zeichen, dassetzenIn einer Formel muss es wissen:

  1. woher das Zeichen genommen werden soll, das heißt aus welcher Schriftart und von welcher Position innerhalb dieser Schriftart;

  2. welche Art von syntaktischer Einheit das Zeichen darstellt, das heißt, ob es eine Variable, eine binäre Operation, eine Relation usw. ist.

TeX benötigt die unter 2. genannten Informationen, da der Abstand zwischen benachbarten Zeichen in einer Formel davon abhängt: In der Formel beispielsweise ax+by=0darf zwischen den Variablen „a“ und „x“ oder zwischen „b“ und „y“ kein Leerzeichen eingefügt werden. Im Gegenteil, die Symbole „+“ und „=“ müssen durch einen gewissen Abstand von den umgebenden Elementen getrennt sein (tatsächlich erfordert „=“ einen größeren Abstand als „+“).

Nun stellt sich das Problem, wie all diese Informationen für jedes der möglichen Eingabetoken auf flexible und rekonfigurierbare Weise angegeben werden können, sodass beispielsweise die Konvention, dass „+“ ein binärer Operator und „=“ ein Relationssymbol ist, nicht im Code von TeX selbst fest verankert ist. Sie können bereits erraten, dass dies für Steuersequenzen wie \cup, \vert, oder überhaupt kein Problem darstellt \lvert: Schließlich können Steuersequenzen für beliebige „Programme“ stehen, sodass Sie problemlos beliebig viele Informationen darin unterbringen können (die Einzelheiten sehen wir uns weiter unten an). Aber wie werden diese Informationen für einfache Zeichen wie „x“ oder „+“ (oder „|“) angegeben?

Antwort: Indem jedem Zeichen ein sogenannter „Mathematikcode“ zugeordnet wird. TeX verwaltet intern eine Tabelle mit 256 Einträgen, von denen jeder eine 16-Bit-Ganzzahl enthalten kann (obwohl mit einer Ausnahme tatsächlich nur 15-Bit-Werte verwendet werden): Für jedes Eingabezeichen gibt die im zugehörigen Eintrag enthaltene Ganzzahl die erforderlichen Informationen an. (Dies wird als \mathcodeTabelle bezeichnet und ist anderen TeX-Tabellen sehr ähnlich, wie den Tabellen von \catcodes, von \sfcodes, von \uccodes usw., die Sie vielleicht bereits kennen.) Genauer gesagt, wenn wir eine solche Ganzzahl als Zeichenfolge aus vier hexadezimalen Ziffern darstellen

kfpp

mitknur zwischen 0 und 7 variierend, dann:

  • kgibt demkind des gesetzten Symbols: zum Beispiel 0 = normales Symbol, 1 = großer Operator (wie \sum), 2 = binärer Operator und so weiter (sieheDas TeXbook, S. 154, für die vollständige Liste);

  • Fgibt denFont, durch einen indirekten Mechanismus, der hier nicht besprochen wird (und bei dem LaTeX2es NFSS eine Rolle spielt);

  • ppzeigt diePPosition innerhalb dieser Schriftart.

Die Einzelheiten zur \mathcodeEinrichtung und Verwaltung dieser Tabelle „ “ finden Sie vielkomplizierter in LaTeX2e als im einfachen TeX-Format, das imDas TeXbook, und es ist nicht möglich, sie hier auch nur zu erwähnen (siehe die NFSS-Dokumentation). Um unsere Frage zu beantworten, genügt es jedoch zu wissen, dass TeX „irgendwo“ nachsehen kann, wenn es wissen muss, waskind des Symbols, das gesetzt werden soll. Fassen wir noch einmal zusammen:

  • TeX betrachtet die \mathcodeTabelle nur, wenn es ein Zeichen-Token im Mathematikmodus verarbeitet (eigentlich sollte diese Aussage verfeinert werden, aber übergehen wir die TeXnicalities);

  • ist dies der Fall, wird der entsprechende Eintrag in der Tabelle gesucht, dessen Inhalt unter anderem angibt, welche Art von syntaktischer Einheit das betreffende Zeichen darstellt;

  • Ein Atom dieser Art wird schließlich an die aktuelle Mathematikliste angehängt, möglicherweise nachdem ein hochgestellter oder tiefgestellter Index daran angehängt wurde.


Mathematische Zeichen und Atomarten

Im Textmodus können Sie ein zu setzendes Zeichen nicht nur angeben, indem Sie dieses Zeichen wörtlich in die Eingabe aufnehmen, sondern auch mithilfe des \charPrimitivs, das dem Befehl von LaTeX entspricht \symbol. Beispielsweise könnten Sie statt bubblein Ihrer Quelldatei schreiben \char98 u\char98 \char98 leund genau dasselbe Ergebnis erhalten. Das \char Primitiv ist natürlich tatsächlich nützlich, wenn Sie ein „seltsames“ Zeichen wie „¿“ setzen müssen.

In ähnlicher Weise können Sie im Mathematikmodus das \mathcharPrimitiv verwenden, um jedes gewünschte mathematische Zeichen (oder mathematische Symbol) anzugeben. Es gibt jedoch einen wichtigen Unterschied zwischen \charund \mathchar: Während Sie nach \char nur eine 8-Bit-Zahl angeben, die nur den internen Code angibt, der das gewünschte Zeichen darstellt, wird nach eine 15-Bit-Ganzzahl erwartet, die genau die gleichen Informationen enthält, die wir in einem Tabelleneintrag \mathcharfinden würden : ein\mathcodekind, eine SchriftartFFamilie und eine PPosition, die im exakt gleichen Format angegeben wird. So zum Beispiel

\matchar"1350

ist ein (primitiver) Befehl, der nur im mathematischen Modus gültig ist und TeX anweist, ein Op[erator]-Atom zu konstruieren (k= 1) mit dem Zeichen aus der Schriftart Nummer 3 (F= 3), was auch immer das bedeutet, an Position 80 (pp = 50 hexadezimal). In der üblichen Einstellung stellt sich dies als das Symbol ∑ heraus.

Natürlich \mathcharwerden Befehle nie direkt verwendet, sondern über Steuersequenzen, die als gleichwertige Befehle definiert wurden. Beispielsweise \sumwurde in der üblichen Einstellung gleichwertig gemacht mit \mathchar"1350, und dies erklärt, warum das Eintippen \sumin Ihre Eingabedatei dazu führt, dass ein Op-Atom mit dem richtigen Symbol an die aktuelle mathematische Liste angehängt wird (mit möglichen hoch-/tiefgestellten Zeichen). Der zu beachtende Punkt ist hier, dass diesmal diekind/Fweiter/PPositionsinformationen werden nicht in einer Tabelle nachgeschlagen, wie im Fall von „nackten“ Zeichen-Token, sondern sind mit dem Befehl selbst verbunden, sei es ein \mathcharprimitiver oder ein höherstufiger Befehl wie \sum.

Wenn wir nun immer davon ausgehen, dass die üblichen Konventionen in Kraft sind, stellt sich heraus, dasswenn sie allein verwendet werden und nicht nach \leftoder \bigoder \biggroder …:

  • \vertist schließlich gleichwertig mit \mathchar"026A, also erzeugt es ein Ord[inary]-Atom (k= 0) enthält ein Zeichen, das an einer bestimmten Position in einer bestimmten Schriftart gefunden wird;

  • \lvertist schließlich gleichwertig mit \mathchar"426A, also erzeugt es ein Open[ing]-Atom (k= 4) enthält genau dasselbe Zeichen wie oben;

  • \lvertist schließlich gleichwertig mit \mathchar"526A, also erzeugt es ein Clos[ing]-Atom (k= 5), das wiederum das gleiche Zeichen enthält.

Darüber hinaus kann man erkennen, dass auch das \mathcodemit dem Zeichen „|“ verknüpft ist "026A, so dass sich ein einfaches |in der Eingabe, zumindest wenn es alleine steht und nicht nach \rightoder \Bigmoder \Biggloder…, genauso verhält wie \vert.

Dies ist jedoch nur eine vereinfachte Version der gesamten Geschichte: Wir werden das Bild in den nächsten beiden Abschnitten vervollständigen.


Trennzeichen

Einige mathematische Symbole, wie Klammern und Wurzelzeichen, wachsen voraussichtlich mit der Größe der Teilformel, die sie umfassen, und erfordern daher eine spezielle Behandlung. Für diese bietet TeX die Konzepte „Trennzeichen“ und „Wurzel“, von denen hier nur das erste von Belang ist.

Auf der primitiven Ebene (sozusagen der Ebene der „Maschinensprache“ von TeX) behandelt TeX ein Symbol nur in wenigen, genau definierten Fällen als Trennzeichen: nach einem \leftoder \right-Befehl und in Verbindung mit bestimmten primitiven Befehlen, die mit Brüchen arbeiten. Beispielsweise (wird für sich allein als „normales“ (dh, kein Trennzeichen) gemäß den oben beschriebenen Regeln, \left(bewirkt aber, dass TeX die Klammer als „Trennzeichen“ behandelt, also als Zeichen, das wachsen kann. Um ein solches wachsendes Zeichen setzen zu können, benötigt TeX mehr Informationen als im Fall eines „normalen“ Zeichens, da es wissen muss, wo das andersGrößen des Trennzeichens können gefunden werden. Anstatt also den mathematischen Code ( \mathcode) für dieses Zeichen zu betrachten, durchsucht TeX eine andere seiner internen Tabellen, die wiederum einen Eintrag für jeden der 256 möglichen Zeichencodes enthält: Jeder Eintrag enthält den sogenannten „Trennzeichencode“ ( \delcode) des zugehörigen Zeichens, der entweder eine negative Zahl sein kann, für Zeichen wie „x“ oder „+“, die niemals als Trennzeichen fungieren sollten, oder eine nicht negative 24-Bit-Zahl, d. h. eine Folge von sechs hexadezimalen Ziffern

Abonnieren

die zwei Varianten der betreffenden Glyphe angeben, wobei eine zweifache Version einer Konvention verwendet wird, die der in der \mathcodeTabelle verwendeten ähnelt. Genauer gesagt, die ersten drei Ziffern (fpp) geben die Schriftart anFFamilie und diePPosition, an der die kleinste Größe des Glyphs zu finden ist, und die letzten drei (gqq) geben Sie in ähnlicher Weise an, wo die größeren Größen zu finden sind (eigentlichqqgeben die Position der ersten größeren Variante innerhalb der Schriftart an; es können noch größere Varianten vorhanden sein, die ausgehend von der ersten mithilfe von Informationen gefunden werden können, die in der Schriftartmetrikdatei selbst enthalten sind). Es ist besonders wichtig zu beachten, dass in diesem Fall die Informationen über die syntaktische Natur des vorliegenden Symbolsnichtin seiner enthalten \delcode, weil es istnichterforderlich: TeX kennt diese Information bereits aus dem Befehl, der die Suche nach einem Trennzeichen ( \left, \right, oder anderen, die wir nicht berücksichtigen) veranlasst hat.

Lassen Sie uns dieses Konzept anhand eines Beispiels weiter veranschaulichen: Wenn TeX in der Eingabe auf das Zeichentoken stößt| von selbst, behandelt es es als „normales“ Symbol: es sucht nach seinem \mathcode, findet heraus, dass es beispielsweise ist, "026Aund aus der ersten Ziffer des \mathcodelernt es, dass das vorliegende Zeichen an die aktuelle mathematische Liste als (Inhalt eines) Ord[inary]-Atoms angehängt werden soll; die anderen drei Ziffern des \mathcode sagen TeX, wo das entsprechende Glyph zu finden ist. Andererseits, wenn TeX auf die Eingabe trifft, sagen wir , \left|esweiß schon, aus dem \left Befehl selbst, dass ein öffnender Begrenzer erforderlich ist, und es hat nur das Problem, das Glyph zu finden; hierfür, und nur hierfür, betrachtet es die \delcodedes folgenden |, aus dem es die notwendigen Informationen abruft.

Dies funktioniert gut, wenn das Trennzeichen durch ein Zeichentoken angegeben werden kann, wie dies bei runden Klammern ( (, )), eckigen Klammern ( [, ]) oder senkrechten Strichen ( |) der Fall ist. Aber was ist mit Trennzeichen wie geschweiften Klammern oder doppelten senkrechten Strichen? Diese werden, wie Sie wissen, durch Steuersequenzen ( \lbrace, \rbrace, \Vertoder deren Synonym \|) angegeben. Nun, all diese Steuersequenzen sind eigentlich Makros, die zu entsprechenden Aufrufen eines anderen primitiven Befehls namens erweitert werden \delimiter, der lose analog zu ist \mathchar.


Der \delimiterBefehl

Auf den primitiven TeX-Befehl \delimitermuss eine 27-Bit-Ganzzahl ohne Vorzeichen folgen, die als Zeichenfolge aus sieben hexadezimalen Ziffern dargestellt werden kann.

Abonnieren

mitkvariiert nur zwischen 0 und 7. Dieser Befehl kann an allen Stellen verwendet werden, an denen TeX nach einem Trennzeichen sucht (also nach \left, \right, und mit einigen anderen primitiven Befehlen, die mit Brüchen arbeiten), und in diesem Fall sagen die sechs Ziffern ganz rechts TeX, wo das Glyph für das Trennzeichen zu finden ist, und zwar genau so, wie es ein \delcodetun würde. Nun,

\left \vert

funktioniert genau so: \vertist ein Makro, das zu erweitert wird \delimiter "026A30C, daher wird die obige Zeile zu erweitert

\left \delimiter "026A30C

und TeX weiß, dass es (aufgrund des Befehls) ein öffnendes Trennzeichen konstruieren muss, \leftdessen kleine Variante in fontFamily 2 (TeX weiß, welche Schriftart das ist) beiPPosition 106, und deren erste größere Variante sich in Font 3, Position 12 befindet. Die Frage ist: Was zum Teufel ist die Zifferkbereitgestellt für?

\vertNun, wir alle wissen, dass wir nicht nur nach \left oder \right(oder \biglusw.) sondern auch allein verwenden dürfen , und in diesem Fall ist es völlig gleichwertig mit einem alleinstehenden |. Dies liegt daran, dass der \delimiter Befehl auch an Stellen erscheinen darf, an denen TeXnichtnach einem Trennzeichen suchen; in diesem Fall werden die letzten drei hexadezimalen Ziffern der resultierenden Zahl gelöscht und der Befehl verhält sich, als wäre er ein \mathchar. Mit anderen Worten, wenn ernichtfolgen \leftusw.

\delimiter "Abonnieren

wirkt genau wie

\mathchar "kfpp

Diesmal,es ist von der k-Zifferdass TeX lernt, welche Art von Atom es konstruieren muss, und das ist der Grund, warum es bereitgestellt wird. Sie können also definieren, \vertdass auf erweitert wird \delimiter "026A30C, und diese Definition wird in jeder Situation funktionieren.


Endlich die Antwort!

Nun sind wir endlich in der Lage, die gestellte Frage zu beantworten. Betrachten Sie die folgenden Eingabebeispiele:

  • |von selbst: TeX betrachtet die \mathcodemit verknüpften  |, woraus es lerntbeidewo man die entsprechende Glyphe findet Undwelche Art von Atom konstruiert werden soll.

  • \left|oder \right|: TeXweiß schondass es ein linkes (bzw. rechtes) Trennzeichen konstruieren muss, und schaut sich das \delcodevon  | nur an, um zu erfahren, wo die erforderlichen Glyphen zu finden sind.

  • \vertallein: Dies ist ein Makro, das sich zu erweitert \delimiter "026A30C; in diesem Kontext verhält sich dies so, als wäre es gewesen \mathchar "026A, und die erste Ziffer der Zahl "026A teilt TeX mit, welche Art von Atom zu konstruieren ist (die folgenden drei, wo sich das Glyph befindet, wobei in diesem Fall immer die kleine Variante verwendet wird). Ein Ord[inary]-Atom (k = 0) konstruiert.

  • \left\vertoder \right\vert: das erste davon wird zu \left \delimiter "026A30C. TeX weiß bereits, dass ein linkes Trennzeichen verlangt wird, und daherignoriertdie erste Ziffer der Zahl "026A30Cund verwendet die verbleibenden Ziffern, um zu erfahren, wo die benötigten Glyphen zu finden sind. Die Wirkung von \right\vertist analog.

  • \lvertallein: Dies ist ein Makro, das zu erweitert wird \delimiter "426A30C. In diesem Kontext verhält sich dies so, als wäre es gewesen \mathchar "426A, und die erste Ziffer der Zahl "426A teilt TeX mit, welche Art von Atom konstruiert werden soll, was in diesem Fall ein Open[ing]-Atom ist (k = 4); die folgenden drei Ziffern teilen TeX mit, wo das entsprechende Glyph zu finden ist, wobei in diesem Fall immer die kleine Variante verwendet wird.

  • \left\lvertoder \right\lvert: das erste davon wird zu erweitert \left \delimiter "426A30C. TeX weiß bereits, dass ein linkes Trennzeichen verlangt wird, also ignoriert es die erste Ziffer der Zahl "426A30Cund verwendet die verbleibenden sechs nur, um die erforderlichen Glyphen zu finden. Gleiches gilt für \right\lvert.

  • \rvertfür sich allein: Übung. (Hinweis: \rvertwird erweitert zu \delimiter "526A30C;k = 5 bedeutet Clos[ing]-Atom).

  • \left\rvertoder \right\rvert: Übung.

Aus dem Obigen sehen wir, dass (unter der Annahme der üblichen \mathcodes und Definitionen) \left|, \left\vert, \left\lvert, und sogar \left\rvert alle genau dasselbe sind. Und das Gleiche gilt für \right.


Was ist mit \biglVerwandten?

Die Steuersequenzen \big, \bigl, \bigm, \bigr, \Big, usw. sind Makros mit einem Argument, von denen jedes ein Atom einer vorgegebenen Art herstellt, das ein „Pseudo-Trennzeichen“ enthält (dh, kein Trennzeichen im TeXnischen Sinn) einer vorgegebenen Größe; sie tun dies mittels einer \left\right-Konstruktion, die nur eine leere Box der entsprechenden Größe umfasst, die explizit von einem \mathord, \mathrel, \mathopen, oder \mathclose-Befehl umschlossen wird ( \mathordwird eigentlich nicht verwendet, da es „standardmäßig impliziert“ ist). Genauer gesagt, wie Sie sicherlich bereits wissen:

  • die \big, \Big, …-Reihe erzeugt Ord[inär]atome;

  • die \bigl, \Bigl, …-Reihe erzeugt Open[ing]-Atome;

  • die \bigm, \Bigm, …-Reihe erzeugt Rel[ations]-Atome;

  • die \bigr, \Bigr, …-Reihe erzeugt Clos[ing]-Atome.

Daher wird das Argument hier nur verwendet, um das gewünschte Glyph zu lokalisieren.


Ein Wort zu inputenc

Der Einfachheit halber haben wir in der obigen Beschreibung nicht erwähnt, dass die \mathcodeTabellensuche nur für Zeichentoken erfolgt, deren Kategoriecode entweder 11 (Buchstabe) oder 12 (andere) ist. Denken Sie daran, dass die EingabencPaket macht Zeichen an den Positionen 128 … 255 aktiv, und dass Kodierungsdefinitionsdateien einigen dieser aktiven Zeichen eine bestimmte Bedeutung zuweisen können, wenn sie im Mathematikmodus verwendet werden. Natürlich erfolgt die Ersetzung eines solchen aktiven Zeichens durch seine BedeutungVor die oben beschriebenen Prozesse stattfinden. Um nur ein Beispiel zu nennen, latin1.defenthält die Datei unter anderem die Erklärung

\DeclareInputMath{177}{\pm}

so dass das Zeichen Nummer 177 im Mathematikmodus immer der Steuersequenz entspricht \pm. Diese Ersetzung ist natürlich völlig unabhängig von der \mathcodeMaschinerie.

Antwort2

Gustavos Antwort enthält viele interessante Details und es lohnt sich, sie aufmerksam zu lesen. Aber der Großteil der Sache ist ziemlich einfach.

Nach \leftund sind \middlenur \righteinige Token zulässig:

  • ein Zeichen (oder ein Makro, das letztendlich zu einem solchen erweitert wird) mit nichtnegativem \delcode;
  • Ein Makro, dessen endgültige Erweiterung mit beginnt, \delimitergefolgt von einer 27-Bit-Zahl.

\leftBeachten Sie, dass TeX die Erweiterung durchführt , nachdem \middleoder gescannt wurde \right, um das erforderliche Zeichen mit nicht negativem \delcodeoder zu finden \delimiter(was wiederum die Erweiterung auslöst, um nach einer Zahl zu suchen).

Beschränkt man sich auf Standard-TeX/LaTeX (im Gegensatz zu XeTeX/LuaTeX mit ), sind unicode-mathdie einzigen Zeichen, die nicht negativ sind,\delcode

( "028300
) "029301
. 0
/ "02F30E
< "26830A
> "26930B
[ "05B302
\ "26E30F
] "05D303
| "26A30C

Ein typisches Makro der zweiten Art wird in einfachem TeX definiert durch

\def\rangle{\delimiter"526930B }

In LaTeX wird dies geschrieben

\DeclareMathDelimiter{\rangle}{\mathclose}{symbols}{"69}{largesymbols}{"0B}

Das ist bloß ein Standardcode, der im Wesentlichen dasselbe ausdrückt (in klarerer Form).

DortIstein wichtiger Unterschied: Anstatt die Zahlen der mathematischen Gruppen (oder Familien) wie in einfachem TeX fest zu verdrahten, verwendet LaTeX symbolische Namen.

A \delcodeist eine 24-Bit-Zahl; der Unterschied zu einem Code besteht darin , \delimiterdass die drei ganz linken Bits in einem \delimiterCode den Typ des Symbols angeben, falls es nicht im Kontext von oder (im Folgenden LMR) verwendet wird \left. So erstellt zum Beispiel ein\middle\right\rangleSchließenAtom hinsichtlich der Abstände (erste Hexadezimalziffer 5 im Klartext, \mathclosein LaTeX).

Im Gegenteil, bei der Verwendung in LMR werden diese drei Bits ignoriert, da TeX den Typ bereits kennt (Offen,OrdoderSchließen, bzw.) zuzuweisen. Was die äußersten rechten 24 Bits bedeuten, ist nicht wirklich relevant.

Wie kommen \bigl, \bigund \bigrzusammen mit ihren Geschwistern ins Spiel? Sie sind eigentlich \leftverkleidet, aber in einem Typzuweisungsbefehl begraben, bzw. \mathopen, \mathordund \mathclose. Es gibt auch \bigm, dass baut eineRelAtom auf die gleiche Weise:

\math<X>{\left<token><box>\right.\kern-\nulldelimiterspace}

erfolgt, wobei <token>das Folgende \bigund Freunde ist, <box>ein entsprechend großes Kästchen ist (zur Unterscheidung zwischen \big, \Big, \biggund \Bigg) und , , oder <X>ist , je nachdem, welches von , , und (oder Freunden) aufgerufen wird. Insbesondere und Freunde bilden einen LMR-Kontext.openordcloserel\bigl\big\bigr\bigm\big

Es gibt überhaupt keinen Unterschied zwischen

\big| \big\lvert \big\rvert

oder zwischen

\bigl| \bigl\lvert \bigl\rvert

Ebenso sind , \left|und \left\lvertgenau \left\rvertgleich, da |, \lvertund \rvertalle auf dasselbe Zeichen zeigen (technisch gesehen sind die niederwertigsten 24 Bits im \delcodeoder \delimiter-Code gleich).


Sie haben vielleicht bemerkt, dass >und \ranglesich die 24 niederwertigsten Bits in \delcodeund im \delimiterCode teilen; dasselbe gilt für <und \langle. Dies erlaubt es uns zu sagen

\left<
\bigl<
\Bigl<

(oder sogar \big<, aber das wäre falsch) anstelle von \langle; dasselbe gilt für \rangle.

Die Unterscheidung zwischen |(oder das Synonym \vert) \lvertund \rvertist nur dann von Bedeutung, wenn sie nicht in einem LMR-Kontext auftreten.

Das einfachste Beispiel hierfür ist

\log|-2|
\log\lvert-2\rvert

Das Letztere ist richtig. Das Erstere würde dazu führen,

Protokoll <thinmuskip>| <medmuskip>- <medmuskip>2|

während letzteres die richtige

log|-2|


Fazit: Verwenden Sie es, \bigl\lvertwenn Sie sich wohler fühlen, es aber \bigl|kürzer ist und aufs Gleiche hinausläuft.

verwandte Informationen