\documentclass 怎么会是“未定义的控制序列”呢?

\documentclass 怎么会是“未定义的控制序列”呢?

我在运行于 Windows 7 的 emacs 上使用 AUCTeX 11.90(最近从 elpa 包升级)。我创建了一个 tex 文件,由于某种原因,当我使用 pdflatex ( C-c C-c) 编译它时,只有这个特定文件会出现错误消息:“未定义的控制序列”指向\documentclass[10pt]{article}这怎么可能呢?

我怀疑存在一些编码冲突,因此我在文档的第一行(顺便说一下,这是 org 文件导出的结果)开始如下:% -*- coding: utf-8; -*-

但问题仍然存在。emacs 缓冲区的底部现在如下所示:

U 位于缓冲区最左角


编辑1

以下是文件日志(ccna1-ch10.log)的前几行:

This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/W32TeX) (preloaded format=pdftex 2015.6.28)  23 MAY 2017 21:49
entering extended mode
 restricted \write18 enabled.
 file:line:error style messages enabled.
 %&-line parsing enabled.
**\input ./ccna1-ch10.tex
(./ccna1-ch10.tex
./ccna1-ch10.tex:2: Undefined control sequence.
l.2 \documentclass
                  [10pt]{article}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

这有道理吗?它一开始就停止了,甚至不会超出范围\documentclass[...]{article}。这可能与 .emacs 文件有关吗?

答案1

这个问题的原因是,正如 Werner 在他的评论中告诉你的那样,你正在运行TeX而不是LaTeX。你可以建议emacs自动运行LaTeX。为此,你应该看看局部变数文件的注释。它们应该看起来像这样:

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

第一行和列表行只是魔术标记。第二行告诉emacs使用该latex模式。第三行告诉 AucTeX,该文件本身是文档的主文件。

如果您的文件没有这样的部分,请添加它。如果行mode不同,请更改它。然后保存文件并按Strg+ CStrg+ N(在emacs语法中C-c C-n)或关闭它并再次加载。

此后,C-c C-c应该运行 LaTeX 而不是 (plain)TeX。

如果这没有帮助,您可以使用手动设置模式M-x latex-mode

相关内容