我设置了许多表格,{tabularx}
但对于其中一些表格,似乎更容易使用。但如果我同时使用这两个包,并在{tabu}
最后一列中给出一个可选参数,它就会崩溃。X
{longtabu}
S
因此,我可以“卸载”tabularx
以使其工作,这是没有选择的,或者使用另一个表格前言,但这不是很好......
\documentclass{article}
\usepackage{tabu,longtable}
\usepackage{tabularx}% comment this out to make it work
\usepackage{siunitx}
\sisetup{locale=DE}
\begin{document}
%\begin{longtabu} to \textwidth{llX[-0.5,l]{S}X[-0.5,l]{S}X[-0.5,l]{S}}
% works with this preamble even when tabularx is loaded:
\begin{longtabu} to \textwidth{llX[-0.5,l]{S}X[-0.5,l]{S}X{S}}
2& 1400& 2,5 & 1,0 &2,3\\
\end{longtabu}
\end{document}
我发现如何将 siunitx 和 tabularx 一起使用?但没有帮助。
答案1
tabularx
正在重新定义\arraybackslash
(甚至在文档中说这是一个 hack:
\arraybackslash \\ hack.
\def\arraybackslash{\let\\\@arraycr}
tabu
不喜欢这个定义。它期望\arraybackslash
具有来自的含义array.sty
。所以现在\\
给出错误。您可以\arraybackslash
在本地返回标准定义:
\begingroup
\def\arraybackslash{\let\\\tabularnewline}
\begin{longtabu}
....
\end{longtabu}
\endgroup
答案2
我不确定tabu
这里在做什么(在此之前我没有安装它)但它看起来像是某些东西在本地定义,\\
所以它不再结束表行。改为使用\tabularnewline
似乎可以使您的示例起作用。