如何自动调整groff表格行高?修改字号后行高异常的解决方法
groff表格字号调整后行高适配问题解决方法
问题原因
你遇到的是groff中tbl表格的常见特性:全局字号设置.ps不会自动同步表格的行高。tbl默认行高基于默认字号,当你放大字号后,表格单元格的垂直空间没跟上,导致顶端对齐的内容(rb、l格式)位置偏高,而垂直居中的^格式内容(也就是222)显示正常。
解决行高适配的两种方法
方法1:全局设置行高(影响整个文档)
在设置字号后,用.vs命令调整垂直行高,通常设为字号的1.2~1.5倍,让行高和字号匹配,表格会自动继承这个行高:
.ps 14 .vs 17p # 14号字搭配17点行高,比例约1.21,可根据需求调整 .TS tab(;) doublebox allbox expand; rb rb l ^ l l. 111;222 333 444;555 .TE
方法2:仅调整表格行高(不影响文档其他内容)
在tbl的定义块中,用lh参数指定表格的行高,优先级高于全局.vs:
.ps 14 .TS tab(;) doublebox allbox expand; lh 17p; # 单独给表格设置行高 rb rb l ^ l l. 111;222 333 444;555 .TE
表格外修改字号的正确方式
你用.ps <size>设置字号的方式是对的,但要记住groff中字号和行高是分开控制的:
.ps <size>:仅改变字符的大小,单位默认是点(p),比如.ps 14就是14点字。.vs <size>:控制行与行之间的垂直间距(即行高),需要手动调整来匹配字号,避免出现内容拥挤或偏移的问题。
如果后续要恢复默认字号,只需再执行.ps(不带参数)或指定默认值(比如.ps 10),同时对应调整.vs即可。
内容的提问来源于stack exchange,提问作者RandomB
相关产品推荐
相关产品推荐

