Wie kann ich eine Überschrift in einer langen Tabelle nach links verschieben?

Wie kann ich eine Überschrift in einer langen Tabelle nach links verschieben?

Ich verwende den folgenden Vorschlag von David

Hinzufügen einer Beschriftung zu einer Grafik in einer langen Tabelle

Ich möchte nur wissen, wie ich die Überschrift nach links einfügen kann, da mir aufgefallen ist, dass sie manchmal die linke Zeile irgendwie verändert.

Das ist von David. Ich muss die Überschrift nach links verschieben.

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

Ich verwende auf meinem Longtable die „Figcaption“, wie im bereitgestellten Link angegeben.

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

Bildbeschreibung hier eingeben

Antwort1

So was?

Bildbeschreibung hier eingeben

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

Bearbeiten: Für Überschriften werden zwei Einstellungen definiert, eine für alle Überschriften, eine Breitenzugabe für die Überschriften der Tabellen. Das Ergebnis von MWE ist das gleiche wie zuvor.

Antwort2

Diese Antwort verwendet einige der Funktionen der Pakete captionund subcaption. Sie bietet möglicherweise eine vielseitige Lösung, da eine Reihe von Anpassungen möglich werden. Ich habe auch versucht, einige der Funktionen des ltcaptionPakets zu verwenden, aber letztendlich ist hier keine davon implementiert.

Der Einfachheit halber habe ich Code entfernt, der für die Formatierung der Überschriften und Unterüberschriften nicht relevant ist. Die Pakete caption, ltcaptionund subcaptionstellen ihre jeweiligen Makros \captionsetup, \captionsetup[longtable]und zur Verfügung \captionsetup[sub], aber wie bereits erwähnt habe ich letztendlich nicht verwendet \captionsetup[longtable].

Die Abbildungen werden in subfigureUmgebungen platziert, die eigentlich sind minipages. Die Verwendung der subfigureUmgebung ist Voraussetzung für die Verwendung \subcaptionvon . Die Unterbeschriftungen verwenden dann die von bereitgestellte Formatierung \captionsetup[sub]. Da dies angibt, justification=raggedrightwerden die Beschriftungen für die Unterabbildungen am linken Rand gesetzt. Die Beschriftung der langen Tabelle wird mit dem captionsetupAnsatz ebenfalls am linken Rand gesetzt, aber in diesem Fall ist es wahrscheinlicher, dass die Anforderung darin besteht, dass die Beschriftung linksbündig am Rand der Tabelle ausgerichtet sein soll, also habe ich hinzugefügt, margin=1.75um dies zu erreichen. Das Endergebnis scheint der Anforderung nahe zu kommen.

Es ist auch möglich, die Formatierung der Bildunterschriften anzupassen, indem der Doppelpunkt als Trennzeichen zwischen der Bildunterschrift und dem Bildunterschriftentyp (in diesem Fall Tabelle und Unterabbildung) verwendet wird. Auch diese Namen können mithilfe des \DeclareCaptionLabelFormatMakros angepasst werden. Ich habe Formatierungseinstellungen für die Beschriftung der Tabellenüberschrift hinzugefügt, die auf Portugiesisch als Tabela geschrieben ist, und für die Formatierung der Unterabbildung habe ich einfach Unterabbildung verwendet. Das gepostete Beispiel zeigt, dass Unterabbildungen eine arabische Nummerierung haben, aber mein Versuch, die Nummerierung von alphanumerisch auf arabisch zurückzusetzen, hat nicht funktioniert. Das Beispiel zeigt auch die lange Tabellenüberschrift mit einer alphanumerischen Beschriftung, die mit erreicht wird \renewcommand{\thetable}{\Alph{table}}.

Das Ergebnis ist folgendes:

Bildbeschreibung hier eingeben

Der MWE lautet wie folgt:

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

verwandte Informationen