如今,文字处理器越来越好了,我想知道 LaTeX 是否是过去 Microsoft Word 存在缺陷的解决方案,并且它以编程方式为您提供了格式化选项。我刚刚开始使用 LaTeX,我发现它非常好。我不想使用或学习过时的技术(如果是的话)。
答案1
有三个方面。
第一个是卓越的排版LaTeX 能够提供这种功能。只要没有文字处理器能够接近 LaTeX 的段落分隔算法,LaTeX 在制作专业版面方面就有一席之地。
只需比较一下使用相同字体的 LaTeX 和 Microsoft Word(或任何其他文字处理器)编写的一页文本。使用 LaTeX 设置的文本看起来会更出色,因为它在页面上分布更均匀,更明智地使用单词分隔符,如果启用了微排版,效果会更明显。毫无疑问,LaTeX 在这方面提供了一些独特的功能。
LaTeX 无法用文字处理器代替,只能用 DTP(桌面出版)系统代替。现代 DTP 确实存在,但对大多数人来说价格过高。
第二个是操作模式:在 LaTeX 中,我程序我的文档。这与文字处理器或“现代”DTP 的使用有着根本的不同。但这并不一定是劣等的。
恰恰相反:我认为一旦你学会了基础知识,它就会变得更好,因为它总是会更强大、使用起来更快。事实上,现代文字处理器提供了复杂的脚本引擎(VBScript)和巨大的库,允许用户自动化某些过程。这些引擎提供的大部分功能都是免费的 TeX,并且极大地使用更简单。
第三个是底层技术的现代性与其他系统和编程语言相比,LaTeX 在这方面存在一些弱点。TeX 是 Unicode 之前的版本,而嫁接的 Unicode 支持仍然会造成麻烦。同样,TeX 缺乏现代编程语言的几乎所有功能。其中最重要的是缺乏良好的模块系统。这使得编写软件包变得非常痛苦。
从这些方面来看,LaTeX 确实已经过时了(尽管 XeTeX、LuaTeX 和 LaTeX3 有所改进)。但只要没有其他选择,TeX 仍然是唯一的选择。
答案2
像这样的问题当然是值得讨论的,我在这里所能提供的只是我个人的观点和经验,但恕我直言,TeX 绝对没有过时。
文字处理器确实越来越好了,随着它们的发展,它们将实现越来越多的 TeX 功能。事实上,特克斯麦克斯实现了 TeX 的大部分排版算法,您可以在其中创建某些类型的文档,而这些文档在 TeX 创建的文档中是无法或几乎无法识别的。
对我来说,问题在于所有这些工具都缺乏 TeX 的灵活性和可扩展性。如果我想创建一种新类型的文档,或者更改现有文档的外观,在 TeX 中相对容易做到。我可以创建新的文档类,或者编写一个简单或不那么简单的包,然后我可以反复使用它。一些文字处理器也是可扩展和可编程的,例如 TeXmacs 可以在 Scheme 中扩展,但你必须学习另一种语言才能做到这一点,而在 TeX 中,你使用与实际文档相同的语言来扩展,我相信这会让事情变得容易得多。只需将 TeX 的不同包数量与 TeXmacs 的插件数量或 LyX 的布局文件数量进行比较即可。我通常发现文字处理器在尝试做新事情时非常有限。
对我来说,TeX 的另一个巨大优势是我可以在编写代码时使用的同一个文本编辑器中完成所有编辑。
TeX 的许多方面可能可以做得更好,尤其是现在我们拥有更多的计算能力、内存和其他可用资源。TeX 最终可能会被另一个编程系统取代,该系统可能会使用更强大或更主流的编程语言。然而,任何这样的系统都将面临一场艰苦的战斗,因为它必须复制大量现有的 TeX 格式、模块、文档类和包,以及现有的 TeX 开发环境(我没有更多地使用 ConTeXt 的一个原因是它没有与 vim-latex 相当的版本。现在想象一下一种完全不同的语言。)
除此之外,TeX 中还有相当多的活跃开发,包括新的引擎(XeTeX、LuaTeX)、格式(ConTeXt、LaTeX3)和强大的软件包(例如 pgf/tikz 和相关工具)。
答案3
除了已经提到过的内容之外,将文档拆分为多个文件、引用外部源(例如图像)并将其存储在 VCS 中的可能性比二进制甚至基于 xml 的文件格式具有巨大的优势。
答案4
到目前为止,所有答案都是继续使用 TeX 的充分理由。一个优点不是尚未提及(并且无疑会被许多个人用户视为缺点)的事实是它是面向批处理的,并且可靠地在连续迭代中从相同的输入生成相同的输出。因此,它非常适合技术出版商(尤其是期刊)的生产使用。当向此类出版商提交稿件的作者遵循出版商的指南并使用提供的文档类别时,错误和误解就会最小化,并且最终的出版物会比使用其他工具更快、更准确地出现。
技术排版是一个很小众的市场,因此一直被称为“惩罚性复制”。没有人会通过开发商业工具来大赚一笔,因此这样做的动机很低。