TeX Live 软件包上次更新后,此代码无法编译:
\documentclass{article}
\usepackage{longtable,tabu}
\usepackage{color}
\begin{document}
\begin{longtabu} to \linewidth {llX}
a & b & c\\
\end{longtabu}
\end{document}
我收到一个错误:
缺少} 插入。\end{longtabu}
如果我注释掉,\usepackage{color}
一切都会正常。另一件奇怪的事情是 - 如果我将最后一列的类型从改为X
say l
- 它也会正常(即使color
添加了包)。
答案1
更新时间 2019-01-14
在 tabu 2.9 中已经应用了等效补丁,并已提交给 ctan。
以下似乎有效(我还添加了其他补丁):
\documentclass{article}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{color}
\usepackage{etoolbox}
\makeatletter
\patchcmd\tabu@startpboxmeasure
{\aftergroup\tabu@endpboxmeasure}
{\aftergroup\tabu@endpboxmeasure
\color@begingroup
}{\typeout{tabu patched}}{\typeout{tabu patch failed!}}
\patchcmd\tabu@LT@startpbox
{\bgroup}{\bgroup\color@begingroup}
{\typeout{tabu patched}}{\typeout{tabu patch failed!}}
\makeatletter
\begin{document}
\begin{longtabu} to \linewidth {llX}
a & b & c\\
\end{longtabu}
\end{document}
答案2
新的 LaTeX3 软件包tabularray
是过时软件包的替代品tabu
:
\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor}
\begin{document}
\DefTblrTemplate{firsthead}{default}{}
\begin{longtblr}{width=\linewidth,colspec={llX},hlines,row{odd}={blue8},row{even}={azure8}}
a & b & c \\
d & e & f \\
g & h & i \\
j & k & l \\
\end{longtblr}
\end{document}