子图和 \textwidth 无法正常工作

子图和 \textwidth 无法正常工作

我想使用 subfigure 将文档中的一个图像放在另一个图像旁边。我直接从背页并将其修改为包含 2 个图像而不是 3 个图像。我直接在 Overleaf 上操作,但无法正常工作,并出现以下错误:

缺失数字,视为零。

               } l.20      \begin{subfigure}[b]{0.4\textwidth}

这里应该有一个数字;我插入了 0。(如果您不明白为什么我需要看到一个数字,请在 TeXbook 索引中查找“奇怪的错误”。)

非法计量单位(插入 pt)} l.27 \begin{subfigure}[b]{0.4\textwidth}

尺寸的单位可以是 em、ex、in、pt、pc、cm、mm、dd、cc、nd、nc、bp 或 sp;但您的单位是新的!我假设您指的是 pt,即打印点。要从此错误中顺利恢复,最好删除错误的单位;例如,键入 2 以删除两个字母。(请参阅 TeXbook 的第 27 章。)

我尝试直接复制粘贴并使用两次相同的图像,但仍然出现相同的错误。

\begin{figure}
     \centering
     \begin{subfigure}[b]{0.3\textwidth}
         \centering
         \includegraphics[width=\textwidth]{images/body/hierarchical-clustering-sklearn.png}
         \caption{$y=x$}
         \label{fig:y equals x}
     \end{subfigure}
     \hfill
     \begin{subfigure}[b]{0.3\textwidth}
         \centering
         \includegraphics[width=\textwidth]{images/body/partition-sklearn.png}
         \caption{$y=3\sin x$}
         \label{fig:three sin x}
     \end{subfigure}
     \hfill
     \begin{subfigure}[b]{0.3\textwidth}
         \centering
         \includegraphics[width=\textwidth]{images/body/partition-sklearn.png}
         \caption{$y=5/x$}
         \label{fig:five over x}
     \end{subfigure}
        \caption{Three simple graphs}
        \label{fig:three graphs}
\end{figure}

编辑1:我确实在序言中加载了graphicx。

答案1

我可以重现错误,如果我运行 LaTeX

\documentclass{article}
\usepackage{graphicx}
\usepackage{subfigure}

\begin{document}

\begin{figure}
     \centering
     \begin{subfigure}[b]{0.3\textwidth}
         \includegraphics[width=\textwidth]{example-image}
         \caption{$y=x$}
         \label{fig:y equals x}
     \end{subfigure}
     \hfill
     \begin{subfigure}[b]{0.3\textwidth}
         \includegraphics[width=\textwidth]{example-image}
         \caption{$y=3\sin x$}
         \label{fig:three sin x}
     \end{subfigure}
     \hfill
     \begin{subfigure}[b]{0.3\textwidth}
         \includegraphics[width=\textwidth]{example-image}
         \caption{$y=5/x$}
         \label{fig:five over x}
     \end{subfigure}
        \caption{Three simple graphs}
        \label{fig:three graphs}
\end{figure}

\end{document}

该软件包subfigure已经过时了大约二十年,并被 取代subfig。无论如何,您使用的是 的语法subcaption

\documentclass{article}
\usepackage{graphicx}          
\usepackage{subcaption}

\begin{document}

\begin{figure}
     \centering
     \begin{subfigure}[b]{0.3\textwidth}
         \includegraphics[width=\textwidth]{example-image}
         \caption{$y=x$}
         \label{fig:y equals x}
     \end{subfigure}\hfill
     \begin{subfigure}[b]{0.3\textwidth}
         \includegraphics[width=\textwidth]{example-image}
         \caption{$y=3\sin x$}
         \label{fig:three sin x}
     \end{subfigure}\hfill
     \begin{subfigure}[b]{0.3\textwidth}
         \includegraphics[width=\textwidth]{example-image}
         \caption{$y=5/x$}
         \label{fig:five over x}
     \end{subfigure}
        \caption{Three simple graphs}
        \label{fig:three graphs}
\end{figure}

\end{document}

请注意,我删除了\centering里面无用的命令subfigure。我还用我拥有的内容替换了图像的文件名。

还要注意正确的语法\hfill(由于行尾有多余的空格)。

在此处输入图片描述

相关内容