关于切换到普通 LuaTeX 或 ConTeXt Mark IV 的顾虑

关于切换到普通 LuaTeX 或 ConTeXt Mark IV 的顾虑

我正在认真考虑使用 Plain LuaTeX 或 ConTeXt MkIV。我将解释我的期望和担忧,并添加几个新问题。在您将我标记为重复之前,我知道有几篇相关的帖子,但它们相对较旧,情况可能已经改变,所以我认为再次引发讨论是合理的。

  1. LuaTeX 最大的吸引力在于它完全控制了 TeX 语言的底层关键字。我期望 LuaTeX 能够实现纯 TeX,同时原生允许 UTF-8 字符和任意字体。是这样吗?我不介意语法学习的难度;我想知道的是它是否强大、设计良好、系统化。LuaTeX 是否不负众望?

  2. ConTeXt 的最新版本是 Mark IV 0.61。由于版本号小于 1,它稳定吗?语法会发生很大变化吗?软件包会持续存在多年吗?也就是说,现在存在的软件包十年后还会由 TeX Live 发布吗?

  3. LaTeX 的危险在于软件包经常发生冲突,旧的软件包可能会消失或被弃用。这让我感到厌倦和失望。ConTeXt 也是这样吗?ConTeXt 软件包是否由有组织的团队管理并经过充分测试,因此它们不太可能发生冲突?

  4. 如果我撰写期刊文章,出版商不太可能接受 ConTeXt 吗?纯 LuaTeX 呢?如果我提交 ConTeXt 或纯 LuaTeX,我的文章会因此被拒绝吗?

  5. 或者,为了增强兼容性,我是否最好将使用的所有函数包装起来,以便可以在 LaTeX 和 ConTeXt 中实现?我的意思是,例如,如果我想制作一个表格,那么我会给我自己的表格函数命名my_table。一方面,我重定向my_table(可能简化一些)到 LaTeX 包命令,并与其他人共享,以便他们可以使用进行编译pdflatex。另一方面,我my_table在 ConTeXt 中实现,将其调整为我希望的方式,并保留一个用编译的个人副本context。你认为这是一个好主意,还是太难了?

我对基本的 LaTeX 命令比较熟悉,但对 LuaTeX 和 ConTeXt 几乎一无所知。以上是我目前所理解的,欢迎指正。

另请参阅(不引用完整标题):

答案1

我希望 LuaTeX 能够实现纯 TeX,

这其实是倒退了,luatex 实现了或多或少与 Tex 兼容的引擎,但它没有实施纯 tex,兼容性足够,plain.tex可以用 luatex 代替 tex 进行处理。

有一些地方记录了行为上的差异(特别是在连字符方面),但大多数情况下,如果您坚持使用经典的纯 tex 输入,它将以与 pdftex 相同的方式工作。

ConTeXt 的最新版本是 Mark IV 0.61。由于版本号小于 1,它稳定吗?

我不会过多地关注版本号。确实,几乎没有哪个软件像 tex 本身一样僵化,事物会发生变化,但不会以无法管理的方式发生变化。

LaTeX 的危险在于软件包经常发生冲突,旧的软件包可能会消失或被弃用。这让我感到厌倦和失望。ConTeXt 也是如此吗?

我认为这实际上不是 latex 的问题。任何具有大量扩展包的系统都存在扩展不同的问题。LaTex 的用户比 Context 多得多。你可以坚持使用你不需要的核心 latex 版本要加载 ctan 上的每个贡献包,

如果我撰写期刊文章,出版商不太可能接受 ConTeXt 吗?纯 LuaTeX 呢?如果我提交 ConTeXt 或纯 LuaTeX,我的文章会因此被拒绝吗?

据我所知,基本上没有期刊会接受纯文本或上下文来源。

或者,为了增强兼容性,最好将我使用的所有函数包装起来,以便可以在 LaTeX 和 ConTeXt 中实现?

虽然理论上在某些简单情况下是可行的,但两个系统存在很大差异,这会使事情变得更加复杂,实际上会限制您使用两个系统中都可以轻松获得的部分功能。我真的不推荐这样做。

在低级编程层面上情况有所不同,expl3pgf工作仅高于 tex 原语级别并且在 latex 和上下文中工作,但对于任何更高级别的文档结构,情况会有很大差异。

答案2

我希望 LuaTeX 能够实现纯 TeX,同时原生允许使用 UTF-8 字符和任意字体。是这样吗?

无论使用哪种宏包,都可以在 xetex 和 luatex 中原生使用 utf-8 字符。LaTeX 和 ConTeXt(使用 xetex 或 luatex 引擎)都可以无缝处理此问题。也可以在 pdftex 引擎中使用 utf8 字符,但需要注意。LaTeX 和 ConTeXt 都支持此功能,但它可能会以意想不到的方式给您带来麻烦。

ConTeXt 的最新版本是 Mark IV 0.61。由于版本号小于 1,它稳定吗?

版本0.61context包装器脚本的版本。宏包不使用语义版本,而是根据发布日期对版本进行编号。

语法会发生很大变化吗?软件包会持续存在多年吗?也就是说,现在存在的软件包十年后还会由 TeX Live 发布吗?

在我使用 ConTeXt 的 15 年里,它的语法基本保持不变。大约 10 年前,ConTeXt 从默认的 pdftex 变为默认的 luatex,期间也发生了一些变化(尤其是字体处理方式)。话虽如此,这也取决于你所说的稳定性。ConTeXt(事实上甚至 LaTeX)并不像 Knuth TeX 那样稳定。但 LaTeX 团队和软件包编写者在确保向后兼容性方面比 ConTeXt 开发人员和软件包编写者付出了更多努力。部分原因是,并行安装多个上下文相对简单,对于需要稳定性的任务使用冻结版本,对于其他任务使用最新版本。

ConTeXt 包是否由有组织的团队管理并经过充分测试,以致于不太可能发生冲突?

不是。区别在于 ConTeXt 核心中实现的功能更多(由一个人 Hans Hagen 管理,并且没有冲突),因此使用包的需要更少。但据我所知(我已经发布了 4-5 个上下文包),用户贡献的 ConTeXt 包的管理方式与 LaTeX 包并无不同。

如果我撰写期刊文章,出版商不太可能接受 ConTeXt 吗?纯 LuaTeX 呢?如果我提交 ConTeXt 或纯 LuaTeX,我的文章会因此被拒绝吗?

对于几乎所有期刊来说,文章的接受都是基于其科学价值,而不是其编写方式。文章被接受后,作者需要提交文章源​​代码(tex 或 Word 文件)。我只知道一家期刊接受用 ConTeXt 编写的源文件(荷兰数学期刊)。大多数接受 TeX 源文件的出版商只接受 LaTeX。

仔细想想,这很有道理。对于期刊来说,所有文章都必须采用统一的样式排版。为不同的宏包维护多个样式文件没有任何好处。话虽如此,现在许多期刊实际上会将您的文章转换为某种 XML 格式(以便也可以生成在线 HTML 版本)。因此,有些期刊会接受 PDF 版本并重新排版文章(当然,这可能会延迟出版或产生额外费用)。

或者,为了增强兼容性,最好将我使用的所有函数包装起来,以便可以在 LaTeX 和 ConTeXt 中实现?

请注意,许多出版商明确禁止(或强烈反对)用户定义宏。对于表格,编写一个程序来为 LaTeX 和 ConTeXt 生成适当格式的输出相对容易;但对于一般文档标记来说,这变得困难(除非您将自己限制在有限的宏子集上)。

答案3

我将总结我最近的印象作为答案,以便让大家更容易理解。这只是一些随机的想法,希望读者能够包容。另外,这些只是一般的想法,我希望根据网站规则,这些想法不会偏离主题。

纯粹使用 LuaTeX

我认为这种可能性非常令人兴奋,因为既然luatex可以原生处理 UTF-8,我就可以尽可能地实现自己的函数。这使我的源代码更容易维护,并且将来可以自定义。自从 LuaTeX 发布 1.0 版以来,我一直期待着人们还不知道的新可能性。(参见他们的网站,尽管似乎不经常更新)

使用 ConTeXt MkIV

据说 ConTeXt 在语法方面没有太大变化。至少,我发现有人推荐ConTeXt,一次短途旅行甚至最近在论坛上也很少看到,但那已经是二十年前的事了。事实上,在网上找到的相关手册往往是十多年前写的。但考虑到他们的网站仍在更新,我想他们还是在积极维护的(他们每年都会见面,我想)。我想我会尝试一下。

担心包装冲突

在我看来,LaTeX 软件包数量众多,导致它们更容易发生冲突,这是合理的。如果我们坚持使用“核心软件包”,它们可能会经过更长时间的测试,而且一定有帖子指出哪些与哪些发生冲突(或者是否有官方指南来避免冲突?)。

但是我们如何知道哪个包是核心包?如何打印所有可用的包。但是当我发现有人使用某个软件包时,我只需谷歌一下,然后剪切并粘贴某人的代码,TeX Live 就会帮我下载该软件包。没有办法分辨哪些是 TeX Live 核心,哪些是用户提交并随后手动安装的。

为出版而写作

现在我还是学生,还没有发表过文章。但如果我必须发表文章,无论如何都要进行大量编辑。事实上,许多期刊都提供了自己的模板(例如:LaTeX 模板),因此修改是不可避免的。另一方面,如果我能很好地使用 LuaTeX 或 ConTeXt,那么手动将代码转换为可 pdflatex 编译的代码的工作量就微不足道了。毕竟,它们在基本需求方面具有相似的语法。(除非有一天我写一本书,但这可能证明 ConTeXt 这样更复杂的工具是合理的,我应该停止做白日梦了。)

我可能会准备两个模板,一个供我个人使用,根据我的喜好进行调整,用 LuaTeX 或 ConTeXt 编译;另一个是“原始”LaTeX,用 pdflatex 编译,尽可能简化。我可能会编写一个小解析器来简化将 展开\newcommand回其各自定义的工作。

我想这归结为什么能让我快乐。我经常一边研究我写的材料,一边看着屏幕,一边计算,而且我对细节一丝不苟(但不是每个人都这样)。如果一个更好的工具(LuaTeX、ConTeXt 等)能给我带来快乐,让我工作得更舒服,那么使用它所获得的好处可能大于将其转换回 pdfLaTeX 所浪费的时间,尤其是正如我所说,这种努力毕竟往往是不可避免的。

这样的想法算是最近我对 LuaTeX 最初感到沮丧时的一点安慰。对于这个完全陌生的东西,我相信我会有一些东西可以与各位读者分享,但只有等我有时间做出足够的努力来解决它之后。

相关内容