我使用xltabular
和group
,因为 表格很大,占据了不止一页。我的文档是一篇论文,我有两种类型的表格, 和。默认情况下会将框架显示为表格,但是 是tables
。有没有办法只将此表格更改为框架?我用过, 但它会更改所有其他表格的标题。
frames
xltabular
frame
\captionsetup[table]{name=frame}
这new table name #
显示了所有表格,它们是真实表格而不是框架。代码是:
\begingroup
\footnotesize
\setlength\tabcolsep{3pt}
\setcellgapes{3pt}
\makegapedcells
\begin{xltabular}{\linewidth}{| *{5}{L|}}
\captionsetup[table]{name=frame}
\caption{Long table caption.}
\label{long}
\Xhline{1pt}
\multicolumn{5}{|c|}{begin frame}\\
\hline
\textbf{Chave} & \textbf{a} & \textbf{b} & \textbf{c} & \textbf{d}\\
\Xhline{0.5pt}
\endfirsthead
\caption[]{Continuation} \\
\Xhline{1pt}
\textbf{Chave} & \textbf{a} & \textbf{b} & \textbf{c} & \textbf{d}\\
\hline
\endhead
\Xhline{1pt}
\endfoot
\hline
\multicolumn{5}{|c|}{end frame}\\
\Xhline{1pt}
\endlastfoot
...
...
...
\end{xltabular}
\endgroup
有人能帮帮我吗?非常感谢大家
编辑:可运行代码 我根据下面的建议更改了代码,它不会将表格拆分为不同的页面,而且它在表格前留出了很大的空白空间。
\documentclass{article}
\usepackage{tabularray}
\usepackage{lipsum}
\usepackage[paperwidth=8cm,paperheight=6cm,width=7cm,height=4.5cm]{geometry}
\begin{document}
\DefTblrTemplate{caption-tag}{myframe}{
Frame\hspace{0.25em}\thetable
}
\DefTblrTemplate{firsthead}{myframe}{
\UseTblrTemplate{caption}{default}
\vspace{0.5em}
\hrule height 1pt
\vspace{0.5em}
\centerline{begin frame}
}
\DefTblrTemplate{lastfoot}{myframe}{
\centerline{end frame}
\vspace{0.5em}
\hrule height 1pt
}
\NewTblrTheme{myframe}{
\SetTblrTemplate{caption-tag}{myframe}
\SetTblrTemplate{firsthead}{myframe}
\SetTblrTemplate{lastfoot}{myframe}
}
\begin{longtblr}[
caption = {Long frame caption},
label = {longframe},
theme = myframe,
]{
colspec={*{5}{X}}, colsep = 3pt, rowhead = 1,
cells = {font=\footnotesize}, row{1} = {font=\footnotesize\bfseries},
}
\hline[1pt]
Chave & a & b & c & d \\
\hline[0.7pt]
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline[1pt]
\end{longtblr}
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
\begin{longtblr}[
caption = {Long table caption},
label = {longtable},
]{
colspec={*{5}{X}}, colsep = 3pt, rowhead = 1,
cells = {font=\footnotesize}, row{1} = {font=\footnotesize\bfseries},
}
\hline[1pt]
Chave & a & b & c & d \\
\hline[0.7pt]
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline[1pt]
\end{longtblr}
\end{document}
输出如下:表格/框架之前的空白页太多,表格/框架被截断,表格/框架之后被截断的空白页太多。
答案1
如果你想提供新的 LaTeX3 包tabularray
尝试一下,那么自定义表格标题就很容易了。
\documentclass{article}
\usepackage[a4paper,left=1cm,right=1cm,top=1.5cm,bottom=1.5cm]{geometry}
\usepackage{tabularray}
\usepackage{lipsum}
\begin{document}
\DefTblrTemplate{caption-tag}{myframe}{
Frame\hspace{0.25em}\thetable
}
\DefTblrTemplate{firsthead}{myframe}{
\UseTblrTemplate{caption}{default}
\vspace{0.5em}
\hrule height 1pt
\vspace{0.5em}
\centerline{begin frame}
}
\DefTblrTemplate{lastfoot}{myframe}{
\centerline{end frame}
\vspace{0.5em}
\hrule height 1pt
}
\NewTblrTheme{myframe}{
\SetTblrTemplate{caption-tag}{myframe}
\SetTblrTemplate{firsthead}{myframe}
\SetTblrTemplate{lastfoot}{myframe}
}
\begin{longtblr}[
caption = {Long frame caption},
label = {longframe},
theme = myframe,
]{
colspec={|*{5}{X|}}, colsep = 3pt, rowhead = 1,
cells = {font=\footnotesize}, row{1} = {font=\footnotesize\bfseries},
}
\hline[1pt]
Chave & a & b & c & d \\
\hline[0.7pt]
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline[1pt]
\end{longtblr}
\lipsum[1-10]
\begin{longtblr}[
caption = {Long table caption},
label = {longtable},
]{
colspec={*{5}{X}}, colsep = 3pt, rowhead = 1,
cells = {font=\footnotesize}, row{1} = {font=\footnotesize\bfseries},
}
\hline[1pt]
Chave & a & b & c & d \\
\hline[0.7pt]
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline
\lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] & \lipsum[2-4] \\
\hline[1pt]
\end{longtblr}
\end{document}