ロングテーブルのキャプションのスタイルを変更するにはどうすればよいですか?

ロングテーブルのキャプションのスタイルを変更するにはどうすればよいですか?

私は持っている

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

キャプションを次のようにするにはどうすればいいでしょうか

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

(つまり、「表 1」は太字、「キャプション」は斜体)?

さらに良いことに、{\bfseries Table 1}1 行目、{\itshape A caption.}次の行、両方の行を中央に配置することはできますか?

(非推奨のコマンドを置き換えるために編集されました。)

答え1

captionパッケージを使用してこれを行うことができます。その後、 を使用してcaptionsetupキャプションを好みに合わせてフォーマットします。

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

答え2

@Kiraa の回答に残した質問に従って、パッケージ\LT@makecaptionのマクロをlongtable直接変更するソリューションを次に示します。このソリューションでは、パッケージ\patchcmdのマクロを使用して、マクロetoolboxに対して必要な操作を実行します\LT@makecaption

ここに画像の説明を入力してください

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

部分の後に改行を入れるにはTable <x>、次のコードを使用できます (上記のパッチ コードの代わりにプリアンブルに挿入します)。

\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

関連情報