freebsd-nq/contrib/groff/tmac/tmac.an
2000-12-05 18:49:44 +00:00

430 lines
8.1 KiB
Plaintext

.\" Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
.\" Written by James Clark (jjc@jclark.com)
.\"
.\" This file is part of groff.
.\"
.\" groff is free software; you can redistribute it and/or modify it under
.\" the terms of the GNU General Public License as published by the Free
.\" Software Foundation; either version 2, or (at your option) any later
.\" version.
.\"
.\" groff is distributed in the hope that it will be useful, but WITHOUT ANY
.\" WARRANTY; without even the implied warranty of MERCHANTABILITY or
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
.\" for more details.
.\"
.\" You should have received a copy of the GNU General Public License along
.\" with groff; see the file COPYING. If not, write to the Free Software
.\" Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\"
.\" -rC1 => number pages continuously, rather than start each at 1
.\" -rD1 => double-sided printing, ie different odd and even page footers
.\" -rPnnn => number first page nnn
.\" -rSxx => use size `xx'pt (either 10, 11, or 12) for document rather
.\" than the default size of 10pt
.\" -rXnnn => number pages after nnn as nnna, nnnb, nnnc, ...
.\"
.\" The file man.local is loaded at the end. Put local additions there.
.\" If you need to add things to TH, use `.am TH'.
.\"
.
.if !\n(.g .ab These man macros work only with groff.
.
.nr _C \n(.C
.cp 0
.
.if !rD .nr D 0
.if !rC .nr C 0
.if !rS .nr S 10
.if rP .pn 0\nP
.
.de set-an-margin
. nr an-margin \\n[IN]
..
.
.\" .TH title section extra1 extra2 extra3
.de TH
. cp 0
.
. de an-init \" We have to do it like this to get multiple man pages right.
. ds an-title "\\$1
. ds an-section "\\$2
. ds an-extra1 "\\$3
. ie \\n[.$]>3 .ds an-extra2 "\\$4
. el .ds an-extra2 \"Sun Release 4.0
. ie \\n[.$]>4 .ds an-extra3 "\\$5
. el .ds an-extra3 \"System Programmer's Manual
. ds an-init
\\..
.
. DT
.
.\" use sizes similar to LaTeX
. ie (\\nS == 11) \{\
. nr PS 10.95z
. nr PS-SS 10.95z
. nr PS-SH 12z
. nr VS 13.6p
. \}
. el \{\
. ie (\\nS == 12) \{\
. nr PS 12z
. nr PS-SS 12z
. nr PS-SH 14.4z
. nr VS 14.5p
. \}
. el \{\
. nr PS 10z \" default point size
. nr PS-SS 10z
. nr PS-SH 10.95z
. nr VS 12p
. \}
. \}
.
. ps \\n[PS]u
. vs \\n[VS]u
.
. ie '\*(.T'html' .nr IN 1.2i
. el .nr IN 7.2n
. nr LL 6.5i
. PD
. nr SN 3n \" the indentation of sub-sub-headings relative to sub-headings
. nr an-level 1
. set-an-margin
. nr an-prevailing-indent \\n[IN]
. nr an-tag-sep 1n
.
. nr an-no-space-flag 0
. nr an-break-flag 0
. nr an-div? 0
.
. wh 0 an-header
. wh -1i an-footer
. wh -.5i an-p-footer
.
. if (\\n[nl] > 0) \{\
. ie \\nC .bp (\\n% + 1)
. el .bp 1
. \}
..
.
.de DT
. ta T .5i \" This sets tabs every .5 inches
..
.
.de PD
. ie \\n[.$] .nr PD (v;\\$1)
. el .nr PD (.4v >? \n[.V])
..
.
.de an-header
. an-init
. ev 1
. ps \\n[PS]u
. vs \\n[VS]u
. ie '\*(.T'html' \
. tl ''''
. el \{\
. sp .5i
. tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])'
. sp |1i
. \}
. ev
. ns
..
.
.de an-footer
' bp
..
.
.af an-page-letter a
.
.de an-p-footer
. ev 1
. ps \\n[PS]u
. vs \\n[VS]u
. ie '\*(.T'html' \{\
. ds an-page-string "
. ds an-extra1 "
. ds an-extra2 "
. \}
. el \
. ds an-page-string \\n%
. if rX \{\
. if (\\n% > \\nX) \{\
. nr an-page-letter (\\n% - \\nX)
. ds an-page-string \\nX\\n[an-page-letter]
. \}
. \}
. ie '\*(.T'html' \
. tl ''''
. el \{\
. ie \\nD \{\
. if o .tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
. if e .tl '\\*[an-page-string]'\\*[an-extra1]'\\*[an-extra2]'
. \}
. el \
. tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
. \}
. ev
..
.
.de SH
. sp \\n[PD]u
. nr an-level 1
. set-an-margin
. nr an-prevailing-indent \\n[IN]
. fi
. in \\n[an-margin]u
. ti 0
. it 1 an-trap
. nr an-no-space-flag 1
. nr an-break-flag 1
. ps \\n[PS-SH]u
. ft B
. ne (2v + 1u)
. if \\n[.$] \&\\$*
..
.
.de SS
. sp \\n[PD]u
. nr an-level 1
. set-an-margin
. nr an-prevailing-indent \\n[IN]
. fi
. in \\n[IN]u
. ti \\n[SN]u
. it 1 an-trap
. nr an-no-space-flag 1
. nr an-break-flag 1
. ps \\n[PS-SS]u
. ft B
. ne (2v + 1u)
. if \\n[.$] \&\\$*
..
.
.de B
. it 1 an-trap
. ft B
. if \\n[.$] \&\\$*
..
.
.de I
. it 1 an-trap
. ft I
. if \\n[.$] \&\\$*
..
.
.de SM
. it 1 an-trap
. ps -1
. if \\n[.$] \&\\$*
..
.
.de SB
. it 1 an-trap
. ps -1
. ft B
. if \\n[.$] \&\\$*
..
.
.de TP
. sp \\n[PD]u
. if \\n[.$] .nr an-prevailing-indent (n;\\$1)
. it 1 an-trap
. if !\\n[an-div?] .di an-div
. in 0
. nr an-div? 1
..
.
.de an-trap
. ft R
. ps \\n[PS]u
. vs \\n[VS]u
. if \\n[an-break-flag] \{\
. br
. nr an-break-flag 0
. \}
. if \\n[an-no-space-flag] \{\
. ns
. nr an-no-space-flag 0
. \}
. if \\n[an-div?] .an-do-tag
..
.
.de an-do-tag
. nr an-div? 0
. br
. di
. ie (\\n[dl] + \\n[an-tag-sep] > \\n[an-prevailing-indent]) \{\
. in \\n[an-margin]u
. ne (2v + 1u)
. an-div
. br
. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. \}
. el \{\
. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. ti -\\n[an-prevailing-indent]u
. chop an-div
. ne (1v + 1u)
\\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c
. \}
..
.
.de LP
. br
. sp \\n[PD]u
. ps \\n[PS]u
. vs \\n[VS]u
. ft R
. in \\n[an-margin]u
. nr an-prevailing-indent \\n[IN]
..
.
.als PP LP
.als P LP
.
.de IP
. ie !\\n[.$] \{\
. ps \\n[PS]u
. vs \\n[VS]u
. ft R
. sp \\n[PD]u
. ne (1v + 1u)
. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. \}
. el \{\
. ie (\\n[.$] - 1) .TP "\\$2"
. el .TP
\&\\$1
. \}
..
.
.de HP
. ps \\n[PS]u
. vs \\n[VS]u
. ft R
. sp \\n[PD]u
. ne (1v + 1u)
. if \\n[.$] .nr an-prevailing-indent (n;\\$1)
. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. ti \\n[an-margin]u
..
.
.ds an-empty \" this is referenced to avoid looping on eg .RB ( \\ )
.
.de RI
. if \\n[.$] \{\
. ds an-result \&\\$1
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \,\fI\\$1\fR\/\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \,\fI\\$1\fR
\\*[an-result]
. \}
..
.
.de IR
. if \\n[.$] \{\
. ds an-result \&\fI\\$1\fR
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \/\\$1\fI\,\\$2\fR
. shift 2
. \}
. if \\n[.$] .as an-result \/\\$1
\\*[an-result]
. \}
..
.
.de IB
. if \\n[.$] \{\
. ds an-result \&\fI\\$1
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \/\fB\\$1\fI\,\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \/\fB\\$1
\\*[an-result]
. ft R
. \}
..
.
.de BI
. if \\n[.$] \{\
. ds an-result \&\fB\\$1
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \,\fI\\$1\fB\/\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \,\fI\\$1
\\*[an-result]
. ft R
. \}
..
.
.de RB
. ds an-result \&
. while (\\n[.$] >= 2) \{\
. as an-result \fR\\$1\fB\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \fR\\$1
\\*[an-result]
. ft R
..
.
.de BR
. ds an-result \&
. while (\\n[.$] >= 2) \{\
. as an-result \fB\\$1\fR\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \fB\\$1
\\*[an-result]
. ft R
..
.
.de RS
. br
. nr an-saved-margin\\n[an-level] \\n[an-margin]
. nr an-saved-prevailing-indent\\n[an-level] \\n[an-prevailing-indent]
. ie \\n[.$] .nr an-margin +(n;\\$1)
. el .nr an-margin +\\n[an-prevailing-indent]
. in \\n[an-margin]u
. nr an-prevailing-indent \\n[IN]
. nr an-level +1
..
.
.de RE
. br
. ie \\n[.$] .nr an-level ((;\\$1) <? \\n[an-level])
. el .nr an-level -1
. nr an-level (1 >? \\n[an-level])
. nr an-margin \\n[an-saved-margin\\n[an-level]]
. nr an-prevailing-indent \\n[an-saved-prevailing-indent\\n[an-level]]
. in \\n[an-margin]u
..
.
.ds S \s[\\n[PS]]
.ie c\[rg] .ds R \[rg]
.el .ds R (Reg.)
.ie c\[tm] .ds Tm \[tm]
.el .ds Tm (TM)
.ds lq \(lq
.ds rq \(rq
.
.hy 14
.
.\" Load local modifications.
.mso man.local
.
.cp \n(_C
.
.\" end of tmac.an