我最早在 1990 年代初,当我还是大学生时,发现了 Unix 系统。我非常喜欢它,以至于我用 Linux 操作系统替换了家用电脑上的 MS-DOS 系统。
在 1990 年代初期到中期,Linux 没有文字处理器。文字处理器是其他桌面操作系统上的标准办公应用程序,可让您轻松编辑文本。我经常在 DOS 上使用文字处理器来撰写课堂论文。直到 1990 年代后期,我才找到 Linux 原生的文字处理器。在那之前,文字处理是我在我的第一台计算机上保持双启动的少数原因之一,这样我就可以偶尔启动回 DOS 来撰写论文。
然后我发现 Linux 提供了一种文字处理器。GNU troff,更广为人知的名称是 groff,是经典文本处理系统 troff 的现代实现,troff 是“typesetter roff”(排字机 roff)的缩写,它是 nroff 系统的改进版本。而 nroff 旨在成为原始 roff(roff 代表“run off”,意为“打印”文档)的新实现。
使用文本处理,您可以在纯文本编辑器中编辑文本,并通过宏或其他处理命令添加格式。然后,您通过 groff 等文本处理系统处理该文本文件,以生成适合打印机的格式化输出。另一个著名的文本处理系统是 LaTeX,但 groff 对于我的需求来说已经足够简单了。
经过一些练习,我发现我可以像在 Linux 上使用文字处理器一样轻松地用 groff 撰写课堂论文。虽然我现在不使用 groff 来编写文档,但我仍然记得使用它生成打印文档的宏和命令。如果您也一样,并且在多年前学会了如何使用 groff 写作,您可能会认出以下五个迹象,表明您是一位 groff 作者。
1. 您有自己喜欢的宏集
您在 groff 中格式化文档的方式是在纯文本中穿插宏。groff 中的宏是以行首的单个句点开头的简短命令。例如:如果您想在输出中插入几行,则 .sp 2
宏命令会添加两行空白行。groff 支持用于各种格式设置的其他基本宏。
为了使作者更轻松地格式化文档,groff 还提供了不同的宏集,即允许您以自己的方式格式化文档的宏集合。我学到的第一个宏集是 -me
宏集。实际上,宏集称为 e
宏集,当您使用 -me
选项处理文件时,您指定 e
宏集。
groff 还包括其他宏集。例如,-man
宏集曾经是格式化 Unix 系统上内置手册页面的标准宏集,而 -ms
宏集通常用于格式化某些其他技术文档。如果您学会了使用 groff 写作,您可能有一个自己喜欢的宏集。
2. 您希望专注于内容,而不是格式
使用 groff 写作的一个重要功能是,您可以专注于您的内容,而不必过多担心它的外观。这对于技术作家来说是一个方便的功能。groff 对于专业作家来说是一个很棒的“无干扰”环境。至少,只要您不介意以 groff 使用 -T
命令行选项支持的任何格式交付您的输出,包括 PDF、PostScript、HTML 和纯文本。您无法直接从 groff 生成 LibreOffice ODT 文件或 Word DOC 文件。
一旦您习惯了使用 groff 写作,宏就会开始消失。格式化宏成为背景的一部分,您完全专注于眼前的文本。我已经用 groff 写了足够多的文章,以至于我不再看到宏了。也许这就像编写编程代码一样,您的思维只是切换了档位,因此您像计算机一样思考,并将代码视为一组指令。对我来说,用 groff 写作就是这样;我只看到我的文本,而我的大脑会自动将宏解释为格式。
3. 您喜欢老派的感觉
当然,使用更典型的文字处理器(如 LibreOffice Writer 甚至 Google Docs 或 Microsoft Word)编写文档可能更容易。对于某些类型的文档,桌面文字处理器是合适的选择。但是,如果您想要“老派”的感觉,那么很难超越使用 groff 写作。
我承认,我大部分写作都是使用 LibreOffice Writer 完成的,它的表现非常出色。但是,当我想要体验“老派”感觉时,我会打开编辑器并使用 groff 编写我的文档。
4. 您喜欢可以在任何地方使用它
groff(及其同类)几乎是任何 Unix 系统上的标准软件包。使用 groff,宏不会改变。例如,-me
宏在不同的系统上应该是相同的。因此,一旦您学会在一个系统上使用宏,您就可以在下一个系统上使用它们。
而且由于 groff 文档只是纯文本,因此您可以使用任何您喜欢的编辑器来编辑您的 groff 文档。我喜欢使用 GNU Emacs 编辑我的 groff 文档,但您可以使用 GNOME Gedit、Vim 或您最喜欢的文本编辑器。大多数编辑器都包含某种“模式”,它会以不同于文本其余部分的颜色突出显示 groff 宏,以帮助您在处理文件之前发现错误。
5. 您使用 -me 编写了这篇文章
当我决定撰写这篇文章时,我认为最好的方法是直接使用 groff。我想演示 groff 在准备文档方面的灵活性。因此,即使您正在网站上阅读这篇文章,但它最初是使用 groff 编写的。
我希望这能让您对学习如何使用 groff 编写文档产生兴趣。如果您想在 -me
宏集中使用更高级的功能,请参阅 Eric Allman 的使用 -me 通过 groff 撰写论文,您应该可以在系统上 groff 的文档中找到 meintro.me。这是一份很棒的参考文档,解释了使用 -me
宏格式化论文的其他方法。
我还附上了我的文章原始草稿的副本,该草稿使用了 -me
宏。将文件另存为系统上的 five-signs-groff.me,并通过 groff 运行它以查看它。-T
选项设置输出类型,例如 -Tps
生成 PostScript 输出,或 -Thtml
创建 HTML 文件。例如
groff -me -Thtml five-signs-groff.me > five-signs-groff.html
1 条评论