tikz(原为:todonotes)- tabularx - array - arydshln 之间的冲突

tikz(原为:todonotes)- tabularx - array - arydshln 之间的冲突

tikz、tabularx、array 和 arydshln 这四个包之间存在冲突。如果我不这样做,下面的 MWE 会编译

  • 加载 tikz(tikz.sty 2015/08/07 v3.0.1a(rcs-revision 1.151))
  • (加载 todonotes(todonotes.sty 2018/11/22)调用 tikz)
  • 使用 tabularx(使用包和环境,tabularx.sty 2016/02/03 v2.11b)
  • 加载数组(array.sty 2018/11/13 v2.4j)
  • 加载 arydshln (arydshln.sty 2018/09/26 v1.74)

正如@daleif 指出的那样,todonotes 调用的 tikz 是问题的一部分。

使用全部,我得到:

! 额外 },或忘记了 \endgroup。\@endpbox ...th \dp \@arstrutbox \fi \par \egroup \adl@colhtdp \box \adl@box... l.22 \end{tabularx}

\documentclass{article}

\usepackage{tikz}
% \usepackage{todonotes}
\usepackage{tabularx}
\usepackage{array}
\usepackage{arydshln}

\begin{document}
    \begin{tabular}{l l l }
        A & B & C
  \end{tabular}

  \begin{tabularx}{\textwidth}{l X X}
        A & B & C
  \end{tabularx}

\end{document}

我怎样才能使用这四个包而不发生冲突?

答案1

这是由于内部变化造成的,array我们可能会尝试进行调整,以便错误消失,但与此同时,如果你改变包裹顺序,它就会再次起作用

\documentclass{article}

\usepackage{arydshln}
\usepackage{todonotes}
\usepackage{tabularx}
\usepackage{array}


\begin{document}
    \begin{tabular}{l l l }
        A & B & C
  \end{tabular}

  \begin{tabularx}{\textwidth}{l X X}
        A & B & C
  \end{tabularx}

\end{document}

相关内容