更新时间 2019-01-14

更新时间 2019-01-14

下面是一个带有tabu表格的 MWE,在我今天(2018 年 12 月 16 日)使用 TeX Live Utility 更新软件包之前,该表格编译得非常好。

\documentclass[11pt]{article}

\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{tabu}

\title{Example}
\author{Andrew Turner}

\begin{document}
\maketitle

\begin{table}[h!]
    \centering

    \tabulinesep = 3pt

    \begin{tabu} spread 0pt {X[c$$]X[c$$]} \hline
        a & b \\ \hline
    \end{tabu}

    \caption{test}
\end{table}

\end{document}

更新后,尝试编译会出现一大堆错误,如下所示:

! Missing \cr inserted.
<inserted text> 
                \cr 
l.19 \end{tabu}

I'm guessing that you meant to end an alignment here.

! Misplaced \cr.
<inserted text> \cr 

l.19 \end{tabu}

I can't figure out why you would want to use a tab mark
or \cr or \span just now. If something like a right brace
up above has ended a previous alignment prematurely,
you're probably due for more error messages, and you
might try typing `S' now just to see what is salvageable.

如果我注释掉该xcolor软件包,这个问题就会得到解决;或者,如果我删除spread 0pt并保留该xcolor软件包,这个问题也会得到解决。我查看了 TeX Live Utility 中刚刚更新的内容,不知道这是否与最近的更新有关colortbl

任何帮助将不胜感激。


fancyvrb这是另一个例子。这实际上与require package的最新版本完全相同xcolor

3.2自版本( 2019/01/08)以来,此功能已过时fancyvrb,并且不再加载xcolor

\documentclass{article}
\usepackage{fancyvrb}
\usepackage{tabu}
\begin{document}
\begin{tabu}spread 0pt {XX}
A
&
B
\end{tabu}
\end{document}

打破

! Missing } inserted.
<inserted text> 
                }
l.10 \end{tabu}

? 

只需注释掉fancyvrb它的加载即可编译,或者使用 TL2017(我的 TL2018 已经完全更新...)它也可以编译。

答案1

更新时间 2019-01-14

在 tabu 2.9 中已经应用了等效补丁,并已提交给 ctan。


这是由于修复了 tabu、longtable tabularx 等中使用的数组中 p 列的颜色泄漏。tabu 包覆盖了许多数组内部结构,并假设内部结构(和分组级别)在加载颜色包时不再存在。

盯着禁忌代码看了一会儿之后,我想(但还不确定)它只需要\color@begingroup在一个地方添加。

\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

这确实修复了上面的示例文档和我迄今为止所做的测试。如果其他人可以检查他们的文档,我将不胜感激。当然,最终还是需要将这个或其他东西放入禁忌代码中。

更新

添加了上面的第二个补丁,以解释对 longtable 所做的相同更改。感谢 Ulrike Fischer 提供此补丁(在另一个问题中)。

相关内容