有没有TeX/LaTeX的接班人在视野中?

124

TeX/LaTeX非常好用,在许多方面都可以使用。它的一些优点包括:

  • 它使用文本文件,因此可以对输入文件进行差异化比较,并且有许多工具可用于处理文本
  • 它非常灵活
  • 它具有稳定的布局:如果我在文档开头更改了某些内容,不会影响文档末尾的其他内容
  • 它有许多扩展以实现不同的目标(后续版本将不使用扩展,但将具有良好的扩展系统)
  • 可以使用标准构建控制工具来支持复杂的文档(感谢dmckee)
  • 可以封装解决方案并将其复制/粘贴到新文档中或发送给其他人以学习(感谢dmckee)

但是另一方面,一些小问题并不那么好:

  • 起初很难学习
  • 控制图像位置比较复杂
  • 有些东西有点反直觉
  • 有时需要输入过多的代码(begin{itemize} ... \end{itemize})

那么,是否存在TeX/LaTeX的替代品或至少正在开发中的热门替代品?一个真正的后继者/良好的替代品将保持优点并解决缺点,或至少解决其中一些。


10
把以下内容加入你的优点列表中:“您可以使用标准的构建控制工具来支持复杂的文档——并且确实可以提供一个单一文档的两种格式(例如研究生院坚持使用的格式,以及看起来更好且节约用纸的格式)。“ - dmckee --- ex-moderator kitten
5
当你不知道需要运行多少次(pdf)latex才能产生最终输出时,如何使用标准构建工具(make等)? - j_random_hacker
2
@j_r_h:看一下latexmk和rubber:http://www.pps.jussieu.fr/~beffara/soft/rubber/ - ShreevatsaR
5
TeX 使用文本文件的另一个优势是:你可以使用标准版本控制工具,如 CVS、SVN 等,从而允许对文档进行某种程度的协作工作;你可以将文档的部分内容外部化到单独的文件中,这样可以支持协作工作。 - chiccodoro
1
@dns 我对QuarkXPress一无所知,但Adobe InDesign没有人类可读的文本文件格式,对吧?在使用InDesign时,你如何协作,甚至版本控制你的文档(我不仅仅是指回到以前的版本,而是分支和合并文档)? - lmat - Reinstate Monica
显示剩余6条评论
26个回答

128

有一个LaTeX3项目已经进行了很长时间。从这个意义上说,它是当前LaTeX2e的继承者。

当创建TeX时,您忘记/忽略了其主要目标--“TeX是一种用于创建漂亮书籍的新排版系统”。TeX的目标是排版,其主要关注点是“将段落分成行”(Donald E. Knuth和Michael F. Plass,《软件-实践与经验》,第11卷,第1119-1184页,1981年),连字、字距、漂亮的字体(Knuth与合作创建了AMS Euler等字体),以及对页面上文本布局的精确控制。

LaTeX是在TeX之上构建的一组宏,引入了“文档管理”功能,例如自动编号方程式和章节、交叉引用等。它被称为“LaTeX:文档准备系统”。

可以很好地想象LaTeX的继任者,提供LaTeX的文档管理功能,或许做得更好--像DocBook一样。 (好吧,它是基于XML的,但是...)但很难想象会替换TeX本身的替代方案。TeX可能是最少bug程序之一--Knuth为在TeX中发现的每个错误提供327.68美元,并且已经这样做了很长时间。它经过了很多思考,具有Knuth追求完美的特点。它的每个方面都是可配置的,代码是公共领域(好吧,除了一个限制,即如果您进行修改,则必须用其他名称称呼它--这是因为TeX的目标是相同的TeX文件在世界上的任何机器上排版,应该永远产生完全相同的外观),并且已经出版了关于TeX的书籍:程序本身以及所有在TeX中发现的错误。
TeX的一些思想已被纳入Adobe的Indesign(例如),这些排版引擎也具有一些创新的想法,但TeX仍然优越。[注意:Knuth并不打算TeX永远成为标准,只是“在未来100年左右”直到更好的东西出现。我们所知道的是,可能会出现一个更好的东西。]
有基于TeX的替代方案,例如ConTeXt和LuaTeX。可能有一些任务更适合它们。

回答你的其他反对意见:虽然LaTeX可能引入了比必要更多的复杂性,但学习TeX部分是不可避免的——如果你想创建漂亮的书籍,有些事情你必须知道,无论如何。而控制图像位置并不难;TeX旨在让你控制页面上每个, 但为了行使这种控制,你可能需要超越简单的结构(尽管我从来没有这样做过...)如果你使用一个好的编辑器或宏,你就不必打太多的\begin{itemize} ... \end{itemize};那只是一个无聊的抱怨:P


12
非常好的回答。但是我有一个小小的异议:LuaTeX是TeX的替代品,而ConTeXt是LaTeX的替代品(可能会取代它)。 - Will Robertson
6
@Joey,他的技术书中一个错误的价格是$2.56,3:16书籍中的错误则是$3.16。对于TeX和METAFONT中的漏洞,最初的价格是$2.56,并且每年加倍,直到达到$327.68。 - Kevin
46
关于Latex最大的痛点在于没有一个标准编译器可以一次性工作并产生有意义的错误提示。也没有明确的单一操作方式,也没有好的用户友好的位置来查找“包(package)”,并了解它们的作用。所有与Latex相关的网站看起来和导航都像是1995年的样子。 - Andriy Drozdyuk
5
LuaTeX并不是LaTeX的替代品,它是一个扩展的TeX引擎(就像pdftex、XeTeX一样),可以在其上运行LaTeX(此时称为LuaLaTeX)和ConTeXt。(我认为它是当今ConTeXt的默认引擎。) - Paŭlo Ebermann
1
@ADJenks,Overleaf.com 已经在很大程度上解决了我之前提到的问题。LaTeX 真的需要一些公司找到一种盈利方式,并改善人们的生活质量。Overleaf 的团队就做到了这一点。 - Andriy Drozdyuk
显示剩余7条评论

56
简短的回答是“不需要”,因为LaTeX已经成为主流,而且它做得很好。而且它是免费的,所以没有多少商业激励来尝试替代它。实际上,在技术出版领域,TeX在“极客”端和Word在“普通用户”端之间形成了压缩。
更长的答案是:“有替代方案”。LaTeX和其他软件包严重受到泄漏抽象问题的影响,通常需要技术干预才能得到想要的结果。这使您必须了解其背后的工作方式,这实际上相当复杂。因此,只有具备那种技术水平的人才能真正将其用于非正式应用程序。撰写报告或书籍是可以的。使用LaTeX构建单一源技术文档工作流程是完全不同的提议 - 您需要访问具有技术技能基础的人员。 LaTeX的替代方案
  • 商业技术出版工具。只有一个留存:Framemaker。这是一款成熟但有些停滞的产品。然而,它确实拥有一个名为MIF的开放文档和片段交换格式、一个全面的API以及广泛的结构化文档支持。它在航空航天领域(例如)中被广泛使用,其中飞机参考文件达到数万页。此外,在这个领域还有几个落后者:Ventura PublisherArbortext(基于TeX派生的后端),以及Interleaf,现在已经被称为Quicksilver。
    Adobe claim声称正在实现InDesign中的技术出版功能,但我没有真正评估它在这方面的能力。

  • Lout。一种具有完全不同底层架构的标记语言,与TeX相比我从未使用过Lout,但我认为在幕后工作上要容易一些。

  • Troff/Groff.最初是为AT&T内部的技术文档设计的(实际上是UNIX研发工作的一个分支),今天仍然被广泛用于这个领域。相当长一段时间内,如果不是所有的O'Reilly书籍都是用它排版的。

  • DocBook。这是一种基于XML标记的结构化文档格式,往往通过外部引擎渲染。我从未使用过DocBook,因此无法真正评论其在实践中的使用情况。

  • Wordperfect。这是一款古老的文字处理系统,对于大型文档的文档编写比MS-Word要好得多。尽管被视为落后者,但它仍保留着几个利基市场,如律师事务所,并且(至少比Word好得多)适用于大型、复杂和交叉引用较多的文档。

  • Microsoft Word。由于在处理复杂文档时不稳定,不建议用于严肃的技术出版任务。然而,经常由于政治约束而成为唯一的选择。索引特别痛苦。

编辑:请参阅此Stackoverflow帖子,了解有关Framemaker和其他技术文档工具的更深入介绍。这是针对特别不想使用基于标记语言的系统的某人提出的有关技术文档工具的问题的答案。


7
WP和Word:更不用说使用它们创建的文件看起来很丑 - Aaron Digulla
Word 2007与Mathtype可以创建TeX格式,并将其导入。 - Rook
4
这并不能完全赦免Word的其他缺陷 - 特别是在大型技术文档中使用Word会有许多缺陷。 - ConcernedOfTunbridgeWells
Html和CSS越来越可以用于排版目的。例如,可以查看开源软件weasyprint,它可以将html + css呈现为pdf。 - Johannes
QuarkXPress和Adobe InDesign比TeX/LaTex要优秀得多。是时候向前迈进了。 - dns
Typst是一个新的工具:https://typst.app/ - Luke H

21

您有没有看过 ConTeXt?它是一组用于TeX的宏,可以代替LaTeX使用。

我自己没有使用过它,但在一些情况下示例文档中的语法看起来比LaTeX更简单。


2
我经常使用它,而且更喜欢它比LaTeX。非常好。 - janm

14

我已经出版了五本使用ConTeXt排版的书籍,其中四本是带有高质量彩色插图的博物馆目录。它绝对是可供生产使用的。


你有使用Context编写的书籍链接吗? - Nasser

11

TeX实际上是一个相当专用的排版系统。它善于所为,但没有足够大的需求来寻求更好的替代品。 "当他设计TeX时,Donald Knuth并不相信单一的排版系统能够适应每个人的需求" (维基百科)

大多数“新”的系统将构建GUI并扩展TeX,我认为这是正确的方法。

您面临的'问题'有非常好的理由,因此如果您想提出不同的做法,请先研究这些原因。

其次,您自己表明TeX很棒,除了一些小问题外。Knuth特意构建它,知道它不适合所有用途和所有人,但他发布了源代码并构建了扩展API,以便任何人都可以根据自己的需求进行调整。

您拥有您需要进行所提出更改的所有工具,更新TeX将比从头开始或甚至调整任何其他系统要容易得多。确实,没有什么能与TeX相媲美。这并不是说它是最好的,而仅仅是强调要实现您提到的所有优点并克服缺陷(尽管当您遇到缺陷时,您可能会更好地理解为什么存在)需要付出巨大的努力。

无论如何,我希望您追求这一目标,即使只是作为倡导者,并让其他人对此感兴趣。看到TeX在其他领域得到应用将是非常棒的,但这需要修改和更新以提高易用性并更好地支持数学方程之外的其他技术实体。

-Adam


"扩展 API"?嗯?我在我的 TeX 程序 的副本中没有看到任何关于这个的内容... - SamB
@NormanRamsey: 虽然我不会将whatsits称为API,但它们确实非常方便,可以通过引擎传递与扩展相关的信息... - SamB

10

TeX和LaTeX设定了很高的标准,很难想象有什么全新的东西可以取代它们。

我有一本Knuth的《计算机现代字体》(计算机与排版系列中的E书,我认为这本书已经完成了,不像TAOCP)。我认为并不多有人能看到这本书,但请容我自吹自擂——它确实值得一看。你可以看到Knuth花费了大量时间在其中。以下是前言中的一句话:

1984年,我得到了一个幸运的机会:原始的青铜模型用来制作Monotype 8A的模具在旧金山。多年以来,我一直在使用间接且不精确的关于刺激这项工作的字体信息。起初,我从计算机程序设计艺术的letterpress原版照片放大图开始工作;然后Richard Southall从英国的原始证明中准备了放大图。最后,我找到了真正的80年老字体生成的模型。这些模型的现任所有者Othmar Peters先生在我准备最终稿件Computer Modern时愉快地同意借给我,而我通过用卡尺测量它们学到了很多东西。

在很多地方,你无法得到这种对细节的关注,这就是为什么TeX持久存在的原因。


9

org-mode是Emacs扩展程序,可以生成LaTeX和PDF文件。org-mode语法与Markdown类似,但更易读。在20KB文档中只有几行LaTeX代码。org-mode解决了您提到的三个问题-您可以获得来自LaTeX的所有强大功能,并摆脱其丑陋的语法。


9
你无法保留“它有许多扩展以达到不同的目标”与新事物。按定义,不是TeX / LaTeX的新事物将从没有扩展开始。
作为 GNU TeXmacs项目的核心贡献者,该项目旨在成为“21世纪的TeX”,我认为对LaTeX的继承有一些很好的见解。
我不知道未来是否会有任何东西能够推翻LaTeX的地位。数学界有影响力的人们已经习惯使用LaTeX,因此不会认真考虑学习任何可以同样灵活的工具所需的努力。
也许在20年后,当所有在LaTeX时代获得博士学位的人都退休了,将会有其他东西取代它。希望它像TeXmacs一样,但没有不必要的复杂性。

4
如果明天的学生没有比TeX更好的工具,那么“也许在20年后”只是空话。如果我们等到20年后才开始研发TeX的继任者,那时学生们仍将使用TeX,又需要再等上20年。因此,我们需要尽早着手开发更好的工具。 - Adam Davis
1
没错,这是一个鸡和蛋的问题。 - ddaa
9
我今年34岁,使用LaTeX写了我的博士论文。每天当我不得不用Word时,我都感到非常高兴我能在我的论文中使用LaTeX... - Gilles
嘿,“有影响力的人”实际上更加民主,如果有其他好的数学排版系统,他们也不介意你使用它……只要有这样一个系统就好了:^) - ilya n.
LaTeX语言的某些方面(尤其是数学符号)在可预见的未来可能仍然存在。但是,文档将不再由LaTeX排版,而是由像ConTeXt或基于XML的格式化程序(这些程序可能使用类似LuaTeX的程序)这样的系统进行排版。 - Martin Schröder
有一个“其他好的数学排版系统”。它叫做TeXmacs。 - ddaa

9
你有 LuaTeX
引用:“LuaTeX是pdfTeX的扩展版本,使用Lua作为嵌入式脚本语言。LuaTeX项目的主要目标是提供一个开放和可配置的TeX变体,同时提供向下兼容性。”
Lua非常简单快速,因此希望LuaTeX不再那么难了... 希望如此 :)

在LaTeX世界中似乎有一些观念上的变化:XeTeX用于字体渲染和utf8,ConTeXt具有更加均匀的语言结构。如果LuaTeX将所有这些合并起来,并且更易于操作,那么更好的LaTeX就会有一个光明的未来! - Piotr Lesnicki
1
@Piotr:但是ConTeXt并不是LaTeX,也不打算成为LaTeX。我想你的意思是"在TeX世界中"。 - SamB

7

www.patoline.org 是TeX/LaTeX系统的一个很好的替代品。它已经被打包为Arch Linux、NixOS,并且可以在许多类Unix系统上从源代码编译。


Arch 包被移除了吗?我在官方仓库或 AUR 中找不到任何包含“patoline”名称的软件包 :/ - Ponkadoodle
是的,由于某些原因它被移除了。由于Patoline仍在开发中,我不会把它放回去。目前安装Patoline的最佳方法在GitHub上有说明(https://github.com/patoline/patoline)。 - Rodolphe Lepigre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接