这篇极短的文档中出现了数十个错误,其中大部分与数学模式或枚举列表有关

这篇极短的文档中出现了数十个错误,其中大部分与数学模式或枚举列表有关

我对 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}

这会导致以下错误:

错误,第 1 部分 错误,第 2 部分

这是完整的日志文件: 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在文本模式下使用了该命令。

相关内容