LaTeX子图无法编译求助:附代码与报错信息
解决LaTeX子图编译报错问题
错误原因
你用的是旧版subfigure包,这个包的subfigure环境语法和你写的代码不兼容。旧包不支持[b]{0.3\textwidth}这种参数格式,这正是引发"Missing number, treated as zero. Illegal unit of measure (pt inserted)."报错的核心原因。当前主流的子图实现方案是subcaption包,它的subfigure环境才支持你使用的参数写法。
修复步骤
- 替换包引用:把文档中的
\usepackage{subfigure}改成\usepackage{subcaption} - 清理冗余代码:主
figure环境内已经添加了\centering,每个subfigure前重复的\centering可以删除,避免排版冗余 - 优化子图布局:在子图之间添加
\hfill,让三个子图自动均匀分布在一行,避免拥挤
修改后的完整代码
\begin{figure}[H] \centering \begin{subfigure}[b]{0.3\textwidth} \includegraphics[width=\textwidth]{figures/TPA.png} \caption{TPA} \label{fig:TPA} \end{subfigure} \hfill \begin{subfigure}[b]{0.3\textwidth} \includegraphics[width=\textwidth]{figures/dmt.png} \caption{DMT} \label{fig:DMT} \end{subfigure} \hfill \begin{subfigure}[b]{0.3\textwidth} \includegraphics[width=\textwidth]{figures/bhet.png} \caption{BHET} \label{fig:BHET} \end{subfigure} \caption{molecules} \label{fig:PET monomers} \end{figure}
额外说明
- 若必须使用旧版
subfigure包,语法需改为\subfigure[TPA]{\includegraphics[width=0.3\textwidth]{figures/TPA.png}}格式,但不推荐这种做法——旧包已停止维护,兼容性较差。 - 编译前建议清理
.aux、.log等临时文件,避免缓存导致的异常问题。
内容的提问来源于stack exchange,提问作者Anna
相关产品推荐
相关产品推荐

