我感觉我已经听说 LaTeX3 项目很长时间了。
为何要花这么长时间才能实现?是否存在重大技术难题,还是纯粹因为缺少开发人员而导致瓶颈?
答案1
威尔已经写了几个简短的答案,我会添加一些细节。
LaTeX2e 有几个问题。对最终用户来说,最明显的是内核相当不灵活。因此,为了得到你想要的东西,你几乎总是需要加载相当多的包,或者对内核进行一些低级的修改。这并不是很理想:我认为大多数人都更愿意不必记住“加载包 X 来做...”来编写他们编写的每个文档。因此,第一个挑战是编写一个内核,它可以执行许多常见任务(例如KOMA-Script
或中涵盖的任务memoir
),而无需附加组件。当前的目标是包括“大多数LaTeX 伴侣':那是很多材料。
第二个挑战是,LaTeX2e 编程是 TeX、有文档的 LaTeX、无文档的 LaTeX 和从软件包中挑选内容的混合体。这不是一件好事:编程需要的是文档化的系统。这至少部分地解释3是关于:它提供了很多较低级别的编程材料,尽管还有很多事情要做。
接下来的事情是“大挑战”(我们知道如何做上述两件事,只是有很多工作要做,而我在这里谈论的是我们必须想办法做的事情)。实际上,提供一种将设计和编码分开的方法并不容易。HTML 中的 CSS 模型并不能解决我们在排版系统中遇到的所有问题,因此正在开发一种新模型(如xtemplate
)。然后是一些问题,例如更好的输出例程,以允许诸如网格排版、更复杂的列和浮动放置等。所有这些都不容易。
你也不能忽视这样一个事实:LaTeX 是人们在业余时间编写的。有些时候,参与其中的人们在 LaTeX 之外做了很多事情。很明显,由于写作,一些动力丧失了LaTeX 伴侣、人们的工作、其他 LaTeX 软件包、ETC。
综合起来,这些问题意味着该项目非常具有挑战性。今天来看,威尔和我都在积极努力完成这项工作。我们都是最近才加入 LaTeX 项目的,并且正在付出必要的努力。在 CTAN 达到稳定状态时向其发布材料的目的之一是证明交付是可能的。例如,和都是可用的,expl3
并且xparse
确实带来了真正的好处。
最后一点。LaTeX2e 于 1994 年发布,从那时起就吸引了大量用户。即便如此,有些人仍然使用 LaTeX2.09 概念(例如\documentstyle
)。LaTeX3 将面临比 LaTeX2e 更大的“障碍”,只有当其优势足够大以吸引大量用户时,它才会成功。要做到这一点,我们需要解决 LaTeX2e 的许多问题。(例如,请参阅“没有什么可改进的”答案。)
总有更多的事情可以做,我是专注于交付(我不想像其他人一样加载大量支持包)。一个可以提供帮助的地方是编写文档。我们有一些内容,但我们知道需要改进。欢迎随时给项目写一封信提供帮助或发送请求请求至LaTeX3GitHub 存储库!
答案2
当 Don Knuth 编写 TeX 时,他只想创建“一种排版语言”,但为了满足用户的需求,宏语言不断发展壮大。他还说,如果在他编写 TeX 时有“一种通用的简单解释语言,并且这种语言在其他系统中很常见,我自然会立即抓住它”。
我认为未来将使用 TeX 或类似语言(主要)作为排版语言,并使用另一种语言(我选择 Python),并大量放弃 TeX 宏语言。毕竟,如今除了专家之外,没有人会手写 PostScript。
LaTeX 3 项目坚持使用 TeX 宏完成几乎所有工作,而长期的延迟(已超过 15 年)证明的不是任务的难度,而是方法上的问题。
另一个问题是,要想取得进展,就必须放弃大量遗留代码。但这是可以做到的,正如 ConTeXt 所证明的那样。
答案3
LaTeX3 开发人员不需要 LaTeX3 来谋生。这“只是”一种爱好,但激励他们的不是最终结果,而是将最好的技术融入到 latex3 中。LaTeX3 开发人员很聪明,但技术含量很高(在我看来,这并不是贬义!)因此及时交付并不是主要目标。
LaTeX2 已经“足够好了”。对于那些需要更多功能的人来说,ConTeXt 总是有用的。那么:谁需要 LaTeX3?(需要某样东西是快速完成任务的一大动力)
答案4
以下是 Frank Mittelbach 的一次有趣演讲: https://www.youtube.com/watch?v=zNci4lcb8Vo&feature=youtu.be
看起来 Latex 的开发将是一种进化而非革命。因此,虽然 Latex 确实在开发中,但改名为 Latex 3 可能不会发生。