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 这玩意和科研圈里的很多软件一样,「有,就已经很好了。」
评论 8
语言本身不重要,关键是排版系统太难做了⋯⋯
别说排版系统了,就说基于 HTML + CSS 的 layout 引擎,有多少非商业项目是完整实现的?排版系统在这个基础上还要加上排版算法、字体处理、公式算法、PDF 前端等等等等,每一个都是大工程⋯⋯
对于像我这样的0购党,LaTex己经很好了⋯
ConTeXt才是面向专业排版的系统。可惜懂的人太少,只能退而求其次,用LaTeX和LyX写文档。