![如何使用 tabularray 生成长表?](https://linux22.com/image/449688/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20tabularray%20%E7%94%9F%E6%88%90%E9%95%BF%E8%A1%A8%EF%BC%9F.png)
我正在尝试生成如下所示的非常规表格
这是我的尝试:
\documentclass[12pt,reqno]{report}
\usepackage{siunitx}
\setlength{\arrayrulewidth}{1mm}
\setlength{\tabcolsep}{35pt}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{pdfcomment}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{xcolor}
\definecolor{lavender}{rgb}{0.9, 0.9, 0.98}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\usepackage{caption}
\begin{document}
\begin{table}
\refstepcounter{table}
\centering
\begin{tblr}{
colspec={|l l l},
rows={rowsep=5pt},
row{odd} = {bg=lavender},
row{1,2} = {bg=white},
row{2} = {rowsep=0pt},
row{3} = {font=\bfseries},
columns={colsep=6pt},
column{1} = {bg=white, colsep=3pt},
vline{1} = {abovepos = 1, belowpos = 1},
}
& \SetCell[c=2]{c} \textbf{Table \thetable}. Parameters for protein solvation calculations using APBSmem & \\
\cline[1.5pt]{2,3} & & \\[-6pt]
\cline[1.5pt]{2,3} & Parameter & Value \\
\cline[1.5pt,gray]{2,3} & Calculation type & Protein solvation \\
& Grid Dimensions & $\qtyproduct{289 x 289 x 257}{\angstrom}$ \\
& Coarse Grid Lengths & $\qtyproduct{202.889 x 202.915 x 185.759}{\angstrom}$ \\
& Fine Grid Lengths & $\qtyproduct{139.347 x 139.362 x 129.27}{\angstrom}$ \\
& Counter-Ions & 1.0, 0.154, 1.65 \\
& & -1.0, 0.154, 1.67 \\
& Protein Dielectric & 2.0 \\
& Solvent Dielectric & 80.0 \\
& Membrane Dielectric & 8.0 \\
& Headgroup Dielectric & 80.0 \\
& Boundary Conditions & Focus \\
& Solvent probe radius (srad) & 1.4 \\
& Surface sphere density (sdens) & 10 \\
& Temperature & 298.15 \\
& Z-position of membrane bottom & -23.9 \\
& Membrane thickness & 47.8 \\
& Headgroup thickness & -- \\
& Upper exclusion radius & 0 \\
& Lower exclusion radius & 0 \\
\cline[1.5pt]{2,3}
\end{tblr}
\label{table:1}
\end{table}
\end{document}
生成的表格不够长或者向下移动到页面末尾,其中包含页码。有什么技巧可以解决这个问题吗?
答案1
- 使用提供的 MWE,您的表格可以很好地放在一页上。
- 通过在 MWE 中进行以下更改,您可以将表转换为长表:
- 删除
table
环境 - 而不是
tblr
使用longtblr
- 由于
longtblr
自动caption
在表格前插入标签(它不应该在那里,因为标题被移到了表格的第一行),所以必须在表格前面插入:
- 删除
\DefTblrTemplate{firsthead, middlehead,lasthead}{default}{} % <---
\DefTblrTemplate{contfoot-text}{normal}{\scriptsize\textit{Continued on the next page}}
\SetTblrTemplate{contfoot-text}{normal}
- 为了对下一个表格进行正确的标题编号,表格末尾必须跟有
\addtocounter{table}{-1}
。
完整的MWE转换成长表就是:
\documentclass[12pt,reqno]{report}
\usepackage{pdfcomment}
\usepackage{textcomp}
\usepackage{xcolor}
\definecolor{lavender}{rgb}{0.9, 0.9, 0.98}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\usepackage{caption}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
{
\centering
\refstepcounter{table}
\DefTblrTemplate{firsthead, middlehead,lasthead}{default}{} % <---
\DefTblrTemplate{contfoot-text}{normal}{\scriptsize\textit{Continued on the next page}}
\SetTblrTemplate{contfoot-text}{normal}
\begin{longtblr}[
label={table:1}
]{
colspec={|l l l},
colsep=6pt,
rows=5pt,
row{odd} = {bg=lavender},
row{1,2} = {bg=white},
row{2} = {rowsep=0pt},
row{3} = {font=\bfseries},
column{1} = {bg=white, colsep=3pt},
vline{1} = {abovepos = 1, belowpos = 1},
rowhead=3
}
& \SetCell[c=2]{c} \textbf{Table \thetable}. Parameters for protein solvation calculations using APBSmem & \\
\cline[1.5pt]{2,3} & & \\[-6pt]
\cline[1.5pt]{2,3} & Parameter & Value \\
\cline[1.5pt,gray]{2,3} & Calculation type & Protein solvation \\
& Grid Dimensions & $\qtyproduct{289 x 289 x 257}{\angstrom}$ \\
& Coarse Grid Lengths & $\qtyproduct{202.889 x 202.915 x 185.759}{\angstrom}$ \\
& Fine Grid Lengths & $\qtyproduct{139.347 x 139.362 x 129.27}{\angstrom}$ \\
& Counter-Ions & 1.0, 0.154, 1.65 \\
& & $-1.0$, 0.154, 1.67 \\
& Protein Dielectric & 2.0 \\
& Solvent Dielectric & 80.0 \\
& Membrane Dielectric & 8.0 \\
& Headgroup Dielectric & 80.0 \\
& Boundary Conditions & Focus \\
& Solvent probe radius (srad) & 1.4 \\
& Surface sphere density (sdens) & 10 \\
& Temperature & 298.15 \\
& Z-position of membrane bottom & $-23.9$ \\
& Membrane thickness & 47.8 \\
& Headgroup thickness & -- \\
& Upper exclusion radius & 0 \\
& Lower exclusion radius & 0 \\
\cline[1.5pt]{2,3}
\end{longtblr}
\addtocounter{table}{-1}
}
\begin{table}[ht]
\caption{For test of tables numbering}
\begin{tabular*}{\linewidth}{@{} p{\linewidth} @{}}
\hline
\lipsum[66] \\
\hline
\end{tabular*}
\end{table}
\end{document}