Definição de \sum -- como funciona a seleção de tamanho

Definição de \sum -- como funciona a seleção de tamanho

Ao escrever \[\sum\], um sinal de soma maior é usado do que ao escrever \(\sum\). Como o \sumcomando descobre qual tamanho usar?

Para que se \sumexpande? Suponho que seja apenas uma abreviatura para outra série mais longa de comandos, não é?

Responder1

O \sumé um grande operador que possui dois tamanhos implementados na fonte matemática. Cada caractere ou sequência de controle composta no modo matemático tem seu código matemático, que inclui a classe matemática (Ord ou Op ou Bin ou Rel...), o número da família da fonte matemática e o slot da fonte. Os caracteres são declarados por \mathcode(ou \Umathcodeem mecanismos Unicode) e as sequências de controle por \mathchardef(ou \Umathchardefem mecanismos Unicode). O \sumé declarado por \mathcodeno TeX clássico ou por \Umathchardefna matemática Unicode ou é definido por \def\sum{∑}no OpTeX e é declarado por \Umathcode.

Isso significa que \sumnão é uma macro complicada, é apenas equivalente a um número e esse número é interpretado como código matemático quando é impresso. A parte crucial deste código matemático é a informação de que sua classe é Op (grande Operador). Quando o TeX imprime tal caractere matemático, \textstyleele solicita o caracter direto da fonte de determinado slot, mas quando é impresso, \displaystyleo TeX solicita a mesma fonte e slot, mas além disso, solicita uma variante maior da fonte. As fontes Unicode permitem ter mais glifos em um único slot, para que esta solicitação especial possa ser atendida. As fontes TeX clássicas possuem um ponteiro no tfmarquivo atribuído a um determinado slot e esse ponteiro aponta para outro slot onde o glifo maior está preparado.

Por exemplo, TeX simples (ou seja, TeX clássico) declara \sumpor:

\mathchardef\sum="1350

O primeiro dígito 1significa que é o caractere Op (grande operador). A terceira família de fontes deve ser usada (segundo dígito) e 0x50o slot deve ser usado. Plain TeX registra como terceira família de fontes a cmex10fonte:

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

Quando você corre

 tftopl cmex10 > cmex10.pl

então você pode examinar as informações métricas do cmex10.tfmformato legível por humanos no cmex10.plarquivo. Você pode ver que o caractere O 120(que é o número octal do slot 0x50) inclui esta informação:

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

O NEXTLAGRER O 130é o ponteiro mencionado acima. Diz que o glifo maior do mesmo tipo está no slot octal 130, ou seja, no slot 0x58. Você pode correr

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

e você tem a tabela da cmex10fonte no testfont.dviarquivo. Você pode ver que 0x50o slot inclui um símbolo de soma menor e 0x58sua variante maior.

Quando a fonte matemática Unicode é usada, a variante maior não possui um número de slot especial, mas todos os glifos alternativos estão no slot único 0x2211(símbolo de soma Unicode) implementado pela tabela GSUB.

informação relacionada