![groff“me”宏,但使用无衬线字体作为标题等](https://linux22.com/image/149439/groff%E2%80%9Cme%E2%80%9D%E5%AE%8F%EF%BC%8C%E4%BD%86%E4%BD%BF%E7%94%A8%E6%97%A0%E8%A1%AC%E7%BA%BF%E5%AD%97%E4%BD%93%E4%BD%9C%E4%B8%BA%E6%A0%87%E9%A2%98%E7%AD%89.png)
我正在学习 troff 来排版文档。我发现这些me
宏开箱即用,非常漂亮,并且想避免使用mom
。me
默认所有内容都是衬线字体,这对于封面和标题等较大的文本来说很难看。如何将这些段落的字体更改为无衬线字体?
我尝试了.ft H
其他.ft
命令,但这些命令似乎都没有做任何事情(它们与ms
/一起使用mom
)。
答案1
宏对各种类型的文本me
使用groff
以下字体位置:
- 普通文本字体
- (没用过?)
- 标题字体和部分字体
当设置节标题等文本时,宏将切换为使用在这些位置加载的字体,因此.ft
宏将无效。您仍然可以使用例如
.sh 1 "\f(HBSection title"
将部分标题切换为粗体无衬线字体,但该部分的编号仍将使用衬线字体。
宏文件me
设置了许多参数,用于字体和点大小等,所以很多有趣的东西很容易通过更改一些数字寄存器和类似的东西来修改,但不幸的是这不是手册涵盖groff_me(7)
。它也很好地隐藏在e.tmac
宏文件中(因为该文件已删除了注释)。我必须阅读源代码分发e.tmac-u
中的原始(未剥离)文件groff
才能弄清楚:
.\" *** PARAMETRIC INITIALIZATIONS ***
.
.
.rr x
.nr $v \n(.v00+\n(.sp-1/\n(.sp \" vs as % of ps for .sz request
.nr $V \n($v \" same for displays & footnotes
.nr hm 4v \" header margin
.nr tm 7v \" top margin
.nr bm 6v \" bottom margin
.nr fm 3v \" footer margin
.nr tf 3 \" title font: (real) Times Bold
.nr tp 10 \" title point size
.hy 6
.nr bi 4m \" indent for blocks
.nr pi 5n \" indent for paragraphs
.nr pf 1 \" normal text font
.nr pp 10 \" normal text point size
.nr qi 4n \" indent for quotes
.nr qp -1 \" down one point
.nr ii 5n \" indent for .ip's and .np's
.nr $m 1 \" max number of columns
.nr $s 4n \" column separation
.nr sf 3 \" section font -- Times Bold
.nr sp 10 \" section title pointsize
.nr ss 12p \" section prespacing
.nr si 0 \" section indent
要将部分和标题字体更改为粗体无衬线字体,请使用
.fp 3 HB
将字体加载HB
到位置 3。然后宏和其他程序将拾取该字体.sh
。
例子:
.fp 3 HB
.bp
.sh 1 "Heading 1"
.lp
Text text.
.sh 2 "Heading 2"
.lp
Text text.
这会生成