如何在groff的ms宏中连续插入多个分页符?
在groff ms宏中插入连续多个分页符的方法
你遇到的问题是groff的.bp命令特性导致的:
- 连续的
.bp会被合并:第一个.bp触发分页后,光标处于新页页首,后续.bp因检测到当前已在页首而被忽略,所以只会生成一个新页面。 .bp +2的参数逻辑并非插入2个分页:这个语法指的是“从当前页开始,在第2页的位置触发分页”,也就是跳过1页,最终仅生成一个分页。
要插入多个连续空白页,需要在每个.bp后添加一段占位内容,让groff判定当前页有内容,这样下一个.bp才能触发新分页。最简单的方式是用.sp 0(插入0高度的空格):
.bp .sp 0 .bp .sp 0 .bp
上述代码会在原内容后插入两个空白页(三个.bp对应两次分页跳转)。
补充说明:man 7 groff_ms确实未详细提及.bp的连续使用逻辑,相关细节可参考man groff中的.bp命令说明——.bp的+n参数是指定分页的目标页码,而非分页次数;同时groff的页面处理逻辑会合并连续的分页请求。
内容的提问来源于stack exchange,提问作者Galladite
相关产品推荐
相关产品推荐

