自上次更新 tabu.sty 以来,我收到以下错误:
! Improper \prevdepth. \tabu@verticalspacing ... tempdimc \t
这是 MWE
\documentclass[a4paper,12pt]{report}
\usepackage{tabu}
\usepackage{amsmath}
\usepackage{xcolor}
\newcolumntype{L}{>{\begin{varwidth}{0.91\linewidth}}l<{\end{varwidth}}}
\begin{document}
\begin{tabu}{Lcc}
$\begin{pmatrix}
1 \\2\\3
\end{pmatrix}$& 2& 3\\
\end{tabu}
\end{document}
当在具有预定义列(使用 varwidth)的禁忌环境中包含 pmatrix(或数组)时会发生错误,而且奇怪的是,当包含任何其他包列表时也会发生错误(例如:color.sty、xcolor.sty、pstricks-add.sty、colortbl.sty,...)更新之前一切都运行良好!
有谁知道如何解决这一问题?
以下是该文件的第一行log
:
这是 pdfTeX,版本 3.14159265-2.6-1.40.19(MiKTeX 2.9.6930 64 位)(预加载格式=latex 2019.1.13)2019 年 1 月 20 日 12:55 进入扩展模式
答案1
我认为这是正确的修复,如果它经过更多的测试,我会在 ctan 上更新 tabu。
\documentclass[a4paper,12pt]{report}
\usepackage{tabu}
\usepackage{amsmath}
\usepackage{xcolor}
\newcolumntype{L}{>{\begin{varwidth}{0.91\linewidth}}l<{\end{varwidth}}}
\makeatletter
\def\tabu@verticalmeasure{\everypar{}%
\unless\ifnum\currentgrouptype=14 \let\tabu@currentgrouptype\currentgrouptype\fi
\ifnum \tabu@currentgrouptype>12 % 14=semi-simple, 15=math shift group
\setbox\tabu@box =\hbox\bgroup
\let\tabu@verticalspacing \tabu@verticalsp@lcr
\d@llarbegin % after \hbox ...
\else
\edef\tabu@temp{\ifnum\tabu@currentgrouptype=5\vtop
\else\ifnum\tabu@currentgrouptype=12\vcenter
\else\vbox\fi\fi}%
\setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup
\let\tabu@verticalspacing \tabu@verticalsp@pmb
\fi
}
\makeatother
\begin{document}
\begin{tabu}{Lcc}
$\begin{pmatrix}
1 \\2\\3
\end{pmatrix}$& 2& 3\\
\end{tabu}
\end{document}
答案2
新的 LaTeX3 软件包tabularray
是过时软件包的替代品tabu
:
\documentclass[a4paper,12pt]{report}
\usepackage{amsmath}
\usepackage{varwidth}
\usepackage{xcolor}
\usepackage{tabularray}
\NewColumnType{L}{>{\begin{varwidth}{0.91\linewidth}}l<{\end{varwidth}}}
\begin{document}
\begin{tblr}{Lcc}
$\begin{pmatrix}
1 \\ 2 \\ 3
\end{pmatrix}$ & 2 & 3 \\
\end{tblr}
\end{document}