添加带有多个子图的图形时出错

添加带有多个子图的图形时出错

我想包含由 2 个或更多子图组成的图形。这是我的代码:

\begin{figure}[ht]
    \centering
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{../figuras/fig1}
        \caption{Caption}
    \end{subfigure}
    \quad
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{../figuras/fig2}
        \caption{Caption}
    \end{subfigure}
    \quad
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{../figuras/fig3}
        \caption{Caption}
    \end{subfigure}
\caption{Caption}
\end{figure}

我已经导入了以下包:

\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{fancyhdr}
\usepackage{subcaption}
\usepackage{geometry}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{eucal}
\usepackage{setspace}\singlespacing

我在所有 \caption 行中都遇到此错误:

缺少插入的 \endcsname。\caption{Caption} 额外的 \endcsname。\caption{Caption}

我该如何修复它?

答案1

在下面的 mwe(最小工作示例)中,我根据您的代码片段进行了编写,其中我做了以下更改:

  • 添加demo选项graphicx(生成黑框而不是我还没有的图像)
  • lipsum在测试文档中添加虚拟文本包
  • 替换\quad宽度\hfill,将图像等距放置在左右文本边框之间
  • 代码中添加一些可能对你有帮助的代码完成姆韦(最小工作示例)是:

    \documentclass[english]{book}
    % \usepackage[latin1]{inputenc} % better to use \usepackage[utf]{inputenc}
                                    % which is newest version of document classes default
    \usepackage{babel}
    \usepackage{fancyhdr}
    \usepackage{subcaption}
    \usepackage{geometry}
    \usepackage{makeidx}
    \usepackage[demo]{graphicx}         % in the real document remove option "demo"
    %\usepackage{latexsym}
    \usepackage{amssymb}
    \usepackage{eucal}
    %\usepackage{setspace}\singlespacing
    
    \usepackage{lipsum}                 % for dummy text, remove in the real document
    \begin{document}
    \lipsum[1-5]
        \begin{figure}[htb]
    %\centering
        \begin{subfigure}[b]{0.3\textwidth}
            \includegraphics[width=\linewidth]{../figuras/fig1}
            \caption{sub caption}
        \end{subfigure}
        \hfill
        \begin{subfigure}[b]{0.3\textwidth}
            \includegraphics[width=\linewidth]{../figuras/fig2}
            \caption{sub caption}
        \end{subfigure}
        \hfill
        \begin{subfigure}[b]{0.3\textwidth}
            \includegraphics[width=\linewidth]{../figuras/fig3}
            \caption{sub caption}
        \end{subfigure}
    \caption{Main caption}
        \end{figure}
    \lipsum[6-10]
    \end{document}
    

这使:

在此处输入图片描述

从上面姆韦因此,其代码不会导致任何错误。由于您的文档的日志文件未知,因此很难说您的错误来自哪里。如需进一步帮助,请将您的文档片段合并到一个小而完整的文档中,如上所示姆韦并将其添加到您的问题中。

答案2

希望这可以帮助。

\documentclass[12pt,twoside]{book}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{fancyhdr}
\usepackage{subcaption}
\usepackage{geometry}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{eucal}
\usepackage{setspace}
\singlespacing
\begin{document}
\begin{figure}[ht]
\centering
\begin{subfigure}[b]{0.3\textwidth}
    \includegraphics[width=\textwidth]{../figuras/fig1}
    \caption{Caption}
\end{subfigure}
\quad
\begin{subfigure}[b]{0.3\textwidth}
    \includegraphics[width=\textwidth]{../figuras/fig2}
    \caption{Caption}
\end{subfigure}
\quad
\begin{subfigure}[b]{0.3\textwidth}
    \includegraphics[width=\textwidth]{../figuras/fig3}
    \caption{Caption}
\end{subfigure}
\caption{Caption}
\end{figure}
\end{document}

由于我没有图像,因此我获得了以下源代码输出。随附屏幕截图供您参考。

在此处输入图片描述

编辑2:使用SubFloat环境的替代解决方案(带有13个子图的图)。

\documentclass[12pt,a4paper,twoside,onecolumn]{book}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\begin{figure*}
\mbox{\subfloat[]{\label{1} \includegraphics[height=2.3cm]{example-image-a}}}
\mbox{\subfloat[]{\label{2} \includegraphics[height=2.3cm]{example-image-b}}}
\mbox{\subfloat[]{\label{3} \includegraphics[height=2.3cm]{example-image-c}}}
\mbox{\subfloat[]{\label{4} \includegraphics[height=2.3cm]{example-image-b}}}
\mbox{\subfloat[]{\label{5} \includegraphics[height=2.3cm]{example-image-b}}}
\mbox{\subfloat[]{\label{6} \includegraphics[height=2.3cm]{example-image-c}}}
\mbox{\subfloat[]{\label{7} \includegraphics[height=2.3cm]{example-image-b}}}
\mbox{\subfloat[]{\label{8} \includegraphics[height=2.3cm]{example-image-b}}}
\mbox{\subfloat[]{\label{9} \includegraphics[height=2.3cm]{example-image-a}}}
\mbox{\subfloat[]{\label{10} \includegraphics[height=2.3cm]{example-image-b}}}
\mbox{\subfloat[]{\label{11} \includegraphics[height=2.3cm]{example-image-c}}}
\mbox{\subfloat[]{\label{12} \includegraphics[height=2.3cm]{example-image-b}}}
\mbox{\subfloat[]{\label{13} \includegraphics[height=2.3cm]{example-image-b}}}


\caption{Normal Models. \protect\subref{subfig:1} SLR. \protect\subref{subfig:2} MLR. \protect\subref{subfig:3} SWR. \protect\subref{subfig:4} OLS. \protect\subref{5} OLS. \protect\subref{6} OS. \protect\subref{7} Ok. \protect\subref{8} hi. \protect\subref{9} hey. \protect\subref{10} MSD. \protect\subref{11} LPY. \protect\subref{12} MSY. \protect\subref{13} Hello.}
\label{fig}
\end{figure*}
\end{document}

相关内容