以下 MWE 无法编译:
\documentclass{article}
\usepackage{tabularx,tabls}
\begin{document}
\begin{tabular}{cccc>{\arraybackslash}}
1&2&3&4\\
1&2&3&4\\
1&2&3&4\\
1&2&3&4
\end{tabular}
\end{document}
我收到以下错误:
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (MiKTeX 2.9)
entering extended mode
(C:/temp/test-tablespace2.tex
LaTeX2e <2014/05/01>
Babel <3.9k> and hyphenation patterns for 68 languages loaded.
(C:\miktex\tex\latex\base\article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(C:\miktex\tex\latex\base\size10.clo)) (C:\miktex\tex\latex\tools\tabularx.sty
(C:\miktex\tex\latex\tools\array.sty)) (C:\miktex\tex\latex\tabls\tabls.sty)
(C:\temp\test-tablespace2.aux)
! Extra }, or forgotten \endgroup.
\@argtabularcr [#1]->\ifnum \z@ =`{\fi }
&\omit {\ifnum \z@ =`}\fi \global \a...
l.10 1
&2&3&4\\
?
我尝试过\tabularnewline
而不是\\
,但没有帮助。>{\arraybackslash}
在最后一栏中使用 也没有用。
怎么了?
编辑:我尝试了 Werner 在评论中提到的不同的加载顺序,但是当我tabularx
最后加载时,我感兴趣的命令是:
\setlength\tablinesep{5pt}
\setlength\arraylinesep{5pt}
\setlength\extrarulesep{5pt}
\hline[extra]
没有任何效果。我假设tabularx
重新定义了一些命令,因此我tabls
最后加载了。
答案1
切换加载顺序是没有用的,因为两个包都以不兼容的方式重新定义\@array
(tabularx
加载array
进行重新定义),并且没有希望让它们共存。
答案2
我想指出的是,它cellspace
具有与 tabularx 和 array 相同的功能tabls
,并且与 tabularx 和 array 兼容。它定义了单元格顶部与上方单元格底部之间以及单元格底部与下方单元格顶部之间的最小垂直距离。您必须在列限定符前加上字母S
(或者C
如果您使用SIunitx
)。带有 4×4 魔方的插图:
\documentclass{article}
\usepackage{tabularx, cellspace}
\renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash}m{#1}}
\addparagraphcolumntypes{X}
\setlength\cellspacetoplimit{10pt}
\setlength\cellspacebottomlimit{10pt}
\begin{document}
\noindent\texttt{With the S prefix from cellspace: }\bigskip
\begin{tabularx}{0.333\linewidth}{|*{4}{S{X}|}}
\hline
4 & 14 & 15 & 1\\
\hline
19 & 7 & 6 & 12\\
\hline
5 & 11 & 10 & 8\\
\hline
16 & 2 & 3 & 13\\
\hline
\end{tabularx}
\vskip1cm
\noindent\texttt{Plain X columns: }\bigskip
\begin{tabularx}{0.333\linewidth}{|*{4}{X|}}
\hline
4 & 14 & 15 & 1\\
\hline
19 & 7 & 6 & 12\\
\hline
5 & 11 & 10 & 8\\
\hline
16 & 2 & 3 & 13\\
\hline
\end{tabularx}
\end{document}