Wie ändere ich den Stil einer Longtable-Beschriftung?

Wie ändere ich den Stil einer Longtable-Beschriftung?

Ich habe

\documentclass{article}

\usepackage{longtable}

\begin{document}

\begin{longtable}{|c|c|} 
\caption{A caption.}\label{tab1} \\ \hline
1 & 2 \\ \hline
3 & 4 \\ \hline
\end{longtable}

\end{document}

Wie kann ich die Beschriftung so gestalten,

{\bfseries Table 1.} {\itshape A caption.}

(also „Tabelle 1“ in Fettdruck und „Eine Überschrift“ in Kursivdruck)?

Oder noch besser: Könnte ich {\bfseries Table 1}auf eine Zeile, {\itshape A caption.}auf die nächste Zeile und beide Zeilen zentriert gelangen?

(Bearbeitet, um veraltete Befehle zu ersetzen.)

Antwort1

Sie können captionhierfür das Paket verwenden. Anschließend können Sie captionsetupdie Beschriftung nach Ihren Wünschen formatieren.

\documentclass{article}

\usepackage{longtable}
\usepackage{caption}

\begin{document}

\captionsetup[longtable]{labelfont=bf,textfont=it,labelsep=newline}

\begin{longtable}{|c|c|} 
\caption{A caption.}\label{tab1} \\ \hline
1 & 2 \\ \hline
3 & 4 \\ \hline
\end{longtable}

\end{document}

Antwort2

Gemäß der Frage, die Sie in der Antwort von @Kiraa hinterlassen haben, gibt es hier eine Lösung, die das Makro \LT@makecaptiondes longtablePakets direkt ändert. Die Lösung verwendet das \patchcmdMakro des etoolboxPakets, um die erforderliche Operation am \LT@makecaptionMakro durchzuführen.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{longtable}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\LT@makecaption}%
   {\@tempboxa{#1{#2: }#3}}
   {\@tempboxa{#1{\textbf{#2. }}\itshape #3}}{}{}
\patchcmd{\LT@makecaption}%
   {#1{#2: }#3}
   {#1\textbf{#2. }{\itshape #3}}{}{}
\makeatother

\begin{document}
\begin{longtable}{|c|c|} 
\caption{A caption.} \label{tab1}  \\
\hline
1 & 2 \\ \hline
3 & 4 \\ \hline
\end{longtable}
\end{document}

Um einen Zeilenumbruch nach dem Table <x>Teil zu erhalten, können Sie den folgenden Code verwenden (der in die Präambel anstelle des oben gezeigten Patchcodes eingefügt wird):

\usepackage{etoolbox,ragged2e}
\makeatletter
\patchcmd{\LT@makecaption}%
   {\@tempboxa{#1{#2: }#3}}
   {\@tempboxa{#1{\textbf{#2.\ }}\itshape #3}}{}{}
\patchcmd{\LT@makecaption}%
   {#1{#2: }#3}
   {\Centering #1\textbf{#2.}\par{\itshape #3}}{}{}
\patchcmd{\LT@makecaption}%
   {\hbox to\hsize{\hfil\box\@tempboxa\hfil}}
   {\Centering #1\textbf{#2.}\par{\itshape #3}}{}{}
\makeatother

verwandte Informationen