这LaTeX3 项目网站解释:
不久前,我们决定放弃与 LaTeX2e 并行存在的单独 LaTeX3 格式的想法,而是决定逐步对 LaTeX 进行现代化改造,以使其在当今世界保持竞争力,同时保持对旧文档的兼容性方法。
我对长期计划的理解是,内核内部结构将随着时间的推移被重写expl3
,新功能(例如原生颜色和超链接支持)将逐渐添加。我不太清楚的是针对文档作者调整界面和默认设置的计划,以及计划进行向后不兼容更改的程度(或者是否已经决定)。例如:
- 据我所知,推荐的宏命名方案是
\snake_case
/,\snake_case_with_signature:Nn
用于编程层宏、\CamelCase
用于包/内核接口命令和\lowercase
用于文档级命令。由于所有 LaTeX2e 接口都采用这种\lowercase
形式,我假设这些宏将在新\CamelCase
约定中使用别名(例如\UsePackage
),而旧名称将保留为弃用的别名?或者还有其他计划? - 这
expl3
手册承认,许多 TeX 基元“如果它们没有被抢占为基元(例如\box
或\special
),那么它们的名称可能非常有用,可以用作文档标记标签”。既然所有基元都有expl3
别名,那么一旦内核被重写(以及使用的软件包),它们的原始名称原则上可以重新用于其他用途。这是否被视为最终功能,即用户/软件包作者应该期望能够使用这些名称,或者这些名称的使用是否将无限期地“正式”被阻止? - 我一直很烦恼的一件事是环境和宏不能有相同的名称,因为环境
foo
是由宏\foo
和实现的\endfoo
。我意识到当它以这种方式设计时,这被认为是一个功能,但根据我的经验,需要对等效块和内联功能进行不同的实现的情况比不需要的情况更常见,这导致了宏名称的必要性,如listinline
。可能还有其他类似的不幸的设计决策,尽管我不知道有任何一个。是否有计划更改此类接口,在这种情况下隐藏宏中的环境实现,如\env_foo_begin:
和\env_foo_end:
? - 这
xtemplate
手册提到“标准 LaTeX 2ε 类现在在视觉设计方面看起来有些过时”。是否有计划使此默认外观现代化,使其更接近 KOMA-Script 或memoir
提供的外观(甚至朝不同的方向发展)? - 在这个答案从 2013 年起,Frank Mittelbach 表示有意放弃模板概念(回归),转向类似 CSS低密度脂蛋白实施。这仍在路线图上吗?
- 请随意添加更多相关评论。
- 有没有专门的地方可以让我了解这些计划的现状?我读过 LaTeX3 项目发布的许多文档,但我发现很难了解哪些内容在哪里以及哪些内容已经过时,尤其是因为许多概述项目目标的文档(如ltx3信息) 似乎早于不将其打造为一种新的、独立的格式的决定。
答案1
“我假设这些宏将在新的 \CamelCase 约定中使用别名“
这里的约定实际上并没有改变。latex2e 一直
\RequirePackage
作为包级别命令,并\usepackage
作为其文档级别别名。然而,序言中的命令可以合理地被视为文档级别或包级别,并且很难避免混合。“现在所有原语都有 expl3 别名,原则上它们的原始名称可以重新用于其他事物“
原始 LaTeX3 格式未定义所有基元,optex 也是如此。我怀疑在 2e 中无法做到这一点。
“我一直很烦恼的一件事是,环境和宏不能有相同的名称,因为环境“
理论上可以创建
\begin
并\end
寻找不同的 csname 并使用它(如果已定义),但我认为没有具体的计划“是否有计划使此默认外观现代化“
可能无法改变外观,
article
但可能会出现使用这些功能编写的更新的课程(不仅仅是来自核心团队),这些课程可能具有不同的、更可定制的设计“这仍在路线图上吗?“
有计划要做某事......
“有没有一个专门的地方可以让我阅读这些计划的当前状态?“
几乎所有开发都是在 Github 上公开进行的。实际上,当前的工作是由标记项目推动的,该项目的描述如下https://www.latex-project.org/publications/indexbytopic/pdf/