LaTeX 代码
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{pstricks}
\begin{document}
zzz
\end{document}
导致 latex 和 pdflatex 中出现神秘错误“两个 \documentclass 或 \documentstyle 命令。”为什么???不是实际上二\documentclass 类似于(原始)问题\documentclass{tikz-qtree} 错误 两个 \documentclass 或 \documentstyle 命令。
可能不相关,但我在 Debian 系统中使用 texlive(2018 版)。
moewe 询问的 .log:https://pastebin.com/BGcHs3Rz。
回答其他评论:文件名是 psttest.tex。
答案1
理解此错误的关键信息是.log
实际错误消息开始之前的行。它显示
(./pstricks.tex
! LaTeX Error: Two \documentclass or \documentstyle commands.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.1 \documentclass[12pt]{
article}
?
! Emergency stop.
...
l.1 \documentclass[12pt]{
article}
The document may only declare one class.
这(./pstricks.tex
意味着 TeX 打开了一个名为 的文件./pstricks.tex
(即与主 TeX 文件位于同一目录中的文件pstricks.tex
)。一旦加载该文件,就会在\documentclass
第 1 行发生错误。
该包的一部分代码pstricks
位于一个名为的文件中pstricks.tex
,该文件由该包加载。(pstricks.sty
有一行\input{pstricks}%
,内容为pstricks.tex
。)
TeX 加载文件的方式意味着当前工作目录中的文件优先于 TeX 发行版安装的文件。一般来说,这是一个非常有用的功能,因为您可以轻松地在本地覆盖某些内容,而无需更改系统文件。
pstricks.tex
但在这种情况下,这意味着加载文档目录中调用的完全不相关的文件,而不是中的包代码pstricks.tex
。
避免这种情况的最简单方法是将本地文件重命名为 以外的名称pstricks.tex
。通常,您应避免将文件命名为与类或包相同的名称,但您永远无法完全确定哪些名称有问题,因为包可能会加载.tex
具有不同名称的其他文件。唯一可以确定的方法是.log
彻底检查是否发生类似问题。
pstricks.tex
请注意,如果您的文件不包含 ,错误可能更加隐秘,并且可能发生在不同阶段\documentclass
,例如,如果它只是您使用\input
或加载到更大的文档中的论文的一章\include
。
不要将你的文档命名为 article.tex
不过,顺便说一句,这acrticle.tex
可能没什么问题,因为article.cls
不会尝试加载article.tex
。
几天前,德国 goLaTeX 论坛讨论了类似的问题https://golatex.de/markdown-in-latex-einbinden-t21651.html当用户调用其文档时(在不区分大小写的 Windows 系统上),问题出现在markdown
加载的包中。markdown.tex
Markdown.tex