TeX/LaTeX 的继任者是否在望?

TeX/LaTeX 很棒,我在很多方面使用它。它的一些优点是:

  • it uses text files, this way the input-files can be diffed and many tools exist to work with text
  • it is very flexible
  • 它有一个稳定的布局: 如果我在文档的开头修改了一些内容,它不会影响文档末尾的其他内容
  • 它有许多扩展来达到不同的目标(一个继任者可以不用扩展就开始,但是会有一个很好的扩展系统)
  • 您可以使用标准的构建控制工具来支持复杂的文档(感谢 dmckee)
  • 您可以封装解决方案,并将其复制粘贴到新的文档或将其发送给其他人学习(感谢 dmckee)

但另一方面,有些小事情并不那么好:

  • 一开始很难学
  • 图像的位置控制比较复杂
  • a few things are a little counter-intuitive
  • 有时你必须输入太多(开始{ itemize } ... 结束{ itemize })

因此,是否存在 LaTeX 的后继者/替代品,或者至少是开发中的替代品的一些热门候选者。一个真正的继任者/好的替代者应该保留优势,弥补缺点,或者至少弥补其中的一些缺点。

40619 次浏览

我认为 记事本应该是 LateX 的一个基于 xml 的开放替代品。

”DocBook 提供了一个使用 SGML 或 XML 编写结构化文档的系统。它特别适合于有关计算机硬件和软件的书籍和论文,尽管它并不局限于它们。

”简而言之,DocBook 是一种易于理解和广泛使用的 DTD。世界各地有数十家机构使用 DocBook 制作数百万页的各种印刷和在线格式的文档。”

来自 文档书籍常见问题

你不能用一些新的东西来保留“它有许多扩展来达到不同的目标”。根据定义,不是 TeX/LaTeX 的新东西将从不扩展开始。

作为 GNU TeXmacs项目的核心贡献者,这个项目的目标是成为“21世纪以外的 TeX”,我认为我对 LaTeX 的继承有一些很好的见解。

我没有看到任何有可能推翻 LaTeX 的东西。数学界有影响力的人只是太习惯于使用 LaTeX 来认真考虑学习任何同样灵活的工具所需的努力。

也许20年后,当所有在 LaTeX 还很酷的时候拿到博士学位的人都退休的时候,会有别的东西取代它。希望它会像 TeXmac 一样,但是没有不必要的复杂性。

你的四个缺点可以概括为“太难了”、“太难了”、“太难了”以及最后一个“太难了”。我认为解决方法就是学习如何正确使用这个系统。

任何为新手设计的系统都会在其他方面表现出缺陷,比如失去控制或失去灵活性。如果你想更容易放置图像,请尝试 MSWord。如果不努力学习这个程序,就没有办法避免简单性。TeX 支持定义宏,所以如果您愿意的话,可以将以{ itemize }开头的标记更改为更可口的类似 bi 的内容。一旦您充分了解了 LaTex 世界的角落,它就像普通的打字一样快。

我曾经在数学课上练习用 TeX 写笔记,因为用 sum _ { n = 1} ^ i 写比用 MS Word 找符号快。

除了图形难以定位的问题,您对 LaTeX 的其他批评更多地与其 UI 或缺乏 UI 有关。

If you want to use LaTeX to produce your documents but want an easier way to use it then you should really check out LyX. It's a GUI front-end to LaTeX and address several of your issues: it makes LaTeX easier to learn (in fact, you don't have to even know LaTeX to create a simple, mathless document), it's more intuitive, and it saves you typing. It also adds spell-checking, better graphics handling, navigation, and more.

因为 LyX 仅仅是 LaTeX 的前端,你仍然可以得到漂亮的文档。LyX 文档也是纯文本,所以版本控制工作得很好。事实上,LyX 支持内置的颠覆。

如果你还没有猜到,我衷心推荐莱克斯。我用它编写了我的整个 博士论文,发现它非常值得。

Not really a successor, but you may want to look at *roff (groff, troff, nroff). I don't know much about it but I remember its format being terse. It is the tool used for man pages. Since I have only ever heard of it in passing, I can't give you any more help with it.

例如:

        .pl 10.0i
.po 0
.ll 7.2i
.lt 7.2i
.nr LL 7.2i
.nr LT 7.2i
.ds RF FORMFEED[Page %]
.ds LH Internet Draft
.\"   --> Header/footers: Set short title, author(s), and dates:
.ds CH 2-nroff.template                  \" <Short title>
.ds LF Postel, Braden                    \" <Authors>
.ds RH October 25, 2006                  \" <Submission date>
.ds CF Expires April 2007                \" <Expiration date>
.hy 0
.ad l
.nf
.\" 5678901234567 check 72 column width 12345678901234567890123456789012
Internet Draft                                                 J. Postel
<draft-rfc-editor-nroff-template-00.txt>                      RFC Editor
Category: Informational                                          USC ISI
Expires April 2007                                      October 25, 2006


.ce
Nroff Template for Internet Drafts and RFCs
.ce
<draft-rfc-editor-nroff.template-00.txt>


.in 3              \"  Basic indent for text is 3 spaces
.ti 0              \"  "Temporary indent" for next line: 0 spaces
Status of this Memo


Distribution of this memo is unlimited.


By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.


Internet-Drafts are working documents of the Internet Engineering Task
Force (IETF), its areas, and its working groups. Note that other groups
may also distribute working documents as Internet-Drafts.


Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any

你有 LuaTeX

引文: “ LuaTeX 是 pdfTeX 的扩展版,使用 Lua 作为嵌入式脚本语言。LuaTeX 项目的主要目标是提供 TeX 的开放和可配置的变体,同时提供向下兼容性。”

Lua 非常简单快速,所以希望 LuaTeX 不再那么难了... ... 希望:)

你可能想查看维基百科的分类 排版编程语言免费排版软件。特别是 笨蛋听起来不错。

有一个 LaTeX3项目基本上一直在进行。从这个意义上说,它是当前 LaTeX2e 的继承者。

你忘记/忽略了 TeX 创建时的主要目标——“ TeX 是一个新的排版系统,旨在创建漂亮的书籍”。TeX 的目标是排版,它的主要关注点是像“把段落分成几行”(《软件——实践与经验》 ,第11卷,1119-1184页,1981年)、连字法、字距调整、漂亮的字体(Knuth 与 Hermann Zapf合作创造了类似 AMS Euler 的字体) ,以及对页面文本布局的精确控制。

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

人们可以很好地想象 LaTeX 的后续产品,提供 LaTeX 的文档管理功能的替代品,或许还能做得更好——比如 DocBook。(它是基于 XML 的,但是... ...)但是很难想象替代 TeX 的方法,TeX 是排版引擎本身。TeX 可能是 bug 数量最少的程序之一—— Knuth 为 TeX 中发现的每个 bug 提供327.68美元,并且已经这样做了很长时间。克努特对完美的追求是他的特色,他在这方面花了很多心思。它的每一个方面都是可配置的,代码是公共领域(除了限制,如果你做了修改,你必须用其他名称称呼它——这是因为 TeX 的目标是在世界上任何地方的任何机器上相同的 TeX 文件排版应该生成一个完全相同的文件永远到未来) ,和书已经写了关于 TeX: 程序本身,也关于所有在 TeX 中发现的错误。

TeX 的一些想法已经被纳入到 Adobe 的 Indesign 中(例如) ,那些排版引擎也有一些创新的想法,但是 TeX 仍然保持着优势。[注: Knuth 并没有打算让 TeX 永远成为标准,只是“在接下来的100年左右”,直到有更好的东西出现。据我们所知,有可能。]

有基于 TeX 的 LaTeX 替代品,如 ConTeXt 和 LuaTeX。可能有些任务他们更适合。

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

TeX 实际上是一种相当特殊用途的排版系统。它做它擅长的事情,但是对于更好的东西没有足够大的需求。“当他设计 TeX 时,Donald Knuth 不相信一个单一的排版系统能够满足每个人的需要”(维基百科)

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

对于你所面临的“问题”有很好的理由,所以如果你想提议采取不同的方式,请先研究这些理由。

其次,你自己表示 TeX 是伟大的,除了一些小的吹毛求疵。Knuth 明确知道它不适用于所有用户和所有人,但他还是发布了源代码并构建了一个扩展 API,这样任何人都可以根据自己的需要对其进行调整。

You have all the tools you need to make the changes you propose, and it will be far easier to update TeX than to start from scratch, or even adapt any other system. Truly, nothing comes close to TeX. That's not to say that it's the best, but merely to drive home the point that it would be a monumental effort to implement all the good things you mention and somehow overcome the bad (although by the time you get to the bad you may better understand why it exists).

无论如何,我希望你继续这样做,甚至作为一个倡导者,并让其他人对此感兴趣。看到 TeX 在其他领域的应用是很棒的,但是这确实需要修改和更新,以便易于使用,并且需要比数学方程式更好的其他技术实体的支持。

亚当

这并没有真正切入到 LaTeX 的主要缺点,但无论如何:)关于你的观点

  • "sometimes you have to type too much (begin{itemize} ... \end{itemize})"

这完全是设计好的。在简洁(更容易输入)和易于理解(输入时间更长)之间存在权衡。较长的名称也有较少的冲突,因为 TeX 和 LaTeX 不支持名称空间(不幸的是)。

Anyway, a good editor will obviate the complaint above. Set up key-bindings or tab-completions or whatever else takes your fancy and you never have to write

\begin{whatever}...\end{whatever}

再也不会了。

Have you had a look at 上下文? It's a set of macros for TeX that can be used instead of LaTeX.

我自己还没有使用它,但是在许多情况下,示例文档中的语法看起来比 LaTeX 简单。

我已经出版了五本 ConTeXt 排版的书籍,其中四本是博物馆目录,配有高质量的彩色插图。这绝对是生产准备。

简短的回答是“不”,因为 LaTeX 是现有的,而且相当擅长它的工作。它也是免费的,所以相对来说,几乎没有什么商业动机去尝试取代它。事实上,TeX 在技术出版方面非常擅长,以至于技术出版工具的商业市场被挤压在“极客”端的 TeX 和“粗俗”端的文字之间。

更长的回答是“还有其他选择”。LaTeX 和其他软件包受到 leaky abstraction问题的严重影响,通常需要技术干预才能得到您想要的结果。这使您能够理解它在幕后是如何工作的,这实际上是相当技术性的。因此,只有当您能够接触到具有这种技术水平的人时,您才能真正将其用于非随意的应用程序。写一篇报告或一本书是可以的。使用 LaTeX 构建单源技术文档工作流是一个完全不同的主张——您需要访问具有技术技能基础的人员。

LaTeX 的替代品

编辑: 参见 这个 Stackoverflow 帖子获得关于 Framemaker 和其他技术文档工具的更深入的概述。对于那些特别不想使用基于标记语言的系统的人来说,这是一个关于技术文档工具的问题的答案。

您可能还对 XeTeX感兴趣,XeTeX是 LaTeX 的现代版本,因为它支持 Unicode 和许多字体。你可以用它直接在一个文档中输入日语、阿拉伯语等。(这并没有解决您给出的缺点,但是它仍然与关于 LaTeX 的缺点和替代系统的讨论相关!)

XSL-FO 可能适合您的需要。虽然它没有 TeX 那么强大,但是它确实可以很好地使用 DocBook 这样的 XML 格式。一个流行的开源实现是 ApacheFOP: http://xmlgraphics.apache.org/fop/

如果你需要非常精细的排版控制,你最好使用 TeX 或者像 FrameMaker 或 InDesign * 这样的专有工具。

* 注意: InDesign 目前对 XML 的支持较弱

TeX 不是一个通用的排版系统: 它的核心能力是用大量的数学对长文本进行排版。由于它没有任何竞争对手,我可以想象出几个原因:

  • Donald Knuth 很聪明,他在公式间距方面做得很好。
  • 数学符号随着时间的变化而变化,比如几个世纪。有一套有限的功能是必要的,因此没有市场的新排版系统。
  • 网络效应。纸的唯一作用就是被阅读。大多数论文是在其他一些研究的基础上发展起来的,并且使用了它们的标记法。有了 TeX,你肯定你会得到相同的字体和相同的间距,你有技术能力从他们的论文中复制复杂的公式。
  • 在 TeX 中,定义新的宏很简单,通常很容易从定义中说出一个简单的宏是做什么的,而且有很多标准的宏库。任何基于 GUI 的系统都可能使这个过程不那么透明。

虽然您引用的缺点是真实存在的,但是在 TeX 之上构建一个像样的编辑器/GUI shell (其中有很多)要比使用不同的语言进行排版容易得多。如果你对数学感兴趣,并且希望你的文章能够保存几十年的话。对于一般的排版来说,你提到的程序可能是一个更好的选择。

Tools for particular jobs:

Latex2e 的优势在于它是一种标准的文档准备和表示语言,对文章和书籍的表示非常有用。然而,它对排版来说并不是很好。这并不是一件坏事: 过早的格式化是所有排版罪恶的根源: 大多数出版商只是在文本编辑过程的开始就抛弃了作者格式化。

上下文对于排版来说是非常好的; 他们不能与乳胶作为一种文档表示语言竞争,因为它不能真正解决任何在文档准备/编辑阶段应该解决的问题,所以任何人都没有理由改变成熟的乳胶。

与其通过 Latex3来修复 Latex2e 不重要的发布缺陷,我更愿意看到下面的工作流程:

  1. 文件准备: Latex2e
  2. 拷贝编辑: Latex2e
  3. 转换: 应用工具获取 Latex2e-> Context
  4. 排版: 上下文
  5. 校对: 使用工具对照 Context 内容检查 Latex2e 内容

Postscripts

  1. 上面的工作流程非常符合通常的工作流程,其中编写/编辑是在 Word 中完成的,排版是使用 Indesign 或 Quark Xpress 完成的。

I have only skimmed through it, but Emacs Muse http://mwolson.org/projects/EmacsMuse.html might be interesting (I'm interested if any one has more experienced with it. I like the idea of generating to several backends, latex, texinfo or stuff.)

也许你已经注意到了 TeX 的奇怪版本号。当 TeX 达到版本3时,Knuth 不希望 TeX 像大多数软件那样进一步发展成新版本。相反,他希望它收敛到一个最终和错误的 TeX。因此,版本号现在收敛到数学数字 π。版本3之后是版本3.1,然后是3.14,当前版本是3.1415926。

以类似的方式,Metafont 有一个版本,收敛到数学数字 e (目前为2.718281)。

Based on this, the answer to your question is that Knuth doesn't want TeX to evolve into TeX version 4.

TeX 和 LaTeX 设置了很高的门槛; 很难想象会有全新的东西出现并取代它们。

我有一本 Knuth 的 计算机现代字体(Computers And Typesetting系列的 E 册,我认为 完成的不像 TAOCP)。我认为很少有人能看到这本书,而且——请允许我这样说——它确实值得一看。你可以看到 Kunth 的一些时间去了哪里。以下是序言中的一段话:

Another piece of luck came my way in 1984年,当我得知 bronze patterns used to make the molds 在旧金山。 多年来,我一直与 间接和不精确的信息 这些字体刺激了 这项工作。首先我从 photographic blowups of letterpress 原始页面来自 < em > 的艺术 然后是理查德 Southall 已经准备好放大了 他找到的原始证据 英格兰,我终于找到了 80年前的模式 产生的金属类型。现在 owner of these patters, Mr. Othmar 彼得斯,好心地同意让我 borrow them while I was preparing the final draft of Computer Modern, and I learned much by measuring them with 卡钳。

在很多地方你不会得到那种对细节的关注,这就是为什么特克斯经久不衰的原因。

Org-mode 是一个 Emacs 扩展,可以生成 LaTeX 和 PDF 文件。Org-mode 语法类似于 Markdown。这只是 可读。在20KB 的文档中只有几行 LaTeX 代码。Org-mode 解决了你提到的三个问题——你可以从 LaTeX 获得所有令人敬畏的特性,并且摆脱它丑陋的语法。

梦想的工具不是 TEX

与 TEX 合作并不好。Tex 可能(我不是打印事务方面的专家)很适合提供一个分层的文档,从打印的细节和复杂性中分离出来。

The conceptual line is this :
一个数学家不是秘书,他主要关心的是他想展示的 什么,而不是 怎么做来展示它。 因此,在 Latex 之上还需要一个抽象层。

总目标:
Hence there is a need (a dream) for a tool that allows to be much closer to what we can do by hand and of course faster than by hand (in fact I once saw a written answer scanned in .pdf catching red-handed one of the main author of Latex in not using it!).

Dream Tool specifications : (rough one to get the idea)
学习曲线的初始时间约为一小时。
允许快速写一个文档(通过简单的类比) ,即使在疲劳的时候。
S3。可见的公式剪切和粘贴。
更正文件的速度比手工更快(2分钟而不是手工5分钟)。

今天最好的工具能力 :
S1也差不多。
思考别的事情是不可能的。
公式描述的剪切和粘贴(实现)。
手工破译需要20分钟而不是5分钟(每件事都很具体,你必须来回破译)。

另一个懒惰的例子是: 让一个在分类理论中写了10个图的乳胶文档的人以一种倾斜的方式画出所有的平方图,当然这不是一个快速的工作。

我只是偶然发现了 AsciiDoc,它看起来像一个简单的文本标记语言(á la markdown) ,但是它要强大得多。它与 DocBook 大致相当,因此它可以发出 html、 pdf 甚至 DocBook xml 以供进一步处理。

从技术上讲,狮身人面像并不是 LaTex 的替代品,而是一种可以让你的生活更轻松,并且(如果需要的话)可以为你生成 PDF (通过 LaTex)、 HTML 或纯文本输出的东西。

它主要面向代码文档,但由于使用了 ReStructuredText,人们发现使用 其他目的(包括 写书)更容易。

过了这么久,没人告诉我一件很重要的事。

LaTeX 文本是写在一个文本文件中,它可以用于 Literate programming,一种由 Don Knuth 提出的编写文档化程序的风格。这个想法是为了解释这个程序是如何以一种类似于数学课文的方式开发的。在数学文本中,一段段代码就像公式一样呈现出来。 这是一个伟大的想法,一段时间后,你可以阅读程序是如何构思的,你可以修改的部分,解释为什么这个决定是以同样的方式作出的。

另一个优点是 您可以生成 LaTeX 代码作为程序的输出,这样你可以漂亮地发布你的结果排版,或者使用像 gnuplot 这样的程序来生成图形,然后为图形生成 LaTeX 代码并将其插入到文本中,这很好,因为生成的文件与导出到某种图像格式的图形相比非常轻,如果你使用某种文字处理器粘贴它,就可以把它包含在 \includegraphics或者更糟糕的文件中。

LaTeX 并不是真的很难学,只要跟上你的步伐,从简单的文档开始使用你需要的东西。当你学习进步的时候,你需要学习新的特性和软件包。如果你试图通过学习所有的软件包来掌握 LaTeX,只是为了成为一个 LaTeX 专家,你是在浪费时间,有大量的软件包,但是你不需要学习所有的软件包。试着从像 “对 LaTeX 的简短介绍” lshort. pdf 或者 “特克斯温和介绍” gent.pdf 这样的指南开始。 如果你已经厌倦了编写长宏,学会为你使用频率更高的部分编写自己的宏,指南中有一节是关于这个的。

在哪里可以找到信息,在 ctan.org,tug.org,do not搜索,在 latex.com,域名代表橡胶材料。

有一个 TeX/LaTeX 目录,搜索它在 ctan.org 它是非常有用的,当你需要一个特殊的功能。你可以在这里找到它 http://texcatalogue.sarovar.org/index.html,但你可以搜索文本目录,如果这个链接变得过时。

结束我的评论,有一个很大的优势,LaTeX 和其他软件不经常改变版本,TeX/LaTeX 是一个非常完整的排版系统,你可以添加(和共享)更多的功能,如果你需要的东西不存在。 学习 LaTeX 是一个很好的时间投资,你只需要学习它一次,然后奉献给你的工作,而不是学习新的版本。

附言。 我忘了说,可以编写程序将 LaTeX 翻译成其他标记语言(以及文档化的字处理程序格式)和 反之亦然。事实上,有几个程序可以给出可以接受的结果,虽然据我所知,目前还没有一个程序可以翻译任何 LaTeX 代码,但是对于更常见的文本,你可以找到几个程序把它们翻译成 HTML,LibreOffice 可以导出一个文字处理器文档到 LaTeX,虽然它不是很有用,因为很少文字处理器用户使用标签标记段落作为标题,引号等,绝大多数标记文本改变字体,大小,对齐,等,这是翻译成 LaTeX。 但是当你和使用 word 或 LibreOffice 的人合作时,你可能需要这样做,你必须把它与你的 LaTeX 文本集成,只要让他们使用正确的标记或者将其导出为文本,然后手动插入所需的宏,毕竟你必须检查你的合作者的整个文本。

曾经需要把它翻译成 HTML 来在网上发布或制作便携式演示文稿,但是现在带宽允许快速传输 PDF 文件,而且像 beamer 这样的软件包允许人们编写非常漂亮的演示文稿。

TeX/LaTeX 的优势在于可以写在上面的包的大小以及共享它们的意愿。感谢 Knuth 的伟大想法,我们仍然在等待他的全套计算机编程艺术。