我对 LaTeX 还很陌生,刚刚开始使用 TeXMaker 和 MiKTeX。我刚刚创建了这个非常短的文档:
\documentclass{article}
\usepackage[letterpaper, top=2cm,bottom=2cm,left=1cm,right=2cm,marginparwidth=1.5cm]{geometry}
\usepackage{enumitem}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}
\title{AP Stats Test Revision: Ch. 7}
\date{\today}
\begin{document}
\maketitle
\section*{1)}
\begin{enumerate}
\item \[${\sigma_Y}=\|b\|\sigma_X$\] \dagger \[${\sigma_Y}=75(7.09)=531.75$\] \dagger C
\end{enumerate}
\section*{7)}
\begin{enumerate}
\item [${W_T}={W_1}+{W_2}+{W_3}+{W_4}}$ ${\mu_W_T}={\mu_{W_1}}+{\mu_{W_2}}+{\mu_{W_3}}+{\mu_{W_4}}$]
\end{enumerate}
\end{document}
这会导致以下错误:
这是完整的日志文件: https://pastebin.com/h8JDTnt7
任何帮助都将不胜感激-非常感谢!:D
(如果有更好的方法上传错误消息和日志文件,请告诉我!)
答案1
第一个错误很重要,其他错误可能只是先前错误的结果。我将逐步介绍如何处理文档中的错误。
第一个错误显示:
! Display math should end with $$.
<to be read again>
{
l.17 \item \[${
\sigma_Y}=\|b\|\sigma_X$\] \dagger \[${\sigma_Y}=75(7...
您打开了显示数学,\[
而 TeX 内部实现的显示数学是通过 打开 来实现的。显示数学模式中$$
不能打开单个(内部数学模式)。因此,我们删除这个(以及之后的第二个)并再次运行 TeX。现在第一个错误是:$
$
\sigma_X
! Missing $ inserted.
<inserted text>
$
l.17 ...\item \[{\sigma_Y}=\|b\|\sigma_X\] \dagger
\[${\sigma_Y}=75(7.09)=53...
输入行的报告总是分为两行,错误发生的重要点总是显示在第一行的末尾。我们\dagger
在这里看到。控制序列\dagger
由 TeX 原语内部声明\mathchardef
,并且只允许在数学(或显示数学)模式下打印。但我们现在处于文本模式。这就是这个错误的原因。所以,我们使用 打开和关闭内部数学模式$\dagger$
。然后再次运行 TeX。现在的第一个错误是:
! Display math should end with $$.
<to be read again>
{
l.17 ...[{\sigma_Y}=\|b\|\sigma_X\] $\dagger$ \[${
\sigma_Y}=75(7.09)=531.75$...
啊哈,我们以前有过这种错误的经验,所以我们去掉接下来的两个美元并再次运行 TeX:
! Missing $ inserted.
<inserted text>
$
l.17 ...er$ \[{\sigma_Y}=75(7.09)=531.75\] \dagger
C
\dagger
第二个与上一个有同样的问题,将其替换为$\dagger$
。再次运行 TeX。
! Argument of \@item has an extra }.
<inserted text>
\par
l.21 ... \item [${W_T}={W_1}+{W_2}+{W_3}+{W_4}}
$ ${\mu_W_T}={\mu_{W_1}}+{...
我们看到了出错的地方,我们使用了 构造,\item[...]
但是 里面没有匹配的文本[...]
。TeX 原则是:所有参数都必须是匹配的文本,即{
和}
必须匹配。但是 不}
匹配。删除它并再次运行 TeX。
! Double subscript.
<argument> ...}={W_1}+{W_2}+{W_3}+{W_4}$ ${\mu _W_
T}={\mu _{W_1}}+{\mu _{W_2...
l.21 ..._1}}+{\mu_{W_2}}+{\mu_{W_3}}+{\mu_{W_4}}$]
TeX 不允许双上标。这意味着我们必须改用{\mu_W}_T
({\mu _W_T}
其中括号和空格无关紧要)并再次运行 TeX。现在,文档没有错误,TeX 会准确打印您所写的内容。但恕我直言,您的意图有些不同,但这是另一回事。例如,请注意,您\[...\]
在第 1 节中使用,但仅[...]
在第 7 节中使用。第一个在显示数学模式下创建数学,第二个是\item
宏的参数。
这个例子表明 LaTeX 用户也应该了解 TeX 本身,因为错误通常是由 TeX 而不是 LaTeX 报告的。有关 TeX 模式、平衡文本、重读原则等的知识非常有用。没有它们,LaTeX 用户就无法理解 TeX 报告的错误消息。不幸的是,TeX 原则通常不会在 LaTeX 手册中提及,因此不了解 TeX 的 LaTeX 用户会迷失方向。
此外,一些用于制作 TeX 文档的图形界面无法正确显示错误消息。请注意,错误的关键点始终位于报告行的断点处。检查您的图形界面是否遵循此原则。
答案2
这个文件:
\documentclass{article}
\usepackage[letterpaper, top=2cm,bottom=2cm,left=1cm,right=2cm,marginparwidth=1.5cm]{geometry}
\usepackage{enumitem}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}
\title{AP Stats Test Revision: Ch. 7}
\date{\today}
\begin{document}
\maketitle
\section*{1)}
\begin{enumerate}
\item \[{\sigma_Y}=\|b\|\sigma_X\] $\dagger$ \[{\sigma_Y}=75(7.09)=531.75\] $\dagger C$
\end{enumerate}
\section*{7)}
\begin{enumerate}
\item [${W_T}={W_1}+{W_2}+{W_3}+{W_4}$ ${\mu_{W_T}}={\mu_{W_1}}+{\mu_{W_2}}+{\mu_{W_3}}+{\mu_{W_4}}$]
\end{enumerate}
\end{document}
编译时没有错误。但我怀疑它能否创建您想要创建的内容(因为您没有告诉我们)。除其他问题外,
- 你在环境中使用
$
标志;\[...\]
- 有一个双下标(
\mu_W_T
); - 您
\dagger
在文本模式下使用了该命令。