.st &text_size
.sf &text_font
.dh 1 f=&bold_font p=12 e=no s=2,1 m=.5i i=0i
- .dh 2 f=&bold_font p=12 s=1,.5 m=.5i i=0i
- .dh 3 f=&bold_font p=12 s=1,0 m=.5i i=0i
+ .dh 2 f=&bold_font p=10 s=1,.5 m=.5i i=0i
+ .dh 3 f=&bold_font p=10 s=1,0 m=.5i i=0i
.dv comment .** ignore
.dv nf .nf
.dv fo .fo
+
+ .dv center_start .bc start
+ .dv center_end .bc end
.dv line_len .ll $1
.dv space .sp 1
+ .dv mult_space .sp $1
.dv half_space .sp .5
.dv beg_list .bl $1
.dv end_list .el
.dv indent .ll -0.5i .in +0.25i
.dv uindent .in -0.25i .ll +0.5i
+
+ .dv super .sm ^[ .sm ^&{ss_num}]
+ .dv note .dv ss_num ^[ ?%.0f ^&ss_num 1 + ] ^: .sm .tf superscript /2 ^&{ss_num} ^:
Mnemonic: troff.im
Abstract: This file provides macros allowing {X}fm source to generate
troff input from {X}fm source when the doc is passed through
- tfm, and to generate postscirpt output when passed through
- pfm. About the only real use of this is to be able to maintain
- manual pages in the more easily read {X}fm source format.
+ tfm. This allows the more easily read {X}fm source to be used
+ to generate man pages, and to be able to generate the man pages
+ in various output formats (txt, rst, etc.).
Author: E. Scott Daniels
Date: 27 January 2019
- Some roff information was gleanded from this page:
- http://cmd.inp.nsk.su/old/cmd2/manuals/unix/UNIX_Unleashed/ch08.htm
+ Some roff information was gleanded from these pages:
+ http://cmd.inp.nsk.su/old/cmd2/manuals/unix/UNIX_Unleashed/ch08.htm
+ https://www.gnu.org/software/groff/manual/html_node/Basics.html
.fi
-.if tfm
- .** assume that we're generating roff output when tfm is used. These macros
- .** convert {X}fm input into troff.
-
- .dv h1 .sp 1 ^&bold($1) .br ^&space
- .dv h2 .sp 1 ^&bold($1) .br ^&space
- .dv h3 .sp 1 ^&bold($1) .br ^&space
-
- .dv fig
- .dv set_font_cw .br ^^.ft CW
-
- .dv nf ^^.nf .br .nf
- .dv fo .fo ^^.fi .br
-
- .dv line_len ^^.ll $1
- .dv space .br ^^.sp 1 .br
- .dv half_space .br ^^.sp 1 .br
- .dv beg_list
- .dv end_list
- .dv beg_dlist .dv udi -$1 ^: ^^.in +$1 .br ^^.sp 1 .br
- .dv end_dlist .br ^^.in &udi .br
- .dv ditem ^^.ti ^&udi .br ^&space .br \fB$1\fR .br
- .dv item ^&space \(bu
- .** .dv di ^&ditem
- .dv di ^^.ti ^&udi .br ^&space .br \fB$1\fR .br
-
- .dv ex_start ^^.IP .br ^^.nf .br ^^.ft CW .br .nf
- .dv ex_end .fo on .br ^^.ft P .br ^^.fi .br ^&space
-
- .** fonts and font macros
- .dv ital \fI$1\fR
- .dv bold \fB$1\fR
- .dv cw \f(CW$1\fP
- .dv set_font_prop .br ^^.ft P
-
- .ju off
- .in 0
-
- .dv indent ^^.ll -0.5i &space ^^.in +0.25i
- .dv uindent ^^.in -0.25i &space ^^.ll +0.5i
-.ei
- .** for postscript output we just pass through to pfm commands
- .im generic_ps.im
-.fi
+.** assume that we're generating roff output when tfm is used. These macros
+.** convert {X}fm input into troff.
+
+.dv h1 .sp 1 ^&bold($1) .br ^&space
+.dv h2 .sp 1 ^&bold($1) .br ^&space
+.dv h3 .sp 1 ^&bold($1) .br ^&space
+
+.dv fig
+.dv set_font_cw .br ^^.ft CW
+
+.dv nf ^^.nf .br .nf
+.dv fo .fo ^^.fi .br
+
+.dv center .br ^^.ce 1 .br $1 .br
+.dv center_start .br ^^.ce 999
+.dv center_end .br ^.ce 0
+
+.dv line_len ^^.ll $1
+.dv space .br ^^.sp 1 .br
+.dv half_space .br ^^.sp 1 .br
+.dv mult_space .br ^^.sp $1 .br
+.dv beg_list
+.dv end_list
+.dv beg_dlist .dv udi -$1 ^: ^^.in +$1 .br ^^.sp 1 .br
+.dv end_dlist .br ^^.in &udi .br
+.dv ditem ^^.ti ^&udi .br ^&space .br \fB$1\fR .br
+.dv item ^&space \(bu
+.dv li ^&space \(bu
+.** .dv di ^&ditem
+.dv di ^^.ti ^&udi .br ^&space .br \fB$1\fR .br
+
+.dv ex_start ^^.IP .br ^^.nf .br ^^.ft CW .br .nf
+.dv ex_end .fo on .br ^^.ft P .br ^^.fi .br ^&space
+
+.** fonts and font macros
+.dv ital \fI$1\fR
+.dv bold \fB$1\fR
+.dv cw \f(CW$1\fP
+.dv set_font_prop .br ^^.ft P
+
+.ju off
+.in 0
+
+.dv indent ^^.ll -0.5i &space ^^.in +0.25i
+.dv uindent ^^.in -0.25i &space ^^.ll +0.5i
+