`\mathrel` 和 `\stackrel` 中的“rel”代表什么?

`\mathrel` 和 `\stackrel` 中的“rel”代表什么?

大多数 Latex 标签具有简单明了的含义,例如,

\sqrt代表/源自“平方根”

\equiv代表/源自“相当于”

\mathreland中的“rel”\stackrel代表什么?

答案1

你问,

relin\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。附言:这只是一个例子;我是不是这表明任何人都会真正想要运行此指令。一个更现实的例子:假设您想用 表示从 到 的开区间-ab但是]-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

相关内容