相关stackexchange 问题在这里。我的声誉不足以评论该问题。
是否有某种官方方式来提交非常老的 CTAN 软件包的补丁?LaTex 编程在以下方面是否与其他编程非常相似?工程协作(Git repo 上的 pull request、同行评审等)?或者说狂野西部?
我该如何礼貌地分叉一个未维护的软件包?
为什么这么多 CTAN 软件包似乎不活跃?LaTeX 是否不受大众欢迎?XeTeX 或 LuaTex 会拥有更大的受众吗?
答案1
如果某个软件包无人维护,CTAN 将允许您提供更新,甚至接管维护工作。但重要的是表明情况确实如此。CTAN 非常希望避免多人尝试更改同一个软件包。
值得注意的是,维护者可能决定不更改代码:稳定性可以胜过错误修复。这对于广泛使用的软件包尤其重要,因为破坏(IE更改现有文档可能会带来很多问题。
一般来说,LaTeX 软件包可能未变无需弃。很多东西多年来一直很稳定,因此不一定需要更新。因此,简单地说“最后更新于 199X”并不会使软件包出现问题。
答案2
明确回答许多问题:
是否有某种官方方式来提交真正古老的 CTAN 软件包的补丁?
查看 CTAN“我怎样才能获得某个软件包的作者身份?”(看完之后“我如何提交对包的修改?”:
当软件包不再维护或作者没有做出反应时,应与 CTAN 团队讨论进一步措施[电子邮件保护]。
在工程协作方面(Git repo 上的拉取请求、同行评审等),LaTex 编程是否与其他编程非常相似?还是说它非常狂野?
情况各不相同。(我假设您所说的“LaTeX 编程”是指 CTAN 上存在的 LaTeX 软件包。)TeX 的宏软件包自 20 世纪 70 年代末开始编写,因此您可以找到各种工程实践。总体而言,它倾向于单一作者模式,而不是团队作者模式。如今希望合作的程序员当然可能会使用最佳的现代合作方法。
我该如何礼貌地分叉一个未维护的软件包?
你不需要。TeX 世界非常重视稳定/可靠的输出(参见“可重复构建”,它现在才开始成为主流编程世界中的一件大事)。如果有人\usepackage{foo}
在他们的文档中写入,并且它在不同的计算机上工作不同(或者更糟的是,以前工作的东西停止工作),那就糟糕了。(最早和最强烈的版本是 Knuth 对 TeX 程序及其随附的分发内容的期望plain.tex
;在 LaTeX 世界中事情不那么严格,但这个想法仍然存在。)
因此,如果您认为您的更改足以证明两个新包的存在,并且您和现有包的维护者无法找到令人满意的方式来整合它们,那么您可以做的不是创建具有相同名称的分支,而是复制一份并赋予它一个新名称。
为什么这么多 CTAN 包裹看似处于非活动状态?
通常,这是因为软件包已经解决了作者想要解决的问题。另外,通常,这是因为作者已经转向其他事情(例如:有人在撰写博士论文时编写了 LaTeX 软件包,然后离开学术界,再也没有真正使用过 LaTeX)。我认为,如果您查看所有存在(或以前)一段时间的开源存储库(GitHub、Google Code、SourceForge 等),您会发现类似比例的非活跃项目:随着作者的离开,大多数代码都被放弃了。我认为 CTAN 上的比例不会有太大差异。
LaTeX 是否不受大众欢迎?XeTeX 或 LuaTex 会拥有更大的受众吗?
LaTeX 是一种格式,是一组 [定义的宏,允许] 语法用于您在文档中输入的标记。在极少数 TeX 用户中,它仍然是最受欢迎的。XeTeX 和 LuaTeX 是最常用的 TeX 引擎 (pdfTeX) 的替代品;它们不是 LaTeX 的替代品。(换句话说,即使您使用 XeTeX 或 LuaTeX,您也需要以一些格式,即使有了这些引擎,LaTeX 仍然是最受欢迎的选择。)LaTeX 的替代品包括 ConTeXt、纯 TeX、Markdown(具有适当的管道供 TeX 引擎处理)等。