我有
\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