一位技术作家最近从编写技术文档转向创作小说,并发现传统的 groff 排版系统——传统上用于在 Linux 终端中渲染手册页——可以被改编用于书籍制作。虽然现代工具因其视觉可访问性而常受青睐,但作者强调 groff 的主要优势在于其体积相对较小且速度极快。在一部拥有 13.5 年机龄的 PC 上,groff 可以在约 700 毫秒内渲染一份 50 页的文档,并在 1.6 秒内渲染一份 120 页的文档,为在排版过程中可能感觉迟缓的现代软件提供了一个高性能的替代方案。
在 groff 中制作书籍的机制涉及定义自定义宏包来处理基础格式。通过使用 `.de` 命令,作者为章节标题 (`.SH`)、带有悬挂缩进的普通段落 (`.PP`) 以及章内间距 (`.LP`) 创建了特定的宏。例如,`.PP` 宏处理了德国书籍中常见的悬挂缩进特定要求,通过断开当前行并请求下一输出行进行临时缩进来实现。更复杂的元素,如页脚和页码,通过“陷阱”(traps)和环境切换来管理。陷阱安装在特定的垂直位置(例如,在页面结束前 5v 处),以触发一个切换到专用页脚环境、打印页码并随后请求分页的宏。
尽管具备这些能力,使用 groff 进行书籍制作也涉及特定的权衡和技术障碍。作者指出,groff 缺乏 Markdown 那种“视觉上令人愉悦”的特性,这可能使原始源文件在创作过程中不够直观。此外,掌握该系统需要处理复杂的行为,例如将中性撇号 (`'`) 作为不可断行控制字符,以防止在插入特定文本时出现意外的换行。作者还承认了一些尚未解决的技术细节,例如页眉和页脚尺寸的完美对称,以及某些垂直位置请求的精确机制,这说明虽然 groff 功能强大,但若要达到专业效果,需要对其实际内部逻辑有深入的、手动的操作理解。
