Beim Schreiben \[\sum\]
wird ein größeres Summenzeichen verwendet als beim Schreiben \(\sum\)
. Wie findet der \sum
Befehl heraus, welche Größe verwendet werden soll?
Worauf wird \sum
erweitert? Ich vermute, es ist nur eine Abkürzung für eine weitere längere Befehlsreihe, oder nicht?
Antwort1
Das \sum
ist ein großer Operator, der in der mathematischen Schriftart zwei Größen implementiert hat. Jedes im mathematischen Modus gesetzte Zeichen oder jede Steuersequenz hat seinen Mathematikcode, der die mathematische Klasse (Ord oder Op oder Bin oder Rel...), die mathematische Schriftfamiliennummer und den Slot der Schriftart enthält. Zeichen werden von \mathcode
(oder \Umathcode
in Unicode-Engines) und Steuersequenzen von \mathchardef
(oder \Umathchardef
in Unicode-Engines) deklariert. Das wird in klassischem TeX \sum
von oder in Unicode-Mathematik von deklariert oder es wird in OpTeX von definiert und von deklariert .\mathcode
\Umathchardef
\def\sum{∑}
∑
\Umathcode
Dies bedeutet, dass \sum
es sich nicht um ein kompliziertes Makro handelt, sondern nur um das Äquivalent einer Zahl, und diese Zahl wird beim Drucken als mathematischer Code interpretiert. Der entscheidende Teil dieses mathematischen Codes ist die Information, dass seine Klasse Op (großer Operator) ist. Wenn TeX ein solches mathematisches Zeichen druckt, \textstyle
verlangt es das direkte Zeichen aus der Schriftart aus dem angegebenen Slot, aber wenn es gedruckt wird, \displaystyle
verlangt TeX dieselbe Schriftart und denselben Slot, aber darüber hinaus verlangt es eine größere Variante der Schriftart. Unicode-Schriftarten ermöglichen mehr Glyphen in einem einzigen Slot, sodass diese spezielle Anforderung erfüllt werden kann. Die klassischen TeX-Schriftarten haben einen Zeiger in der tfm
Datei, der dem angegebenen Slot zugewiesen ist, und dieser Zeiger zeigt auf einen anderen Slot, in dem die größere Glyphe vorbereitet ist.
Beispielsweise deklariert einfaches TeX (also klassisches TeX) \sum
wie folgt:
\mathchardef\sum="1350
Die erste Ziffer 1
bedeutet, dass es sich um ein Op-Zeichen (großer Operator) handelt. Die dritte Schriftfamilie (zweite Ziffer) und 0x50
der Slot müssen verwendet werden. Plain TeX registriert als dritte Schriftfamilie die cmex10
Schriftart:
\font\tenex=cmex10 % math extension
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
Wenn du rennst
tftopl cmex10 > cmex10.pl
cmex10.tfm
Anschließend können Sie sich die metrischen Informationen in der Datei in menschenlesbarer Form ansehen cmex10.pl
. Sie können sehen, dass das Zeichen O 120
(das die Oktalzahl des Slots ist 0x50
) diese Informationen enthält:
(CHARACTER O 120
(CHARWD R 1.055559)
(CHARDP R 1.000013)
(NEXTLARGER O 130)
)
Dies NEXTLAGRER O 130
ist der oben erwähnte Zeiger. Er besagt, dass sich der größere Glyph desselben Typs im Slot Oktal 130 befindet, also im Slot 0x58
. Sie können ausführen
tex testfont
Name of the font to test = cmex10
*\table\end
und Sie haben die Tabelle der cmex10
Schriftart in der testfont.dvi
Datei. Sie können sehen, dass der 0x50
Steckplatz das kleinere Summationssymbol und 0x58
dessen größere Variante enthält.
Wenn eine Unicode-Mathematikschriftart verwendet wird, hat die größere Variante keine spezielle Steckplatznummer, sondern alle alternativen Glyphen befinden sich im einzelnen Steckplatz 0x2211
(Unicode-Summationssymbol), der durch die GSUB-Tabelle implementiert wird.