原 文: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} 即可避免这个错误。