在 tabu 中使用 makecell:与 tcolorbox 和 todonotes 包不兼容

在 tabu 中使用 makecell:与 tcolorbox 和 todonotes 包不兼容

tabu我在将包与 makecell 和tcolorbox一起使用时遇到问题todonotes。这是我的最小示例代码:

\documentclass[a4paper]{scrreprt}
\usepackage{tcolorbox}
\usepackage{todonotes}
\usepackage{tabu,makecell}
\begin{document}
\noindent \begin{tabu} to \textwidth {@{}lXX}
normal line & A & B \\
line with makecell & \makecell[tl]{A\\C} & \makecell[tl]{B\\D\\E}
\end{tabu}
\todo{To Do: ...}
\end{document}

当我排除带有 的行时\makecell,一切都正常。此外,当我排除软件包todotcolorbox(当然还有带有\todo命令的行,但保留带有 的行\makecell)时,一切都正常。

当我包含至少一个包tcolorbox或时,就会出现问题todonotes。然后我收到以下错误:

./test-tabu.tex:9: Improper \prevdepth.
\tabu@verticalspacing ...tempdimc \the \prevdepth 
                                              \@tempdima \dimexpr \ht 
\t...
l.9 \end{tabu}

还有来自的解决方案tabu:更新后出错没有帮助。

有谁知道如何解决这一问题?

这是日志文件的第一行:

这是 pdfTeX,版本 3.14159265-2.6-1.40.19(TeX Live 2018)(预加载格式=pdflatex)

答案1

新的 LaTeX3 软件包tabularray是过时软件包的替代品tabu

\documentclass[a4paper]{scrreprt}

\usepackage{tcolorbox}
\usepackage{todonotes}
\usepackage{tabularray}

\begin{document}

\noindent
\begin{tblr}{
  width = \textwidth,
  colspec = {@{}lXX},
}
  normal line        & A                   & B \\
  line with makecell & \SetCell{t,l}{A\\C} & \SetCell{t,l}{B\\D\\E} \\
\end{tblr}
\todo{To Do: ...}

\end{document}

在此处输入图片描述

答案2

以下是您可以使用 做的事情{NiceTabular}nicematrixtcolorbox和兼容todonotes)。

\documentclass[a4paper]{scrreprt}

\usepackage{tcolorbox}
\usepackage{todonotes}
\usepackage{nicematrix}

\begin{document}

\noindent
\begin{NiceTabular}{@{}lXX}
  normal line        & A                   & B \\
  line with makecell & \Block[t,l]{}{A\\C} & \Block[t,l]{}{B\\D\\E} \\
\end{NiceTabular}

\bigskip
\todo{To Do: ...}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容