UNIX文本处理:自动生成目录、索引及其他尾列表的方法
1. 引言
对于写作者而言,格式化工具能自动生成目录、索引等列表是非常实用的功能。手动创建这些列表不仅耗时,还容易出错。目前主要有两种方法来实现这一功能,且这两种方法适用于索引、目录、尾注等各类汇总列表。
2. 两种生成列表的方法
- 方法一:使用.da请求收集标题到转移区
- 这种方法由mm工具采用,在每次格式化运行结束时自动生成目录。它通过.da请求将标题收集到一个转移区,然后在一个名为“结束宏”的特殊宏中输出这些内容。
- 优点:简洁明了,完全在格式化工具内部完成。
- 缺点:仅适用于短文档。对于长文档,如书籍,通常是分章节格式化,若为了生成目录而一次性格式化整个文档并不理想。而且大文档会产生大的转移区,可能超出troff工具的处理能力。
- 方法二:使用.tm请求将信息写入标准错误输出
- 该方法将所需信息通过.tm请求写入标准错误输出,然后将输出重定向到文件,以便手动编辑或由其他程序自动处理。
- 优点:能与UNIX环境中的其他工具集成,输出可保存、编辑和以多种方式处理。
- 总结:虽然我们更倾向于第二种方法,但转移区仍有其用途,接下来我们将详细探讨这两种方法。