私は持っている
\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