私は、クラスに分割して使用して\frontmatter
、長いドキュメントを作成しています。メインマターで提供されるテーブルに対してはテーブル キャプションと LOT エントリの両方を生成する必要がありますが、フロントマターで提供されるテーブルに対しては、両方の項目を省略/抑制する必要があります (たとえば、略語のリスト、記号のリストなど)。\mainmatter
scrbook
さらに、表、図、リストなどのキャプションの書式設定を統一するために、caption
パッケージを利用することにしました。
パッケージを使用して表caption
のキャプションをフォーマットする方法はtabularray
、次のようないくつかの場所で詳しく説明されています。
- \usepackage{caption} からの書式設定を tabularray のキャプションに自動コピーするにはどうすればよいですか?
- tabularray の longtblr の caption パッケージで定義されたキャプション スタイルを使用します。
- 表のキャプション続き
同様に、キャプションと LOT エントリのないテーブルの作成については、複数のインスタンスで説明されています。
tabularray
のマニュアル(https://ftp.rrzn.uni-hannover.de/pub/mirror/tex-archive/macros/latex/contrib/tabularray/tabularray.pdf、セクション4.1の終わり):
entry=none と記述した場合、tabularray パッケージは List of Tables にエントリを追加しません。したがって、caption=text,entry=none は longtable の \caption[]{text} と同様です。label=none と記述した場合、tabularray パッケージはテーブル カウンターをステップせず、caption-tag 要素と caption-sep 要素 (下記参照) を空に設定します。したがって、caption=text,entry=none,label=none はカウンターを除いて longtable の \caption*{text} と同様です。
両方のアプローチは単独で使用すると機能しますが (いくつかのエッジケースを見逃した可能性があります)、組み合わせると機能しません。
何が足りないのでしょうか?ドキュメント内のキャプションと LOT エントリのない表 (前書き内) と「通常の」表 (本書き内) の両方をサポートする表caption
のキャプションをフォーマットするために、パッケージをtabularray
どのように使用すればよいのでしょうか?
MWE:
\documentclass{scrbook}
\usepackage[english]{babel}
\usepackage[
font={footnotesize, sf},
labelfont={bf},
]{caption}
\usepackage{tabularray}
\usepackage{tblr-extras}
\UseTblrLibrary{booktabs}
\UseTblrLibrary{caption}
% remove continuation line at table footer
\DefTblrTemplate{contfoot-text}{default}{}
% define table template with empty captions on first and continued table instances,
% remove continuation line in footer
\DeclareTblrTemplate{caption}{nocaptemplate}{}
\DeclareTblrTemplate{capcont}{nocaptemplate}{}
\DefTblrTemplate{contfoot}{nocaptemplate}{}
% use table template to define new theme
\NewTblrTheme{mytabletheme}{
\SetTblrTemplate{caption}{nocaptemplate}{}
\SetTblrTemplate{capcont}{nocaptemplate}{}
\SetTblrTemplate{caption-lot}{empty}
}
\begin{document}
\frontmatter
\chapter{First Chapter in Frontmatter}
This chapter contains a table without any caption, label or LOT entry:
\begin{itemize}
\item \texttt{entry = none}
\item \texttt{label = none}
\end{itemize}
Problem: (Empty) caption and LOT entry are provided, when using \texttt{caption} and \texttt{tblr-extras} packages for formatting. Uncomment corresponding lines in header to see that is it working without the these two packages.
\begin{longtblr}[
entry = none,
label = none,
% apply theme to obtain table without caption on continued table
theme = mytabletheme,
]{
colspec={
l
X[l]
},
rowhead = 1, rowfoot = 0,
}
\toprule
column 1 & column 2 \\
\midrule
a & b \\
\pagebreak
a & b \\
\bottomrule
\end{longtblr}
\listoftables
\mainmatter
\chapter{First Chapter in Mainmatter}
This chapter contains a table with caption, label and LOT entry.
\begin{longtblr}[
caption = {The first table with caption},
entry = {The first table with caption},
label = {tbl:first_table_with_caption},
]{
colspec={
l
X[l]
},
rowhead = 1, rowfoot = 0,
}
\toprule
column 1 & column 2 \\
\midrule
a & b \\
\pagebreak
a & b \\
\bottomrule
\end{longtblr}
\end{document}