数学模式如何工作?

数学模式如何工作?

a在 TeX 中书​​写时,默认情况下会将其排版为直立的“a” a。在数学模式下书写时,会将其排版为斜体。此外,在数学模式下,空格会被忽略,并且不允许出现空行。

当 TeX 切换到数学模式时,内部会更改哪些设置?也欢迎任何可以找到更详细或更不详细的解释或概述的指示。

答案1

数学模式与普通文本模式有很大不同,原因如下:数学排版需要以特定方式定位符号,在多种字体中选择它们,并根据不同于文本中有效的规则对它们进行间距调整。

举几个例子:=中的周围的空格a+b=c应该比 周围的空格更宽+,因为关系比加法约束力小; 在 中,sin x“sin”后面应该有一个很窄的空格,而 中不应该出现这个空格sin(x+y)

这些规则由 TeX 本身管理,因为对于普通用户(甚至是经验丰富的用户)来说,记住所有规则太难了。只有在某些情况下,才需要覆盖 TeX 做出的一些决定。

让我们看看数学模式的一些特性。

  1. 在输出时空格会被忽略。(当然,控制序列后面的空格仍然表示其结束,但这是另一个问题。)输入$a+b$$a + b$完全等效。

  2. 字符以特殊的方式被解释;TeX 维护一个“数学代码”数组(\mathcode在站点中查找),以便它能够决定每个字符代表哪个数学对象(关系、运算符号、关系等等)、从哪种字体中获取以及在字体中的位置。

  3. 数学控制序列(例如\sum或 )\alpha是根据 定义的\mathchar,因此它们具有类似的机制来决定如何排版。

  4. 分隔符具有特殊代码,因此它们可以在需要和请求时增长。

  5. 分数和部首开始一种特殊的排版模式。

  6. 有“数学样式”会影响数学对象的排版方式:\displaystyle\textstyle和;它们通常是自动选择的,但用户可以覆盖该决定。数学样式可以影响某些符号的排版(例如\scriptstyle或)。\scriptscriptstyle\sum\int

TeXbook 的三个章节和 TeX 按主题的很长一部分中可以找到对数学模式的详细描述,因此这里不能成为描述所有工作原理的地方。

当数学公式处理完毕后,TeX 会将其传递给内部处理器,用户无法控制该处理器将其转换为最终的排版指令。请注意,LuaTeX控制那部分,但这远远超出了这个答案的范围。

答案2

字形的外观纯粹是字体的一个特性,TeX 通常会在您进入数学模式时切换字体(尽管文本和数学字体都不是内置在 TeX 引擎中的,但所有字体选择本质上都是用户设置)。“更改了哪些设置”这个问题实际上无法回答,本质上在数学模式下一切都不同。在内部(如 TeXBook 附录 G 中所述),数学模式列表最终会转换为“正常”水平列表,然后再发送到 dvi(或 pdf)文件,但这是无法从 TeX 宏内部访问的内部操作。

相关内容