包裹cmll
定义\with
(看起来像'&')为
$ texdef -t latex -p cmll with
\with:
\mathchar"2026
\the\with:
8230
当我看一下它时\&
,它被定义为
texdef -t latex \&
\&:
\char"26
\the\&:
38
因此\with
和\&
似乎有所不同,尽管结果在我看来相同。有什么区别?
答案1
指定"kfab
中的四个十六进制数字\mathchar
k
是原子类型(0 = 普通,1 = 运算符,2 = 二元运算,3 = 关系,4 = 开,5 = 闭,6 = 标点符号,7 = 变量系列);f
应从中获取字形的数学组(字体系列);ab
字体中的插槽。
可以\mathchar<15 bit number>
直接使用或定义
\mathchardef<cs>=<15 bit number>
因此,例如,在\mathchardef\with="2026
命令之后\with
相当于键入\mathchar"2026
(或\mathchar8230
,表示"
指定十六进制数)。
键入\char<8 bit number>
告诉 TeX 在指定位置使用当前字体中的字符。但是,在数学模式下,\char"ab
相当于说\mathchar"00ab
,因此来自数学组 0 和相同位置的普通符号。该\chardef
命令是对应的\mathchardef
,并且实际上\&
通常定义为
\chardef\&="26
小谎:是的\chardef\&=`&
,但是这并不是很重要。
$x \mathchar"2026 y$
和$x \char"26 y$
、 或 和上面的定义有很大区别
$x \with y$
$x \& y$
在第一种情况下,&
符号是有空格的,因为它适合二元运算;在第二种情况下,没有添加空格,因为我们指定了三个普通符号。