UNIX文本处理中的页面过渡与宏扩展
1. 页面过渡的其他问题概述
在页面过渡的处理中,除了基本机制和页面大小选择的扩展,还有几个重要的方面需要考虑,包括脚注处理、多列处理、页面顶部重置以及孤行和寡行处理。
1.1 脚注处理
脚注的存在使得页面过渡变得更加复杂。由于脚注会缩短页面上正文可用的空间,因此在确定脚注引用是否能放在当前页面底部,还是会被推到下一页顶部之前,需要知道脚注的大小。这可能会导致一种经典的两难困境:只有当脚注本身不打印在页面底部时,脚注引用才会落在该位置。
1.1.1 简单脚注机制
为了实现脚注处理,我们需要完成以下几个步骤:
1. 确定无脚注时页面底部陷阱的位置 :例如,在 ms 中,其位置为 -\n (FMu 。
2. 初始化相关计数器和位置 :在新页面宏中,初始化一个计数器 fC ,用于记录页面上是否有脚注以及脚注的数量;初始化脚注打印的底部位置 Fb ,并将其初始值设置为标准页脚边距。同时,提供一个重置操作,以恢复因前一页脚注而改变的页面页脚陷阱位置。
" Add to .NP
.nr fC 0 1
" Initialize footnote counter
.nr Fb 0-\n (FMu
" Initialize footnote position
.ch FO -\n (FMu
" Reset norm
超级会员免费看
订阅专栏 解锁全文
1075

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



