为了更好地展示 TeX 及其同类软件的强大功能并击败竞争对手(例如 MS Word、Open Office),我需要涵盖所有基础。特别是,我知道 MS Word 提供了编写宏的可能性,可以自动执行一些重复性任务。
我对 Word 宏及其功能几乎一无所知。当然,我打算做功课并评估它们的潜力(或缺乏潜力 :p );但是,现在,我很想知道您的想法。
如果你熟悉 Word 宏和 TeX 及其相关工具,请告诉我您对前者用于排版文档时的比较优势和局限性的看法。
答案1
我不是这方面的专家,但这是我的看法:
MS Office 和其他 Microsoft 产品(Internet Explorer 等)都公开了用于脚本编写的 API。您可以从嵌入到文档中的 Office 宏(用 VBA - Visual Basic for Applications 编写)使用此 API;或者使用 JScript(MS 的 JavaScript 方言)或 VBScript 编写的单独脚本文件。这里是您可以执行的操作的一个示例。
本质上,Office 中所有点击即可完成的操作都可以自动化。每个按钮和功能都有其对应的 API 函数。与 (PDF)TeX 相比,一个巨大的优势是,你可以使用“合适的”编程语言,尽管 LuaTeX 也提供了一种编程语言。VBA 比宏编程更容易学习。另一方面,如果你在 CTAN 上查看,可能有人已经为 TeX 编写了你需要的东西。没有“CMSWAN” :)
我不同意 Steven Segletes 的观点;TeX 在放置数字时也有点异想天开。使用 Word 功能自动生成 TOC/LOF/LOT/编号的人被认为是 Office 奇才——也许就像我们被周围的人视为 TeX 极客一样。我确实知道 Office 奇才。我还认为,浏览 Word API 的文档和浏览 LaTeX 包及其手册以实现您想要的内容同样耗时,也同样有趣。
例子:我收到了数百个 Word 文档,它们组成了一本书。每个文件对应一个小节,文件名是该小节第一页的页码。章节有自己的编号文件夹。因此,如果你想查找某些内容,你必须打开章节文件夹,打开该章节的目录,查找标题的页码,然后打开该文件。所以我编写了一个脚本,打开每个文件,读取第一个段落(应该是标题),并编写一个新的目录,其中的标题与文件有超链接。
但是我见过 Excel 表只需单击按钮即可下载数据库、访问 Web API、创建 3D 图等,所有这些都是通过大量 VBA 完成的。
答案2
这是一个评论,而不是一个确切的答案,因为marczellm 的 回答总结得很好。
为了解决 Q客观的道路艰难:因为史蒂文·B·塞格莱特斯他在评论中正确提到为什么我应该熟悉现有的 Word 功能?当任何人熟悉特克斯:)
在我看来,“MS Word 和 TeX 中的宏”之间没有竞争或比较,因为它们不同物种完全是因为“TeX 本身是一种宏语言”,并且宏编程是其最大的优势之一,还有其固有的排版等等。别忘了在 Word 文档中打字不是排版如同 TeX 一样。
终于有一个可以
macros
比较的标准了Frank Mittelbach TUG 2013 文章“图 2:原文中值得关注的地方”可能是一个很好的起点。一些基础点可能是排版/自动化/跟踪更改/安全性/宏编程的简易性等...值得一读弗兰克·米特尔巴赫 “E-TeX:未来 TEX 扩展指南回顾”,TUGboat,第 34 卷(2013 年),第 1 期欣赏 TeX 作为排版系统的最新发展。
答案3
这与宏无关,但 word 的“跟踪更改”功能确实很棒。据我所知,tex 没有什么可比的,至少当您使用标准 tex 编辑器(如 vim、emacs、texshop 等)时 - 尽管可以使用 patch 和 git 等来制作与 word 的跟踪更改功能类似的功能。
当然,潜在的“问题”在于 tex 处理的“平面”文件没有自然的方式对版本之间所做的更改进行编码。