Erro ao adicionar uma figura com múltiplas subfiguras

Erro ao adicionar uma figura com múltiplas subfiguras

Gostaria de incluir uma figura composta por 2 ou mais subfiguras. Este é o meu código:

\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}

E importei os seguintes pacotes:

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

Eu tenho esse erro em todas as linhas \caption:

\endcsname ausente inserido. \caption{Caption} Extra \endcsname. \caption{Legenda}

Como posso consertar isso?

Responder1

em mwe (exemplo mínimo de trabalho) abaixo compus a partir de seus fragmentos de código, nos quais fiz as seguintes alterações:

  • adicionar demoopção para graphicx(que geram caixas pretas em vez das suas imagens que eu não tenho)
  • adicione pacote lipsumpara texto fictício no documento de teste
  • substitua \quada largura \hfillque coloca imagens equidistantes entre a borda esquerda e direita do texto
  • ao código adicione alguns códigos que podem ser úteis para você completareu(exemplo mínimo de trabalho) é:

    \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}
    

que dá:

insira a descrição da imagem aqui

de cimaeuSegue-se que seu código não causa nenhum erro. como o arquivo de log do seu documento é desconhecido, é difícil dizer de onde está o seu erro. para obter mais ajuda, mescle os fragmentos do seu documento em um documento pequeno, mas completo, como acimaeue adicione-o à sua pergunta.

Responder2

Espero que isto ajude.

\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}

Estou obtendo a seguinte saída para o seu código-fonte, pois não estou tendo as imagens. A captura de tela está anexada para sua referência.

insira a descrição da imagem aqui

Edição 2: Solução alternativa usando SubFloatambiente (figuras com 13 subfiguras).

\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}

informação relacionada