如何更改長表標題的樣式?

如何更改長表標題的樣式?

我有

\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」為粗體,「A 標題」為斜體)?

更好的是,我可以得到{\bfseries Table 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

相關內容