[翻譯] [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} 即可避免這個錯誤。

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