latex3/latex2e 中与(未维护的)tabu 包不兼容的修复

latex3/latex2e 中与(未维护的)tabu 包不兼容的修复

在 github 问题中:Longtable 更改破坏了“X”列规范(https://github.com/latex3/latex2e/issues/111)给出了latex3/latex2e中必要的bug修复不兼容的问题。

在 stackoverflow 问题/答案中:

xcolor 打破 \[ 并对齐禁忌中的环境

longtabu 和颜色兼容性

Tabu 最近停止使用 color/xcolor 或 fancyvrb 了。

给出了一些解决方案。这些解决方案的“问题”在于,当将它们与当前(旧)LaTeX 版本一起使用时,它们会破坏这些版本。对于输出 LaTeX 代码的(开源)软件包的开发人员来说,这当然是一个问题。

问题是:是否有可能(测试/if 语句)以便可以包含解决方案代码并且它可以在新旧版本的 LaTeX 中工作,或者是否有可能在下一个正式版本(TexLive 2019)之前克隆和修复 tabu 包(如 Frank Mittelbach 在上述 github 问题中所建议的那样)?

注意:我发表了一条评论,其中提到了一些问题,但还没有得到答案,所以我决定提出一个问题(也是为了清楚起见)。

答案1

由于该tabu软件包似乎仍然被广泛使用,我将尝试总结当前的情况。

  • 自 2011 年以来,该软件包一直未由其原作者维护。自那时起发现的(或未发现的)每个错误均未修复。
  • 该软件包更改了许多内部 LaTeX 内核宏,这本身并不推荐,但由于内核非常静态。然而,在 2018 年 12 月,内核的一次更新导致该tabu软件包彻底崩溃。
  • 随后,存储库https://github.com/tabu-issues-for-future-maintainer/tabu创建。LaTeX3 项目团队尝试修复 2018 年更新后出现的一些主要问题,从而使其tabu再次可用。可以将错误添加到此存储库的问题跟踪器中,希望有人能接管软件包的维护。
  • 该包仍然无人维护!团队将不是积极维护它。
  • 该软件包可能在任何时候再次发生致命故障,并且不能保证能够快速修复,或者根本无法修复。

因此,建议采取的行动如下:

  • 如果您刚开始使用tabu,请不要这样做。
  • 如果您正在使用tabu将来需要开展的活跃项目,特别是如果即将有最后期限(比如您正在撰写论文),请立即停止使用该软件包。
  • 如果您是一位有能力的 LaTeX 开发人员,并且在可预见的未来有大量空闲时间,请考虑接手维护tabu

答案2

在 doxygen 项目中,tabu 包被使用,因为它比其他 tab... 包提供更好的表格。不幸的是,我们也遇到了这个问题。

在最近的一次讨论之后(https://github.com/doxygen/doxygen/issues/6769)a(建议的拉取请求,https://github.com/doxygen/doxygen/pull/7137,通过返回一些较旧的包,定义了一种解决方法,能够再次在 doxygen 中生成 pdf 文档。

使用旧版本的软件包array,这包含在最新版本的软件包中array,并在序言的开头使用以下代码:

\usepackage{ifthen}
\ifx\requestedLaTeXdate\undefined
\usepackage{array}
\else
\usepackage{array}[=2016-10-06]
\fi

从 2018 年版本获取tabu(即版本 v2.8,因此没有来自 https://github.com/tabu-issues-for-future-maintainer/tabu) 和longtablestyle ( .sty) 文件并将它们重命名为本地例如tabu_doxygen.stylongtable_doxygen.sty(我在这里使用了 doxygen 名称,但该名称当然是免费的)。

在这些文件中,将 设置\ProvidesPackage为这个新名称并调整解释文本。此外,在 中longtable_doxygen.sty可能存在大约 430 a 行\color@begingroup和大约 460 a 行,\color@endgroup删除这些行(当然,您也可以从 doxyygen 提出的拉取请求中获取文件(https://github.com/doxygen/doxygen/pull/7137)。

\usepackage{tabu}在您拥有/usepackage{longtable}替换此内容的地方:

\usepackage{tabu_doxygen}

\usepackage{longtable_doxygen}

对于 doxygen 来说这看起来是可行的,但是仍然非常感谢维护的禁忌包,因此我也重复她:

  • 如果您是一位有能力的 LaTeX 开发人员,并且在可预见的未来有大量空闲时间,请考虑接管 tabu 的维护。

感谢@DavidCarlisle 和@FrankMittelbach 对 doxygen 问题提供的宝贵帮助。

相关内容