colsep 必须位于 colspec 之前,@{} 才能生效

colsep 必须位于 colspec 之前,@{} 才能生效

这是一个简单的例子,我花了很长时间才确定是什么导致了这种行为。

tabularray在文档中的大多数示例中,colspec键是第一个要指示的。但是,如果您想使用@{}删除第一列之前和最后一列之后的空格,colspec则必须在 之后colsep

这是正常的、预期的行为还是一个错误?或者@{}语法是否不鼓励使用tabularray

感谢您的见解并祝您有美好的一天。

%%%% MWE
\documentclass{scrartcl}

\usepackage{tabularray}

\begin{document}

\begin{tblr}{
  colsep=12pt,
  colspec={|@{}lcr@{}|},
}
  a & b & c
\end{tblr}

\begin{tblr}{
  % colspec first, @{} does not work
  colspec={|@{}lcr@{}|},
  colsep=12pt,
  % column{1}={leftsep=0pt},  % needed to have the same effect as @{} before first column
  % column{Z}={rightsep=0pt},  % needed to have the same effect as @{} after last column
}
  a & b & c
\end{tblr}
\end{document}
%%%%

答案1

作为作者tabularray包,我可以确认这@{}是一种受支持的语法。

由于和都会@{}改变colsep列分隔的大小,因此它们互相覆盖是正常行为。

更详细地说,colsep=12pt

column{1} = {leftsep=12pt,rightsep=12pt},
column{2} = {leftsep=12pt,rightsep=12pt},
column{3} = {leftsep=12pt,rightsep=12pt},

whilecolspec={|@{}lcr@{}|}

hline{1},
column{1} = {leftsep=0pt,halign=l},
column{2} = {halign=c},
column{3} = {halign=r,rightsep=0pt},
hline{3},

因此,您需要在此用例colsep之前放置。colspec

相关内容