[翻译] [LaTeX] Missing number, treated as zero

原  文:Missing number, treated as zero
译  者:Xovee
翻译时间:2020年6月7日

Missing number, treated as zero

当你在一些需要输入数字的地方(例如计数、纬度等),输入了其他字符,那么就会出现这个错误:

在这里插入图片描述

出错原因

在需要输入数字的地方没有输入数字

当你在某个指令的参数部分输入了非数字字符,而这个参数要求只能输入数字,那么就会发生这个错误。例如:

We want to insert some vertical space between here

\vspace{this should be a number}

and here.

在这里,\vspace{…} 命令期望一个数字作为它的参数,即告诉它到底要添加多高的竖直空白间距。当你输入的不是数字的时候,这个错误就会出现。解决方法:

We want to insert some vertical space between here

\vspace{6em}

and here.

在这里插入图片描述
还有很多类似于 \vsapce{…} 的命令,它们都要求数字作为其参数。例如:

  • 间距指令
    • \vspace{…}
    • \vspace*{…}
    • \hspace{…}
    • \hspace*{…}
  • 缩放指令,例如 \includegraphics[scale = 0.7]{image}。这个指令会将图片的大小缩放到真实值的 0.7 倍。其余要求数字参数的选项还有:
    • width
    • height
    • page
    • resolution
    • trim
    • angle
  • \linebreak[number] 指令
  • 计数器指令
    • \addtocounter{mycounter}{number}
    • \setcounter{mycounter}{number}
  • 长度设置指令,例如 \setlenght{\lengthname}{number}。它可以将某个特定的长度更改为指定的值,例如 \setlength{\textwidth}{1in}
  • 表格指令,例如 \multicolumn{number}{c}{Table entry}

在换行符\\后添加方括号

换行符\\之后永远都跟着一个方括号当作一个可选的参数,这个方括号接受数字作为参数。就算 \\ 和 方括号之间有着许多空格和空行,这个规则依然成立。在表格中,这个问题经常出现:

\begin{tabular}{c|c}
    [x] &  2\\
    [x]^2 & 4 
\end{tabular}

上面的代码将会抛出一个错误。LaTeX 期望在 \\ 之后的方括号中发现一个数字,结果发现了 x。解决问题的办法是,在方括号之外嵌套一层大括号:

\begin{tabular}{c|c}
    [x] &  2\\
    {[x]}^2 & 4 
\end{tabular}

使用了subfigure

这个包已经被淘汰很久了,使用它会导致错误。例如:

% In your preamble
\usepackage{subfigure}

% In the body of your document
\begin{figure}
    \centering
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[scale=0.2]{image}
        \caption{A gull}
        \label{fig:gull}
    \end{subfigure}%
\end{figure}

上面的代码将会抛出一个错误。它不能正确识别 \textwidth 为数字。解决这个问题的办法是使用最新的 subcaption 包。在序言中将 \usepackage{subfigure} 替换为 \usepackage{subcaption} 即可避免这个错误。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章