\sumの定義 - サイズ選択はどのように機能するか

\sumの定義 - サイズ選択はどのように機能するか

と書く場合\[\sum\]、 と書く場合よりも大きい合計記号が使用されます。コマンドは、使用するサイズをどのようにして判断するの\(\sum\)でしょうか?\sum

展開するとどうなるのでしょうか\sum? これは、別の長い一連のコマンドの省略形にすぎないと思いますが、そうではありませんか?

答え1

\sum、数式フォントに実装されている 2 つのサイズを持つビッグ演算子です。数式モードでタイプセットされる各文字または制御シーケンスには、数式クラス (Ord または Op または Bin または Rel...)、数式フォント ファミリ番号、およびフォントのスロットを含む数式コードがあります。文字は\mathcode(または\UmathcodeUnicode エンジン) によって宣言され、制御シーケンスは\mathchardef(または\UmathchardefUnicode エンジン) によって宣言されます。 は、従来の TeX では によって宣言されるか、Unicode 数式では によって\sum宣言されるか、 OpTeX ではによって定義され、によって宣言されます。\mathcode\Umathchardef\def\sum{∑}\Umathcode

これは\sum複雑なマクロではなく、単に数値と等価であり、この数値は印刷時に数式コードとして解釈されることを意味します。この数式コードの重要な部分は、そのクラスが Op (大きな演算子) であるという情報です。TeX がこのような数式文字を印刷する場合、\textstyle指定されたスロットのフォントから直接文字を要求しますが、印刷されると、\displaystyleTeX は同じフォントとスロットを要求しますが、さらに、フォントからより大きなバリアントを要求します。Unicode フォントでは、1 つのスロットに複数のグリフを含めることができるため、この特別な要求を満たすことができます。従来の TeX フォントでは、tfm指定されたスロットに割り当てられたファイル内にポインターがあり、このポインターは、より大きなグリフが用意されている別のスロットを指します。

たとえば、プレーン TeX (つまり、従来の TeX)\sumは次のように宣言します。

\mathchardef\sum="1350

最初の数字は1Op (大文字演算子) 文字であることを意味します。3 番目のフォント ファミリ (2 番目の数字) と0x50スロットを使用する必要があります。Plain TeX は、次のフォントを 3 番目のフォント ファミリとして登録しますcmex10

\font\tenex=cmex10 % math extension
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex

走るとき

 tftopl cmex10 > cmex10.pl

cmex10.tfm次に、ファイル内の人間が読める形式のメトリック情報を調べることができますcmex10.pl。文字O 120(スロットの 8 進数0x50) に次の情報が含まれていることがわかります。

(CHARACTER O 120
   (CHARWD R 1.055559)
   (CHARDP R 1.000013)
   (NEXTLARGER O 130)
   )

NEXTLAGRER O 130上で述べたポインタです。これは、同じタイプの大きいグリフがスロット 8 進数 130、つまりスロット にあることを示しています0x58。次のように実行できます。

tex testfont
Name of the font to test = cmex10
*\table\end

cmex10ファイルにはフォントのテーブルがあります。スロットには小さい合計記号が含まれており、その大きい変形が含まれていることtestfont.dviがわかります。0x500x58

Unicode 数学フォントを使用する場合、大きい方のバリアントには特別なスロット番号はありませんが、すべての代替グリフは0x2211GSUB テーブルによって実装される単一のスロット (Unicode 合計記号) にあります。

関連情報