答案1
TeX 区分文本和数学模式,因为文本和数学遵循非常不同的排版惯例。为了“强制”这种区别,数学模式命令在文本模式下使用时会产生错误。因此,对你的问题的简短回答是“在数学模式下输入数学“,即$a=\frac{1}{6}$
或\(a=\frac{1}{6}\)
用于内联数学,或一些显示数学环境。
正如 David 和 Wipet 在他们的评论中指出的那样,你永远不应该忽略错误消息;错误后得到的输出只是 TeX 试图恢复并希望得到最好的结果。这种输出通常是垃圾。只是为了好玩,让我们试着看看最小代码出了什么问题
\documentclass{article}
\begin{document}
a = \frac{1}{6}
\end{document}
当 TeX 遇到 时,a
它会切换到水平模式并开始排版普通文本。TeX 继续查找字母a
、空格、等号、另一个空格(全部文本模式)。现在 TeX 会找到\frac
,这是 LaTeX 定义的宏,如下所示
\def\frac#1#2{{\begingroup#1\endgroup\over#2}}
扩展后,它实际上就像你的代码一样
a = {\begingroup1\endgroup\over6}
TeX 继续:左括号\begingroup
、数字1
和\endgroup
(所有内容仍在文本您可以使用任何格式(例如,jpg,jpeg,png,jpeg模式)来排版。
现在 TeX 发现\over
:这是一个数学模式原语,允许仅有的在数学模式下,TeX 会认为你忘记输入了。因此它会输出错误
! Missing $ inserted.
I've inserted a begin-math/end-math symbol since I think
you left one out. Proceed, with fingers crossed.
并通过添加 进入数学模式$
,这也启动了一个组;现在\over
识别当前组分子中它前面的内容,但在错误恢复打开的数学列表中, 之前没有任何内容\over
,因此分子为空。然后 TeX 继续,找到6
(分母),然后找到右括号。现在有一个问题:左括号在哪里?它外部数学模式,但插入$
打开其他一个,所以这个括号不匹配。因此 TeX 会输出以下错误
! Extra }, or forgotten $.
I've deleted a group-closing symbol because it seems to be
spurious, [...]
TeX 认为 是}
错误的,删除它,并继续尝试(仍处于数学模式)。然后在\end{document}
TeX 的扩展中发现\par
,这只允许在文本模式,所以它假设你忘记退出数学模式,并再次吐出
! Missing $ inserted.
I've inserted a begin-math/end-math symbol since I think
you left one out. Proceed, with fingers crossed.
然后它插入一个$
并以某种方式完成文档。基本上 TeX 的行为就像你输入了
\begin{document}
a = {\begingroup1\endgroup$\over6$
\end{document}
和印刷品
其中a = 1
,处于文本模式,错误恢复机制不知何故设法给你这个看起来很奇怪的分数。哦,是的,最后 TeX 还会告诉你
(\end occurred inside a group at level 1)
### simple group (level 1) entered at line 3 ({)
因为左括号从未闭合(在错误恢复期间,相应的右括号被消除了)。