缺点其实也讨论得很多了,比较严肃的比如
所以这里我们少谈些是什么,多想想为什么。
Word 是以易用性著称的「字处理」软件,目标用户是办公室的文档编写人员——用来写商业企划、会议纪录、公务信函、内部手册、年度报告、个人计划,等等。虽然确实有人拿它来排版书籍,不过细节控制力差,效果通常都不好。
TeX 是着重数学功能、追求高质量印刷输出「排版软件」,目标用户是高德纳本人,以及类似他那样的需要自己排版自己作品的学术研究者——用来出版《计算机程序设计艺术》、《具体数学》这样的书籍,后来也用于学术期刊和文集的出版。虽然有人拿它记日记、写便条,不过这种人通常被视为 geek。
在这样鲜明的目标差异下,功能上的差异也是不言而明的,它们都能轻松完成一些对方很难完成的工作。比如说你可以在 Word 里面拖着一个图片到处跑,调整它的位置、角度、环绕方式,而 TeX 要实现这样的功能是很复杂也很受限的;在 TeX 中你可以轻易控制每段话能不能在第一行后分页,能不能在最后一行分页,能不能在一个单词中间的连字符处分页,在 Word 中对这种要求几乎毫无办法。
而 LaTeX 呢?LaTeX 是定义于 TeX 之上的一种格式(format),Lamport 叫它「文档准备系统」。其目标是方便学术圈的人使用 TeX。LaTeX 隐藏了 TeX 的许多排版细节(如 penalty 被代之以 \linebreak \pagebreak 之类的命令),而提供了一套结构化的文档标记。所以 LaTeX 比原来的 TeX 更为易用,但削弱了控制力,以取得一种折衷。这使得在 LaTeX 诞生后获得了大量科研工作者的拥抱——毕竟不是每个人都那么在意排版细节的。LaTeX 相对于原来 TeX 的方便性以及其统一标准的编写格式,也使它很快成为数学、物理、计算机等需要数学排版的领域的最重要的文档准备工具。由于它就是为学术文档量身定制的,这么多年的发展也都在这个圈子里面,所以它相关的工具、发展走向也都最适合这个领域,它的局限也就在这个领域。学术文档不需要的功能,LaTeX 就很少发展,或者功能不强。
Word 是大公司微软主导,有明确的市场目标,充足的资金投入,也有竞争和市场压力。良好的易用性、漂亮而高效的图形界面、贴心而强大的集成化环境等等,都是 Word 孜孜以求的,他们也有能力做到这些。而 TeX/LaTeX 是由个人发起、学术机构赞助、开源社区维护的,所以很多功能都是,谁自己需要谁就去开发,做好用的 GUI 这么费时费力费钱的事,没多少人做。
现在,我们可以得知,LaTeX 的缺点来源有:
%%看不懂的别点感谢。
我来说说技术上的东西好了,LaTeX的缺点其实就是TeX的缺点,所以我说说底层的。
1. 不易于扩展的的eqtb结构
在TeX中,eqtb分别用来存储命令和primitive的数值。但是针对命令的那部分,其实算一个hash表。我们可以了解到有很多可扩展、动态的hash算法。但是这种算法要整合到TeX中的难度是相当大的。这也就限制了可定义的命令的数量,超过了就会溢出。目前YY TeX的eqtb中可定义命令的数量大小为32000。
2. 让人不省心的分页算法
这里指的并不是操作系统里面的分页算法。而是指TeX中将vertical lists封装成一个page的过程。在这个过程中,关注点有两个:段落的处理和插图的处理。插图的处理是个难点,在TUG的 Grant Criteria 上有明确的一些提示,我也看了相关的算法,但是距离实现还有相当长一段时间,我觉得在TeX Live 2016能看到就不错了。当然,不保证别的聪明人先我一步先做出来。
3. 更优的断行算法
所谓更优的断行算法,其实已经在pdfTeX里面实现了。但是,问题是,这些个扩展并没有跟汉字断行处理相联系,这个在LuaTeX里面虽然可以hook,但是做起来太麻烦了,损失的性能会更多。pdfTeX虽然提供了更好的断行算法,本身却损失了一些性能。这部分涉及到的microtype还有不少可能使用自动化的处理的地方。但是这个我暂缓,要做的事太多了。
4. 扩展的hyphenation算法
目前TeX中的hyphenation算法是基于pattern的,这也就意味着对某些语言是很难操作的,比如说德语这种复合词异常多的语言(虽然有SISISI扩展)。而使用了layout engine的引擎对于有特殊hyphenation操作的地方也不是支持的。这个地方我可以先放SISISI扩展的,对于使用layout engine,我暂时还没有想法。
5. 不统一的汉字处理机制
这个是老坑了,其实编码出来绝对不是问题,问题是如何让扩展更好控制。pTeX对于所有的汉字处理情况都会加入\kanjiskip,这就导致了在某些环境下的异常断行,比如抄录环境。汉字处理的两种机制:宏级别的(CCT/CJK/xeCJK/LuaTeX-ja),引擎级别的(NTT jTeX/pTeX/PUTeX/YY TeX)。还有很多不如人意的地方,还需要在讨论不少地方的。这方面不是问题,需要时间了。
6. 更好的PDF输出
拿pdfTeX/LuaTeX来说,PDF输出是有一组函数构成的,但是和pdfTeX耦合度太大,几乎无法改动,最简单的,给PDF添加一个加密功能都很难做到。而拿XeTeX来说,需要使用xdvipdfmx来处理xdv文件来得到PDF输出,问题通常出在eps处理上,字体的cmap上。不过xdvipdfmx的优点还是要比pdfTeX要好不少的,在性能上是比pdfTeX高一些的(据开发者)。拿YY TeX来说,第一个pdf后端是使用libharu(libhpdf)实现的,但是我现在做的第二个pdf后端是基于xdvipdfmx的(高度整合成库,最后会以单独的库出现)。我这个变动的原因:libharu的字体支持和字体管理功能太差劲了,xdvipdfmx对多方向排版的支持是最好的,而且还支持加密。
TeX 的引擎几乎无法支持实时编辑
Word 则刚好相反,为了实时砍了很多排版功能
这两个就是不同的东西,怎么比。
没有模板的时候,LaTeX 自由度过高,每一项任务都有若干种实现方式,初学者容易陷入折腾和手动调整。
你需要积累很多经验,才能找到最优雅的解决方案。
適合排版,但寫作效率太差。
1. latex語法不停打斷思緒。
2. 不適合多人寫作。
一篇學術論文動輒三四人合寫,寫之前要所有人先統合寫作環境。用latex,連“記錄改變”及“加入意見”這兩個多人寫作最基本需求,都很麻煩。
我的博士指導教授只用word寫paper,需要用latex發再port過去。
1、土:在i18n大行其道,UTF8已经成为标准的今天,非英文竟然需要各种扩展包。lstlisting至今无法直接使用中文。至于阿拉伯文之类的更不用想了吧。
2、乱:各种扩展包满天飞,各类需求都要漫天试包,在Google上搜索各种get around。学编程都没这么狼狈。可我特么只想写篇文章。
3、慢:在i7 6700k的配置上编译篇论文竟然还要等5秒。我不知道早期的使用者是怎么忍受的。
4、神棍太多:颠倒黑白,没有理智。动不动使用完美,艺术,令人窒息之类宗教性的词语,令人呕吐。当然这个不限于latex,只要有社区的地方就有这么一帮恶心的人。
每次都得费劲打 \mathrm{d}
(逃
只说一种可能出现的情况吧(反正至少在我身上是出现了):学了 (La)TeX 之后,对各种细节的要求一下子变得异常严格起来;但是折腾一番之后发现,有些东西 (La)TeX 实现得其实也不理想,有些甚至很难实现。于是,或许会后悔:要是没接触 (La)TeX 这玩意,还是马马虎虎地用着 Word 的话,我的世界会有多么美好……
拿金庸小说中华山派的剑宗和气宗来做比喻。LaTeX是气宗,word是剑宗。
正如君子剑岳老师所说,头十年是剑宗进步快,中间十年两者打个平手,再往后气宗就遥遥领先了·
至于令狐冲的无招胜有招,风清扬的神龙见首不见尾又是另一种境界了,普通人恐怕难以望其项背。
LaTeX是一种精神。
个人感觉使用latex最大的问题在于:各种技巧过于零碎,遇到一个排版问题没有一个可靠的搜索答案的路径来获取解决方案。即使有人把这个搜索路径用思维脑图画出来,估计也是复杂的要吓死人。
要是有模板,那最好了。
但是模板设计时也许没法考虑那么全面,无法预计使用者的一些罕见的或者未来的需求。
1.图文混排复杂,LaTex中插入图片不要太复杂,不能即视对于新手来讲还是比较捉急的。
2.缺乏与其他程序的互动,只能编辑,打个比方,Word中可以方便地对表格,Visio对象等进行简单等编辑,这是LaTex比不了的。
1. 双向文字的排版比较麻烦,特指阿拉伯字母和西文字母混排。
2. 多语言的字体指定往往遭到一些困难,或许可以通过很深入的研究再轻易实现,但还是不尽如人意。比如阿拉伯字母的字高大小,就需要反复测试才能和具体字号的西文对应。
3. 学习的时间成本极高,对于无计算机科学基础的人来说,需要耗费大量的时间去学习「环境变量」等本来有可能一辈子用不到的功能,尽管这些内容对于计算机科学专业的从事者是很基础的知识,而且需要掌握的知识点不止于此。
4. 细节控制力较弱,在非英文的语言中,断词遇见麻烦时,很难精确地解决这个问题。
5. 图表插入很繁琐,TikZ 等制图功能又很难用。但如果掌握其他的制图软件,比如 Adobe Illustrator, CorelDraw 等,再把图导出为 eps 或 pdf 插入进来,会减少不少麻烦。
一个只是为了 footnote 功能入门,结果去系统学了 LaTeX,再用 beamer,再学 emacs 和 lisp,最终放弃 Office 乃至 Windows,现在正在折腾怎么搭建一个 wiki 网站的纯文本半瓶水入门者的人生经验。坑大勿踩。
但是有一个意外的收获。自从用了 LaTeX,对于纯文本就变得非常讲究,以往完全用空格短句的习惯改成了句逗号,甚至还会用分号这种罕见的东西,这些都是不自觉的。所以对于标点符号的标准化使用有了近乎肌肉记忆的本能,也对他人的格式运用极为在意,频繁参与芝士回答问题的公共编辑,编辑内容往往是中英混排的题干中添加空格,或者精简一些格式。这点算是 LaTeX 的「缺点」带给我的美学收益。
ps: 现在又在重新使用偏 office 的东西了,用的是 Google docs 系列,毕竟日常还会有跨平台、合作编辑、打开 doc 文件等需求,让别人用 TeX 也不现实。macOS 上没有合适的替代品,基于网络的 Google 产品是世界的灯塔。
1. LaTeX的图文混排复杂
2. 表格处理功能没有GUI,很难用
3. 上手困难
4. 用户很少,主要限于学术界
就我目前使用的情况来看,最大的缺点是对于表格的处理可视性比较差,我们在编辑表格的时候需要从命令设置表格的样式,对于简单的规则的表格还比较简单,但是对于复杂的表格,用命令来做就有点头疼了。仅仅个人看法
缺点应该就是不善于写代码的人,用起来会有点累。例如,我用VIM这个编辑软件来写代码,比用其他编辑器快很多,我也可以用VIM写LATEX代码,当然没办法用VIM写Word。再有就是刚开始学Latex时,往往没有Word那么直观吧,我因此还做了个小视频帮大家快速入门,感兴趣的可以看看,在网易云课堂上,名字叫“30分钟Latex入门”( 30分钟Latex入门 - 网易云课堂 )。
难上手,换句话说,不够傻瓜,这个是最大的缺点。
打开word文档,就是没学过的也会慢慢摸索。
Latex,呵呵,慢慢学吧,给geek用的。
得靠生成PDF文件来预览,改个逗号都得刷新一下硬盘文件,长期以往,硬盘肯定受不住。
标签:LaTeX