Como posso forçar uma legenda para a esquerda em uma tabela longa?

Como posso forçar uma legenda para a esquerda em uma tabela longa?

Estou usando a seguinte sugestão de David

Adicionando uma legenda a um gráfico dentro de uma tabela longa

Só quero saber como posso fazer a legenda para a esquerda, pois percebi que às vezes meio que muda a linha da esquerda.

Isto é de Davi. Preciso forçar a legenda para a esquerda.

\makeatletter
\def\figcaption{%
    \refstepcounter{figure}%
    \@dblarg{\@caption{figure}}}
\makeatother

Estou usando o "figcaption" na minha tabela longa, conforme indicado no link fornecido.

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{makecell,multirow,tabularx,booktabs}
\usepackage{longtable}
\usepackage{graphicx}
\usepackage{caption}
\usepackage[showframe=false,,left=2cm,right=2cm,top=2cm,bottom=4.5cm]{geometry}

%this is for figure captions inside a multicolumn/longtable
\makeatletter
\def\figcaption{%
    \refstepcounter{figure}%
    \@dblarg{\@caption{figure}}}
\makeatother
%this is for figure captions inside a multicolumn/longtable

\begin{document}
        %%%%%%%%%%%%%%%%%%START TABLE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \begin{longtable}{|p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}|}
        \captionsetup{singlelinecheck=false}%ADDED HERE
        \endfirsthead

        \multicolumn{6}{r}{\makebox[17cm][r]{\textit{Continuação da página anterior}}}\\ \hline
        \endhead

        \hline
        \multicolumn{6}{r}{\makebox[17cm][r]{\textit{Continua na próxima página}}}\\
        \endfoot
        \endlastfoot

        \hline
        \multicolumn{6}{|l|}{\textbf{Resultado:}} \\
        %inicio da figura
        \multicolumn{6}{|l|}{\parbox{15cm}{
                \includegraphics[scale=0.4]{example-image-a}
                \figcaption{This caption should be on the flushleft and it is not}}}
        \\ %fim da figura
        \multicolumn{6}{|l|}{} \\
        \hline
        \caption{Table A - test caption forced to the left}
    \end{longtable}
\end{document}

insira a descrição da imagem aqui

Responder1

Assim?

insira a descrição da imagem aqui

\documentclass[12pt,a4paper]{article}
 \usepackage[left=2cm,right=2cm,top=2cm,bottom=4.5cm]{geometry}% simplified

\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{makecell,multirow,tabularx,booktabs}
\usepackage{longtable}
\usepackage{graphicx}
\usepackage{caption}
\captionsetup{labelfont=bf, singlelinecheck=false}% added, had to be here
\captionsetup[table]{singlelinecheck}% added for changing table caption

%this is for figure captions inside a multicolumn/longtable
\makeatletter
\def\figcaption{%
    \refstepcounter{figure}%
    \@dblarg{\@caption{figure}}
    }
\makeatother

\begin{document}
        %%%%%%%%%%%%%%%%%%START TABLE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \begin{longtable}{|p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}|}

        \endfirsthead    
        \multicolumn{6}{r}{\textit{Continuação da página anterior}}\\ \hline
        \endhead    
        \hline
        \multicolumn{6}{r}{\textit{Continua na próxima página}}\\
        \endfoot
        \endlastfoot    
        \hline
        \multicolumn{6}{|l|}{\textbf{Resultado:}} \\
        %inicio da figura
        \multicolumn{6}{|l|}{
                \includegraphics[scale=0.4]{example-image-a}
               \figcaption{This caption should be on the flushleft and it is not}}
        \\ %fim da figura
        \multicolumn{6}{|l|}{} \\
        \hline
        \caption{Table A - test caption forced to the left}
    \end{longtable}
\end{document}

Editar: Para as legendas são definidas duas configurações, uma para todas as legendas, uma adição de largura para as legendas das tabelas. O resultado do MWE é o mesmo de antes.

Responder2

Esta resposta usa alguns dos recursos dos pacotes captione subcaption. Pode fornecer uma solução versátil, uma vez que uma variedade de personalizações se torna possível. Também tentei usar alguns dos recursos do ltcaptionpacote, mas no final, nenhum deles foi realmente implementado aqui.

Para simplificar, removi o código não relevante para a formatação das legendas e sublegendas. Os pacotes caption, ltcaptione subcaptiondisponibilizam suas respectivas macros \captionsetup, \captionsetup[longtable]e \captionsetup[sub], mas como já mencionado, no final não utilizei o \captionsetup[longtable].

As figuras são colocadas em subfigureambientes que na verdade são minipages. O uso do subfigureambiente é um requisito para usar o \subcaption. As sublegendas utilizam a formatação fornecida por \captionsetup[sub]. Como isso especifica, justification=raggedrightas legendas das subfiguras são definidas na margem esquerda. A legenda da tabela longa também é definida na margem esquerda usando a captionsetupabordagem, mas neste caso é mais provável que o requisito seja que a legenda fique alinhada à esquerda com a borda da tabela, então adicionei margin=1.75para conseguir isso. O resultado final é que parece estar próximo do requisito.

Também é possível personalizar a formatação das legendas para fornecer os dois pontos como separador entre a legenda e o tipo de legenda (neste caso Tabela e Subfigura). Esses nomes também podem ser personalizados usando a \DeclareCaptionLabelFormatmacro. Adicionei configurações de formatação de rótulos para a legenda da tabela, escrita em português como Tabela e para formatação de subfiguras, usei apenas Subfigura. O exemplo postado indica que as subfiguras possuem numeração arábica, mas minha tentativa de redefinir a numeração de alfa para árabe não funcionou. O exemplo também mostra a legenda da tabela longa com um rótulo alfa, que é obtido com \renewcommand{\thetable}{\Alph{table}}.

O resultado é este:

insira a descrição da imagem aqui

O MWE é o seguinte:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{longtable,ltcaption,subcaption}
\usepackage{graphicx}
\usepackage[showframe=false,left=2cm,right=2cm,top=2cm,bottom=4.5cm]{geometry}

%\LTcapmarginsfalse % for testing
\setlength\LTcapleft{0pt} % Not working?
\setlength\LTcapright{0pt} % Not working?
\DeclareCaptionLabelFormat{sfcapt}{Subfigure {#2}}
\DeclareCaptionLabelFormat{ltcapt}{Tablea {#2}}
\captionsetup[sub]{labelformat=sfcapt,labelsep=colon,justification=raggedright,singlelinecheck=off}
%\captionsetup[longtable]{labelformat=ltcapt,labelsep=colon,justification=raggedright,singlelinecheck=off,width=1.0\linewidth} %justification not working?
\captionsetup{labelformat=ltcapt,margin=1.75cm,labelsep=colon,justification=raggedright,singlelinecheck=off}
\renewcommand{\thetable}{\Alph{table}}
\renewcommand{\thesubfigure}{\arabic{subfigure}} % Not working?        
\setcounter{subfigure}{1} % Initialize the subfigure counter

\begin{document}
    %%%%%%%%%%%%%%%%%%START TABLE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \begin{table}[ht]
    \begin{longtable}{|p{3cm}||p{3cm}||p{3cm}||p{3cm}|}
        \hline
        \begin{subfigure}[t]{1.0\linewidth}
        \textbf{Resultado:} \\
        \includegraphics[scale=0.25]{example-image-a} \\
        \subcaption{This caption should be on the flushleft and it is not}
        \end{subfigure}
    &
       \begin{subfigure}[t]{1.0\linewidth}
           \textbf{Resultado:} \\
           \includegraphics[scale=0.25]{example-image-a} \\
           \subcaption{This caption should be on the flushleft and it is not}
       \end{subfigure} 
   &
        \begin{subfigure}[t]{1.0\linewidth}
            \textbf{Resultado:} \\
            \includegraphics[scale=0.25]{example-image-a} \\
            \subcaption{This caption should be on the flushleft and it is not}
        \end{subfigure} 
   & \\

    \end{longtable}
    \setcounter{table}{1} %reset the table counter
    \caption{test caption forced to the left test caption forced to the left}
    \end{table}
\end{document}

informação relacionada