書寫時\[\sum\]
使用比書寫時更大的求和符號\(\sum\)
。該指令如何\sum
找出要使用的尺寸?
擴展到什麼\sum
?我猜這只是另一個較長系列指令的簡寫,不是嗎?
答案1
這\sum
是一個大運算符,它在數學字體中實現了兩種大小。在數學模式下排版的每個字元或控制序列都有其數學代碼,其中包括數學類別(Ord 或 Op 或 Bin 或 Rel...)、數學字體系列編號和字體槽。字元由\mathcode
(或在 Unicode 引擎中)聲明\Umathcode
,控制序列由\mathchardef
(或\Umathchardef
在 Unicode 引擎中)聲明。在經典 TeX 中\sum
由 聲明,或在 Unicode 數學中由 聲明,或在 OpTeX 中由 定義並由 聲明。\mathcode
\Umathchardef
\def\sum{∑}
∑
\Umathcode
這意味著這\sum
不是一個複雜的宏,它只是一個數字的等價物,並且該數字在列印時被解釋為數學代碼。這個數學程式碼的關鍵部分是它的類別是Op(大運算子)的資訊。當 TeX 列印這樣的數學字符時,\textstyle
它會從給定的槽中詢問字體中的直接字符,但是當它被打印時,\displaystyle
TeX 會詢問相同的字體和槽,但此外,它會詢問字體中更大的變體。 Unicode 字型可以在單一插槽上擁有更多字形,因此可以滿足此特殊要求。經典的 TeX 字體在tfm
文件中有一個分配給給定插槽的指針,該指針指向準備更大字形的另一個插槽。
例如,plain TeX(即經典 TeX)\sum
透過以下方式聲明:
\mathchardef\sum="1350
第一個數字1
表示它是Op(大運算符)字元。應使用第三個字體系列(第二個數字)並0x50
應使用插槽。 Plain TeX 將cmex10
以下字體註冊為第三種字體系列:
\font\tenex=cmex10 % math extension
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
當你跑步時
tftopl cmex10 > cmex10.pl
然後您可以查看文件cmex10.tfm
中人類可讀形式的度量資訊cmex10.pl
。您可以看到,該字元O 120
(即 slot 的八進位數0x50
)包含以下資訊:
(CHARACTER O 120
(CHARWD R 1.055559)
(CHARDP R 1.000013)
(NEXTLARGER O 130)
)
就是NEXTLAGRER O 130
上面提到的指針。它說相同類型的較大字形位於插槽八進位 130 處,即插槽 處0x58
。你可以運行
tex testfont
Name of the font to test = cmex10
*\table\end
cmex10
文件中有字體表testfont.dvi
。您可以看到該0x50
插槽包含較小的求和符號並0x58
包含其較大的變體。
當使用 Unicode 數學字型時,較大的變體沒有特殊的插槽號,但所有替代字形都位於0x2211
GSUB 資料表實現的單一插槽(Unicode 求和符號)處。