我发现这个问题可以使用以下方法制作长桌斑马条纹
\rowcolors{2}{white}{gray!25}
所以我尝试了一下,但发现它在我的项目中看起来并不好 - 条纹从桌子上伸出来并且上面有一些洞:
尝试了一些东西后,我注意到了@{\extracolsep{\fill}}
问题所在。
没有它,颜色是完美的:
但是我的桌子不够宽。
有没有更好的替代方案@{\extracolsep{\fill}}
,可以\rowcolors{2}{white}{gray!25}
让两件事协同工作(同时保持longtable
)?
这是完整的最小示例(顺便说一下,我是用 XeLaTeX 构建的,还没有尝试过它是否适用于 PdfLaTeX):
\documentclass[a4paper, 11pt]{article}
\usepackage{fontspec}
\usepackage{longtable}
\usepackage[table]{xcolor}
\begin{document}
\rowcolors{2}{white}{gray!25}
\begin{longtable}{@{\extracolsep{\fill}}clr}
% \begin{longtable}{clr}
\hline
\noalign{\smallskip}
{Test Col1\hfill} &
{Test Col2\hfill} &
{Test Col3}\\
\noalign{\smallskip}
\hline
\noalign{\smallskip}
\endhead
\noalign{\smallskip}
\hline
\endfoot
\endlastfoot
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
\end{longtable}
\end{document}
答案1
你的表格代码说实话很奇怪,真的只有表头,而表体什么都没有吗?
我怀疑你正在经历这样的事情:
\documentclass[a4paper, 11pt]{article}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{longtblr}[
caption = {table caption},
label = {tab:long},
]{hline{1,2,Z},
colspec = {X[c]X[l]X[r]},
row{even} = {bg=gray!25},
row{1} = {font=\bfseries},
rowhead = 1
}
% table body
Test Col1 & Test Col2 & Test Col3 \\
%
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
\end{longtblr}
\end{document}
答案2
这个怎么样?
它使用该tabularray
包。
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\begin{document}
\begin{longtblr}[
caption={Caption}
]{
colspec = {X[c]X[l]X[r]},
row{even} = {gray!25},
rowhead = 1
}
\toprule
Test Col1 & Test Col2 & Test Col3 \\
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
Test & Test & Test \\
\bottomrule
\end{longtblr}
\end{document}
答案3
此方法使用空的固定宽度列来创建额外的空白:
\documentclass[a4paper,11pt]{article}
\usepackage{fontspec}
\usepackage{longtable}
\usepackage[table]{xcolor}
\begin{document}
\rowcolors{2}{white}{gray!25}
\begin{longtable}{cp{2cm}lp{2cm}r}
\hline
\noalign{\smallskip}
Test Col1 &&
Test Col2 &&
Test Col3 \\
\noalign{\smallskip}
\hline
\noalign{\smallskip}
\endhead
\noalign{\smallskip}
\hline
\endfoot
\endlastfoot
Test && Test && Test \\
Test && Test && Test \\
Test && Test && Test \\
Test && Test && Test \\
\end{longtable}
\end{document}