Я пишу более длинный документ, разделенный на класс \frontmatter
и \mainmatter
использующий его scrbook
. В то время как для таблиц, представленных в основном документе, должны быть сгенерированы как заголовок таблицы, так и запись LOT, для таблиц, представленных в вводной части, оба элемента должны быть опущены/подавлены (например, список сокращений, список символов ...).
Кроме того, чтобы обеспечить единообразное форматирование подписей к таблицам, рисункам, спискам и т. д., я решил положиться на этот caption
пакет.
Использование caption
пакета для форматирования заголовков tabularray
таблиц, как было подробно описано в нескольких местах, например:
- Как автоматически скопировать форматирование из \usepackage{caption} в заголовок tabularray?
- Использовать стиль заголовка, определенный с помощью пакета caption в longtblr tabularray
- Подписи к таблицам продолжение
Аналогично, создание таблиц без заголовка и записи 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 аналогично \caption[]{text} в longtable. Если вы напишете label=none, пакет tabularray не будет увеличивать счетчик таблиц и установит элементы caption-tag и caption-sep (см. ниже) пустыми. Поэтому caption=text,entry=none,label=none аналогично \caption*{text} в longtable, за исключением счетчика.
- Как пропустить заголовок продолженной таблицы на второй странице с помощью tabularray
- Удалить метку таблицы в пределах «longtblr»
Хотя оба подхода работают по отдельности (я мог упустить некоторые пограничные случаи), в сочетании они не работают.
Что я упускаю? Как можно использовать пакет 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}