a
在 TeX 中书写时,默认情况下会将其排版为直立的“a” a
。在数学模式下书写时,会将其排版为斜体。此外,在数学模式下,空格会被忽略,并且不允许出现空行。
当 TeX 切换到数学模式时,内部会更改哪些设置?也欢迎任何可以找到更详细或更不详细的解释或概述的指示。
答案1
数学模式与普通文本模式有很大不同,原因如下:数学排版需要以特定方式定位符号,在多种字体中选择它们,并根据不同于文本中有效的规则对它们进行间距调整。
举几个例子:=
中的周围的空格a+b=c
应该比 周围的空格更宽+
,因为关系比加法约束力小; 在 中,sin x
“sin”后面应该有一个很窄的空格,而 中不应该出现这个空格sin(x+y)
。
这些规则由 TeX 本身管理,因为对于普通用户(甚至是经验丰富的用户)来说,记住所有规则太难了。只有在某些情况下,才需要覆盖 TeX 做出的一些决定。
让我们看看数学模式的一些特性。
在输出时空格会被忽略。(当然,控制序列后面的空格仍然表示其结束,但这是另一个问题。)输入
$a+b$
或$a + b$
完全等效。字符以特殊的方式被解释;TeX 维护一个“数学代码”数组(
\mathcode
在站点中查找),以便它能够决定每个字符代表哪个数学对象(关系、运算符号、关系等等)、从哪种字体中获取以及在字体中的位置。数学控制序列(例如
\sum
或 )\alpha
是根据 定义的\mathchar
,因此它们具有类似的机制来决定如何排版。分隔符具有特殊代码,因此它们可以在需要和请求时增长。
分数和部首开始一种特殊的排版模式。
有“数学样式”会影响数学对象的排版方式:
\displaystyle
、\textstyle
和;它们通常是自动选择的,但用户可以覆盖该决定。数学样式可以影响某些符号的排版(例如\scriptstyle
或)。\scriptscriptstyle
\sum
\int
TeXbook 的三个章节和 TeX 按主题的很长一部分中可以找到对数学模式的详细描述,因此这里不能成为描述所有工作原理的地方。
当数学公式处理完毕后,TeX 会将其传递给内部处理器,用户无法控制该处理器将其转换为最终的排版指令。请注意,LuaTeX能控制那部分,但这远远超出了这个答案的范围。
答案2
字形的外观纯粹是字体的一个特性,TeX 通常会在您进入数学模式时切换字体(尽管文本和数学字体都不是内置在 TeX 引擎中的,但所有字体选择本质上都是用户设置)。“更改了哪些设置”这个问题实际上无法回答,本质上在数学模式下一切都不同。在内部(如 TeXBook 附录 G 中所述),数学模式列表最终会转换为“正常”水平列表,然后再发送到 dvi(或 pdf)文件,但这是无法从 TeX 宏内部访问的内部操作。