我有 groff 文件来生成以下格式的 pdf:
.TL
Article title
.AU
Author name
.AI
Publication title
.SH
.LP
First paragraph
.PP
More paragraphs
然后我运行groff -ms a.ms -T pdf > a.pdf
生成一个pdf。我喜欢 groff 如何使格式化变得简单,但我想知道是否可以包含 ASCII 图。
例如以下内容:
+-------------------------+ +-----------------+
| | | |
| Hello | | |
| +-------------+ |
| | | |
+-------------------------+ +-----------------+
如果作为普通段落输入则变为:
无论如何,我可以在 groff 中插入一个部分来保留空间,以便可以使用这些类型的图表吗?
看着手册用于groff_ms
我懂了:
.PS 和.PE 表示图形,由图片预处理器处理。您可以使用网络上提供的 AT&T pic 手册作为参考,或者使用 xfig 等图形程序来手动创建 pic 文件。
但这似乎只能接受pic 语言标记。
无论如何,我可以将 assci 绘图插入 groff 中吗?
答案1
Groff 支持CW
(恒定宽度)字体,您可以使用.ft CW
或选择它\f(CW
。
要关闭填充,请使用显示屏、.DS
-.DE
或一对.nf
- .fi
。
.TL
Two boxes, two ways
.LP
ASCII drawing
.DS C
.ft CW
+-------------------------+ +-----------------+
| | | |
| Hello | | |
| +-------------+ |
| | | |
+-------------------------+ +-----------------+
.ft
.DE
.LP
Pic drawing
.PS
box width 2 "\f(CWHello\fP"
line 1.5
box width 1.5
.PE
答案2
更好的方法是使 DS 块居中,如下所示
.DS B
.ft CW
+-------------+ +------------+
| | | |
| | | |
| | +-+----------+
+-------------+ |
+------------+ +-+ | +--------------+
| | | +---+ | |
| | | | | |
| | | | +--+-----------+
+------+-----+ +---+-----------+----------+ |
| | | |
+-----------+ +------+
| |
| +------------+
+------------------+ | |
| +--------------------------+ +--+----------+
+---+---------+ | |
| | | |
| | +-------------+
+-------------+
.ft
.DE