宏包内容揭秘
1. 宏包概述
宏包是用于生成分页文档的结构。 nroff 和 troff 格式化程序负责实际收集和格式化文本行,但它们不定义最终呈现的文档结构。宏包则定义了文本行在页面上的放置方式,至少要设置陷阱并创建处理页面过渡的宏,通常还会定义物理页面的布局。
宏包不仅仅是实现各种功能的用户宏的集合,单个宏依赖于宏包的其他元素,这使得有时难以孤立地理解某个宏的作用。理解宏包的底层结构,而非仅仅关注其明显的功能,对于有效使用和开发宏包至关重要。
2. 新建还是扩展宏包
当考虑编写新的宏包时,首先要问自己是从头开始编写,还是在现有宏包的基础上进行扩展。
2.1 从头开始编写
从头开始编写宏包的好处是可以只编写自己需要的宏,避免学习现有宏包复杂的内部结构。对于有特定需求的情况,自定义宏包可以很小,只包含页面过渡宏和其他所需的宏。
然而,随着需求和理解的增长,宏包可能会变得比预期更大,并且如果开始时没有规划好,可能会导致宏包缺乏一致的结构。
如果决定从头开始创建整个宏包,建议采用模块化编程技术。将程序要执行的任务分解为最小的功能单元,然后用这些小单元构建更大的任务。这样不仅有助于调试和测试新宏,还能让编写宏变得更容易,因为可以创建一个执行重要功能的低级通用宏库。
2.2 在现有宏包基础上扩展
在现有宏包基础上扩展有许多优点:
- 现有宏包包含大量有用的宏,不仅可以直接使用,还可以在新宏中调用。
- 这些宏包经过了测试和验证,对于不太有经验的文本处理人员来说
超级会员免费看
订阅专栏 解锁全文
3493

被折叠的 条评论
为什么被折叠?



