¿Cómo cambio el estilo de un título de tabla larga?

¿Cómo cambio el estilo de un título de tabla larga?

Tengo

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

¿Cómo puedo hacer que el título se vea así?

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

(entonces, "Tabla 1." en negrita y "Un título." en cursiva)?

Aún mejor, ¿podría pasar {\bfseries Table 1}a una línea, {\itshape A caption.}a la siguiente y ambas líneas centradas?

(Editado para reemplazar los comandos obsoletos).

Respuesta1

Puedes usar captionel paquete para hacerlo. Luego utilícelo captionsetuppara formatear el título a su gusto.

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

Respuesta2

Según la consulta que dejó en la respuesta de @ Kiraa, aquí hay una solución que modifica la macro \LT@makecaptiondel longtablepaquete directamente. La solución utiliza la \patchcmdmacro del etoolboxpaquete para realizar la cirugía requerida en la \LT@makecaptionmacro.

ingrese la descripción de la imagen aquí

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

Para obtener un salto de línea después de la Table <x>parte, puede usar el siguiente código (que se insertará en el preámbulo en lugar del código de parche que se muestra arriba):

\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

información relacionada