大多数 Latex 标签具有简单明了的含义,例如,
\sqrt
代表/源自“平方根”
\equiv
代表/源自“相当于”
\mathrel
and中的“rel”\stackrel
代表什么?
答案1
你问,
rel
in\mathrel
和\stackrel
代表什么?
rel
如果考虑 13 种数学原子的完整列表, in的含义mathrel
很快就会变得相当明显;另请参阅 TeXbook 第 158 页:
mathord, 'ord' for short -- something like 'x' and 'y'
mathop, 'op' for short -- large operators, e.g., '\sum' and '\prod'
bin -- binary operation atoms, e.g., '+' and '-'
rel -- relation operation atoms, e.g, '=', '<', and '>'
open -- opening atom, e.g,, '(' and '['
close -- closing atom, e.g., ')' and ']'
punct -- punctuation atom, e.g., ','
inner -- (leading example: anything between '\left' and '\right')
over -- overline atom, as in '\overline{x}'
under -- underline atome, as in '\underline{x}'
acc -- accent atoms, as in '\hat{x}' and '\tilde{x}'
rad -- radical atom, as in '\sqrt{x}'
vcent -- (argument of \vcenter directives)
数学原子状态很重要的一个领域是二进制和关系运算符周围的间距。例如,如果您检查和的排版输出a+b
,您会注意到和符号a=b
周围的间距不一样;后一个符号周围的空间略大(除非在 scriptstyle 或 scriptscriptstyle 模式下遇到符号)。间距的这种差异体现了数十年(几个世纪?)精细数学排版中开发的排版规则。+
=
指令\mathrel
是“TeX 原始”命令,用于将其参数的数学状态更改为(您猜对了)。mathrel
例如,写入\mathrel+
会将的数学状态+
从bin
(大多数(所有?)TeX 系统中的默认值)更改为rel
。附言:这只是一个例子;我是不是这表明任何人都会真正想要运行此指令。一个更现实的例子:假设您想用 表示从 到 的开区间-a
。b
但是]-a,b[
,以这种方式直接写入开区间会导致]
(请记住其默认数学状态为close
)和-
符号之间的间距不正确。要获得]
和一元-
符号之间的正确间距,您可以编写
\mathopen] -a,b \mathclose[
[
从而覆盖和符号的默认数学状态]
。更好的方法是加载mathtools
包并使用其\DeclarePairedDelimiter
宏来定义一个名为的宏,例如,\openint
使用可变大小的分隔符,如下所示:
\DeclarePairedDelimiter{\openint}{]}{[}
此设置允许您\openint{-a,b}
在文档正文中写入内容。
然后是\stackrel
宏:这是 LaTeX 命令,允许将上标项放在某个对象(通常但不一定是符号=
)上方,使组合对象的数学状态为mathrel
;例如,\stackrel{!}{=}
放置!
在上方=
,组合对象的状态为mathrel
。还有一个包裹称为stackrel
,它以两种方式扩展了 的功能\stackrel
。首先,它允许将下标项放在主对象下面,同时将组合对象的状态设置为mathrel
。例如,
B \stackrel[x]{!}{=} C
位于符号的x
下方和!
上方=
,并将组合对象的数学状态设置为mathrel
。其次,它提供了一个名为的附加宏\stackbin
,允许将下标和上标项放在主对象旁边,并将组合对象的数学状态设置为mathbin
。