![在 tabu 中使用 makecell:与 tcolorbox 和 todonotes 包不兼容](https://linux22.com/image/391453/%E5%9C%A8%20tabu%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20makecell%EF%BC%9A%E4%B8%8E%20tcolorbox%20%E5%92%8C%20todonotes%20%E5%8C%85%E4%B8%8D%E5%85%BC%E5%AE%B9.png)
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
,一切都正常。此外,当我排除软件包todo
和tcolorbox
(当然还有带有\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}
(nicematrix
与tcolorbox
和兼容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 节点)。