missing number treated as zero illegal unit of measure (pt inserted)

使用latex的subfigure的时候报错:

missing number treated as zero illegal unit of measure (pt inserted)

原因有很多种,笔者遇到的情况是因为使用了\usepackage{subfigure},导致类似于**\textwidth**等长度变量无法直接在子图里调用,官方建议是使用\usepackage{subcaption}

例如,原先代码为:

\begin{figure}[htbp]
\centering
\vspace{-0.5cm} 
\subfigure[MORE]{
\includegraphics[width=4.0cm]{figures/MORE_124.pdf}
%\caption{fig1}
}
%\hspace{-1mm}
\subfigure[RSNs]{
\includegraphics[width=4.0cm]{figures/RSNs_124.pdf}
}
\vspace{-0.35cm}
\caption{The t-SNE visualization on FewRel.}
\label{fig:t-SNE1.0}
\end{figure}
\vspace{-0.23cm} 

现在改为:

\begin{figure}[hbt!]
\centering
% \subfigcapskip=12pt
\vspace{-0.5cm} 
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/MORE_124.pdf}
\end{subfigure}%
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/RSNs_124.pdf}
\end{subfigure}%
% \vspace{-0.3cm}
\caption{The t-SNE visualization on FewRel.}
\label{fig:t-SNE1.0}
\end{figure}

主要改动就是把\subfigure[]{}改为\begin{subfigure}[b]{}{}... \end{subfigure}的形式。具体用法,latex官网有example,照着写就行:
latex官网教程

参考:

<think>嗯,用户遇到了几个LaTeX编译错误,包括'Undefined control sequence'、'Missing \endcsname inserted'和'Missing number, treated as zero'。首先,我需要回忆这些错误的常见原因和解决方法。 对于'Undefined control sequence',通常是使用了未定义的命令或者宏包没加载。比如用户可能在代码里用了\subfigure,但没加载subcaption或subfig宏包。此外,拼写错误或命令名称错误也可能导致这个问题。比如用户示例中的\tabcolsep是否正确使用?可能需要检查是否有拼写错误,或者是否在正确的位置使用该命令。 接下来是'Missing \endcsname inserted',这通常和命令参数有关,特别是在使用需要名称的地方用了非法的字符。例如,在\label或\ref中使用了特殊符号,或者在定义命令时参数不正确。比如用户的标签\label{tab6}看起来没问题,但如果在其他地方有类似的问题,可能需要检查是否在需要字符串的地方用了数字或其他不允许的内容。 然后是'Missing number, treated as zero',这个错误通常发生在应该输入数字的地方用了非数字参数。比如在设置长度或宽度时,用户可能漏掉了单位,或者参数位置不正确。例如,用户代码中的\tabcolsep=0.4cm是否正确?正确的语法应该是\setlength{\tabcolsep}{0.4cm},直接赋值可能引发错误,因为LaTeX期望的是一个数字加单位,但在这里可能被当作参数处理的方式不对。 另外,用户提供的引用[4]中的图片代码使用了\subfigure,而\subfigure在较新的LaTeX版本中已经被subcaption宏包的\subfloat替代。这可能导致了控制序列未定义的错误。需要建议用户改用\subfloat并加载subcaption宏包。 还有引用[3]提到的maxdeadcycles问题,当文档中有过多的\clearpage时,可能需要调整计数器。但用户的问题可能更常见于宏包冲突或命令错误,所以可能需要优先检查这些方面。 总结下来,用户需要逐步检查每个错误出现的代码位置,确认是否正确加载了必要的宏包,命令拼写是否正确,参数是否符合要求,以及是否在需要数值的地方提供了正确的单位和格式。此外,替换过时的命令,比如用subcaption代替subfigure,可能会解决部分问题。最后,建议用户查看编译日志,定位具体错误行,以便更有针对性地排查。</think>### LaTeX 编译错误解析及解决方案 #### 1. **'Undefined control sequence' 错误** **原因**:使用了未定义的命令(如拼写错误、未加载对应宏包)。 **示例**:用户代码中使用了 `\subfigure`,但未加载 `subfig` 或 `subcaption` 宏包[^4]。 **解决方法**: - 检查命令拼写,确认是否遗漏宏包。例如: ```latex \usepackage{subfig} % 支持 \subfigure \usepackage{subcaption} % 支持 \subfloat ``` - 替换过时命令。例如,将 `\subfigure` 改为 `\subfloat`。 --- #### 2. **'Missing \endcsname inserted' 错误** **原因**:命令参数中包含非法字符(如特殊符号、缺失参数)。 **示例**:`\label` 或 `\ref` 中使用了 `#`、`%` 等符号。 **解决方法**: - 避免在标签中使用特殊符号,例如: ```latex \label{tab:results} % 正确 \label{tab#results} % 错误 ``` - 确保命令参数完整,如 `\cite` 需要指定文献条目。 --- #### 3. **'Missing number, treated as zero' 错误** **原因**:应在参数位置输入数字,但提供了非数字内容(如单位缺失)。 **示例**:用户代码 `\tabcolsep=0.4cm` 需修正为 `\setlength{\tabcolsep}{0.4cm}`[^1]。 **解决方法**: - 显式指定单位(如 `pt`、`cm`),例如: ```latex \includegraphics[width=0.45\textwidth]{image} % 正确 \includegraphics[width=0.45]{image} % 错误(缺少单位) ``` - 使用 LaTeX 标准长度设置命令(如 `\setlength`)。 --- #### 综合示例修正 用户原始代码问题: ```latex \begin{table*}[h] \caption{Quantitative results}\label{tab6} \tabcolsep=0.4cm % 错误:未使用 \setlength ``` **修正后**: ```latex \usepackage{subcaption} % 添加宏包 \begin{table*}[h] \caption{Quantitative results}\label{tab:nyu} % 标签规范化 \setlength{\tabcolsep}{0.4cm} % 正确设置列间距 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值