原 文: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} 即可避免這個錯誤。