¿Cómo puedo forzar un título a la izquierda en una tabla larga?

¿Cómo puedo forzar un título a la izquierda en una tabla larga?

Estoy usando la siguiente sugerencia de David.

Agregar un título a un gráfico dentro de una tabla larga

Solo quiero saber cómo puedo hacer el título a la izquierda, ya que noté que a veces cambia la línea izquierda.

Esto es de David. Necesito forzar el título hacia la izquierda.

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

Estoy usando el "figcaption" en mi tabla larga, como se indica en el enlace proporcionado.

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

ingrese la descripción de la imagen aquí

Respuesta1

¿Como esto?

ingrese la descripción de la imagen aquí

\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 los subtítulos se definen dos configuraciones, una para todos los subtítulos y otra para agregar ancho a los subtítulos de las tablas. El resultado de MWE es el mismo que antes.

Respuesta2

Esta respuesta utiliza algunas de las capacidades de los paquetes captionand subcaption. Puede proporcionar una solución versátil ya que es posible una variedad de personalizaciones. También intenté utilizar algunas de las capacidades del ltcaptionpaquete, pero al final, ninguna se implementa aquí.

Para simplificar, eliminé el código que no era relevante para formatear los títulos y subtítulos. Los paquetes caption, ltcaptiony subcaptionponen a disposición sus respectivas \captionsetupmacros \captionsetup[longtable], \captionsetup[sub]pero como ya mencioné, al final no las usé \captionsetup[longtable].

Las figuras están colocadas en subfigureentornos que en realidad son minipages. El uso del subfiguremedio ambiente es un requisito para el uso \subcaption. Luego, los subtítulos utilizan el formato proporcionado por \captionsetup[sub]. Dado que esto especifica, justification=raggedrightlos títulos de las subfiguras se establecen en el margen izquierdo. El título de la tabla larga también se establece en el margen izquierdo usando este captionsetupenfoque, pero en este caso es más probable que el requisito sea que el título quede alineado con el borde de la tabla, así que lo agregué margin=1.75para lograrlo. El resultado final es que parece acercarse al requisito.

También es posible personalizar el formato de los títulos para proporcionar dos puntos como separador entre el título y el tipo de título (en este caso, Tabla y Subfigura). Esos nombres también se pueden personalizar usando la \DeclareCaptionLabelFormatmacro. Agregué configuraciones de formato de etiquetas para el título de la tabla, escritas en portugués como Tabela y para el formato de subfiguras, solo usé Subfigure. El ejemplo publicado indica que las subfiguras tienen numeración arábiga, pero mi intento de restablecer la numeración desde alfa desde árabe no funcionó. El ejemplo también muestra el título de la tabla larga con una etiqueta alfa, que se logra con \renewcommand{\thetable}{\Alph{table}}.

El resultado es este:

ingrese la descripción de la imagen aquí

El MWE es el siguiente:

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

información relacionada