我正在编写一个较长的文档,该文档分为多个部分\frontmatter
并\mainmatter
使用该类scrbook
。虽然应该为主要内容中提供的表格生成表格标题和 LOT 条目,但对于前言中提供的表格,需要省略/抑制这两项内容(例如缩写列表、符号列表……)。
此外,为了使表格、图形、列表等的标题格式保持一致,我决定依赖该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 包将不会在表格列表中添加条目。因此 caption=text,entry=none 类似于 longtable 中的 \caption[]{text}。如果您写入 label=none,tabularray 包将不会步进表计数器,并将 caption-tag 和 caption-sep 元素(见下文)设置为空。因此 caption=text,entry=none,label=none 类似于 longtable 中的 \caption*{text},除了计数器之外。
虽然这两种方法单独使用时都可以起作用(我可能错过了一些特殊情况),但我无法将它们结合起来发挥作用。
我遗漏了什么?如何使用该caption
包来格式化表格的标题,tabularray
以支持我的文档中不带标题和 LOT 条目的表格(在前言中)和“普通”表格(在主内容中)?
梅威瑟:
\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}