LaTeXTeXLaTeX 排版与设计

LaTeX 生态到底是怎样的?

问题描述

尝试用了一下 LaTeX,感觉真的非常糟糕。

首先,所有的教程都非常不清醒,下载 MacTeX 的时候官网上居然连 shell 命令是什么都不告诉我,找了很久才编出一个 HelloWorld。对中文支持也不好,试了好几种方案,也都是磨磨唧唧的,连个字体都安排不明白也配说自己是排版吗?

用 LaTeX 的人一个比一个能装,你一问问题他们就叫你好好查,殊不知别人已经查了好几个小时了,一抱怨他们就喜欢给你列出一系列冗长而不好用的解决方案,还声称是我不会弄。

包管理器更智障一样,安装一个包的时候它的所有依赖一个都不自动装,你是在逗我?你用 Node js 的时候如果装包全手动输入,不得把人气死了。

模版也是,能用的根本没几个,堂而皇之的放到 GitHub 上,下载下来根本跑不了。就算能用的也都丑的要命。

设计这么糟糕的东西为什么不赶紧被淘汰呢?

地铁风
不会撸程序的设计狮不是好科研狗

你说的这些基本都是对的,前两段基本上就是老派开源社区的老派作风。而 LaTeX 本身的问题最终能归结到这些原因:

  • LaTeX 和 TeX 这一套系统实在是太古老了,历史包袱非常非常多。核心语言还好,第三方包在长时间的升级中积累了大量的 breaking changes,导致很多稍微有点年头的文件不能编译,稍微有点年头的教程、文档和模板不再适用。
  • LaTeX 的核心用户群是科研圈。说句不好听的,编程、排版设计和软件工程这三样,大部分 LaTeX 用户(包括模板作者)一样也不懂,第三方宏包的维护者可能至多懂一样。懂两样或以上的当然有,但是非常非常少。

那么最终到了这个终极问题:

设计这么糟糕的东西为什么不赶紧被淘汰呢?

原因是基本没有替代品。排版能做到 TeX 这种质量的,都是昂贵的商业套件,出版社用的那种。几个可能的民用替代品:

  • HTML + CSS? 这东西不是排版系统,效果取决于客户端。而且客户端都很烂(就排版而言)。
  • 基于 Docbook + XSL-FO 的流程?醒醒,XSL-FO 已经淘汰了,而且 Apache 的实现不支持公式。
  • Markdown/AsciiDoc/org-mode? 见 HTML + CSS。而且这些简化 markup 语言没法排复杂文档。(AsciiDoc 是个例外,可以排复杂文档。)
  • Word?Word 也不是排版系统,效果呵呵。
  • ConTeXt?我上学的时候一直用这个,避免了 LaTeX 里的很多坑,但是用这个必须得懂排版,不然排出来会难看得令人发指⋯⋯所以不太可能在科研圈流行。 你要是有兴趣的话可以玩玩,当然这玩意也有自己的坑⋯⋯

所以结论就是,LaTeX 这玩意和科研圈里的很多软件一样,「有,就已经很好了。」

109 赞同 11 感谢 23 收藏 8 条已备份评论 发布于 2019-10-03 知乎原页 ↗

评论 8

Linkzero Tsang
InDesign 也算不上是昂贵吧
2 赞
地铁风回复 Linkzero Tsang作者
嗯,InDesigh倒是不贵。话说 InDesigh 怎么排公式?
0 赞
Linkzero Tsang回复 地铁风
实在要编辑的话只能用收费插件,但 InDesign 的主要用户群体也不太需要在软件内进行公式编辑就是了,ID 的使用逻辑更像是「容器」,内容(插图、公式、乃至是文本)理论上都应该尽量从外部链接进去,要排公式一般也是这样处理了。话说,InDesign 的脚本系统是个变种的 JS,理论上也可能将 MathJax 完整移植上去,然后生成 SVG 内嵌到文档中……
4 赞
为什么不重新设计一个排版语言呢?是因为生态吗
1 赞
Linkzero Tsang回复 不停的表
类似排版系统(「语言」)有很多啊,现在也不断有人出于各种目的造轮子。个人 / 开源项目很难做大,因为排版系统做起来难度高、受众面相对窄,有 TeX 生态珠玉在前,很难形成新的生态;而商业项目要么一般人不了解,要么就内嵌于具有较完备 GUI 的排版系统中(譬如 InDesign 的 IDML)——这样特地去写 ML 文件本身的意义就不大了
4 赞
地铁风回复 不停的表作者

语言本身不重要,关键是排版系统太难做了⋯⋯


别说排版系统了,就说基于 HTML + CSS 的 layout 引擎,有多少非商业项目是完整实现的?排版系统在这个基础上还要加上排版算法、字体处理、公式算法、PDF 前端等等等等,每一个都是大工程⋯⋯

6 赞

ConTeXt才是面向专业排版的系统。可惜懂的人太少,只能退而求其次,用LaTeX和LyX写文档。

1 赞