freebsd-dev/contrib/groff/tmac/an-old.tmac
2003-05-01 13:09:50 +00:00

602 lines
12 KiB
Plaintext

.\" an-old.tmac
.\"
.\" Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003
.\" 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.
.\"
.\" -rcR=1 => Create a single, very long page instead of multiple pages.
.\" Useful for online display. Default in nroff mode.
.\" Desactivate with -rcR=0.
.\" -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 `.am1 TH'.
.\"
.
.if !\n(.g .ab These man macros work only with groff.
.
.do if d RI .nx
.
.nr _C \n(.C
.cp 0
.
.if (\n[.x]\n[.y] < 118) \
. ab You need GNU troff version 1.18 or higher to run this version of man!
.
.if !r D .nr D 0
.if !r C .nr C 0
.if !r S .nr S 10
.\" we must use consecutive page numbers when using postscript to generate
.\" html images, and we must not reset the page number at the beginning
.\" (the `ps4html' register is automatically added to the command line by
.\" the pre-html preprocessor)
.if !r ps4html \
. if r P .pn 0\n[P]
.if !r cR \{\
. ie n .nr cR 1
. el .nr cR 0
.\}
.
.if !r LL \{\
. ie n .nr LL 78n
. el .nr LL 6.5i
.\}
.if !r LT \
. nr LT \n[LL]
.
.nr FT -.5i
.
.\" Default heading font
.ds HF B
.
.nr an-first 1
.
.nr an-html 0
.if '\*[.T]'html' .nr an-html 1
.if \n[an-html] .nr C 1
.if r ps4html .nr C 1
.
.\" we redefine .ne to avoid page breaks; instead, the page length is
.\" increased to the necessary amount (this is needed for tables)
.if n \{\
. de1 ne
. ie \\n[.$] \
. nr an-ne \\$*
. el \
. nr an-ne 1v
. if (\\n[an-ne] >= \\n[.t]) \
. pl +(\\n[an-ne]u - \\n[.t]u + 1v)
. .
.\}
.
.de set-an-margin
. nr an-margin \\n[IN]
..
.
.\" .TH title section extra1 extra2 extra3
.de1 TH
. if \\n[an-html] \{\
. HTML-TAG-NS ".tl"
\\$1
. \}
.
. 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
.
. nr PS 10z \" default point size
. nr PS-SS 10z
. nr PS-SH 10.95z
. nr VS 12p
.
. \" use sizes similar to LaTeX
. if t \{\
. ie (\\n[S] == 11) \{\
. nr PS 10.95z
. nr PS-SS 10.95z
. nr PS-SH 12z
. nr VS 13.6p
. \}
. el \{\
. if (\\n[S] == 12) \{\
. nr PS 12z
. nr PS-SS 12z
. nr PS-SH 14.4z
. nr VS 14.5p
. \}
. \}
. \}
.
. ps \\n[PS]u
. vs \\n[VS]u
. ll \\n[LL]u
.
.\" We must select an integer indentation value for nroff;
.\" see comment in an-do-tag.
. if !r IN \{\
. ie t .nr IN 7.2n
. el .nr IN 7n
. \}
. PD
. if !r SN \
. 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
.
. ie \\n[cR] \
. an-header
. el \{\
. wh 0 an-header
. wh -1i an-footer
. wh \\n[FT]u an-p-footer
.
. if (\\n[nl] > 0) \{\
. ie \\n[C] .bp (\\n[%] + 1)
. el .bp 1
. \}
. \}
..
.
.\" BSD compatibility macros: .AT and .UC
.
.de1 AT
. ds an-extra2 "7th Edition
. if "\\$1"3" .ds an-extra2 "7th Edition
. if "\\$1"4" .ds an-extra2 "System III
. if "\\$1"5" \{\
. ie "\\$2"" .ds an-extra2 "System V
. el .ds an-extra2 "System V Release \\$2
. \}
..
.
.de1 UC
. ds an-extra2 "3rd Berkeley Distribution
. if "\\$1"3" .ds an-extra2 "3rd Berkeley Distribution
. if "\\$1"4" .ds an-extra2 "4th Berkeley Distribution
. if "\\$1"5" .ds an-extra2 "4.2 Berkeley Distribution
. if "\\$1"6" .ds an-extra2 "4.3 Berkeley Distribution
. if "\\$1"7" .ds an-extra2 "4.4 Berkeley Distribution
..
.
.de1 DT
. ta T .5i \" This sets tabs every .5 inches
..
.
.de1 PD
. ie \\n[.$] .nr PD (v;\\$1)
. el .nr PD (.4v >? \n[.V])
..
.
.\" Redefine these to customize the header & footer
.
.de1 PT
. tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])'
..
.
.de1 BT
. if r ps4html \
. return
. ie \\n[D] \{\
. 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]'
..
.
.de1 an-header
. an-init
. if \\n[cR] \{\
. ie \\n[an-first] \
. nr an-first 0
. el \
. sp .5i
. \}
. ev 1
. ps \\n[PS]u
. vs \\n[VS]u
. lt \\n[LT]u
. ie \\n[an-html] \
. tl ''''
. el \{\
. if !\\n[cR] \
. sp .5i
. PT
. ie !\\n[cR] \
. sp |1i
. el \
. sp .5i
. \}
. ev
. ns
..
.
.de1 an-footer
' bp
..
.
.af an-page-letter a
.
.de1 an-p-footer
. ev 1
. ps \\n[PS]u
. vs \\n[VS]u
. lt \\n[LT]u
. ie \\n[an-html] \{\
. ds an-page-string
. ds an-extra1
. ds an-extra2
. \}
. el \{\
. ie r X \{\
. if (\\n[%] > \\n[X]) \{\
. nr an-page-letter (\\n[%] - \\n[X])
. ds an-page-string \\n[X]\\n[an-page-letter]
. \}
. \}
. el \{\
. ie \\n[cR] \
. ds an-page-string "\\*[an-title](\\*[an-section])
. el \
. ds an-page-string \\n[%]
. \}
. \}
. BT
. ev
..
.
.de1 an-end
. nr % 1
. pl +4v
. fl
. sp 3
. an-p-footer
. pl \\n[nl]u
..
.
.if \n[cR] .em an-end
.
.de1 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
. HTML-TAG-NS ".NH \\n[an-level]"
. it 1 an-trap
. nr an-no-space-flag 1
. nr an-break-flag 1
. ps \\n[PS-SH]u
. ft \\*[HF]
. ne (2v + 1u)
. if \\n[.$] \&\\$*
..
.
.de1 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 \\*[HF]
. ne (2v + 1u)
. if \\n[.$] \&\\$*
..
.
.de1 B
. it 1 an-trap
. ft B
. if \\n[.$] \&\\$*
..
.
.de1 I
. it 1 an-trap
. ft I
. if \\n[.$] \,\\$*\/
..
.
.de1 SM
. it 1 an-trap
. ps -1
. if \\n[.$] \&\\$*
..
.
.de1 SB
. it 1 an-trap
. ps -1
. ft B
. if \\n[.$] \&\\$*
..
.
.de1 TP
. sp \\n[PD]u
. if \\n[.$] .nr an-prevailing-indent (n;\\$1)
. it 1 an-trap
. in 0
. ll -\\n[an-margin]u
. if !\\n[an-div?] .di an-div
. nr an-div? 1
..
.
.de1 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
. br
. di
. nr an-div? 0
. ll
. ie (\\n[dl] + \\n[an-tag-sep] > \\n[an-prevailing-indent]) \{\
. in \\n[an-margin]u
. ne (2v + 1u)
. an-div
. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. \}
. el \{\
. \" In nroff mode, if the indentation value is not an integer multiple
. \" of the character cell, it is possible that the following combination
. \" of .in and .ti yields a different result as the .in request in
. \" the .ie part above.
. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. ti -\\n[an-prevailing-indent]u
. chop an-div
. ne (1v + 1u)
. HTML-TAG-NS ".col 1"
\\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c
. HTML-TAG-NS ".col 2"
. \}
..
.
.de1 LP
. 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
.
.de1 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
. \}
..
.
.de1 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 ( \\ )
.
.de1 RI
. if \\n[.$] \{\
. ds an-result \&\\$1
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \,\f[I]\\$1\f[R]\/\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \,\f[I]\\$1\f[R]
\\*[an-result]
. \}
..
.
.de1 IR
. if \\n[.$] \{\
. ds an-result \&\f[I]\\$1\f[R]
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \/\\$1\f[I]\,\\$2\f[R]
. shift 2
. \}
. if \\n[.$] .as an-result \/\\$1
\\*[an-result]
. \}
..
.
.de1 IB
. if \\n[.$] \{\
. ds an-result \&\f[I]\\$1
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \/\f[B]\\$1\f[I]\,\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \/\f[B]\\$1
\\*[an-result]
. ft R
. \}
..
.
.de1 BI
. if \\n[.$] \{\
. ds an-result \&\f[B]\\$1
. shift
. while (\\n[.$] >= 2) \{\
. as an-result \,\f[I]\\$1\f[B]\/\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \,\f[I]\\$1
\\*[an-result]
. ft R
. \}
..
.
.de1 RB
. ds an-result \&
. while (\\n[.$] >= 2) \{\
. as an-result \f[R]\\$1\f[B]\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \f[R]\\$1
\\*[an-result]
. ft R
..
.
.de1 BR
. ds an-result \&
. while (\\n[.$] >= 2) \{\
. as an-result \f[B]\\$1\f[R]\\$2\\*[an-empty]
. shift 2
. \}
. if \\n[.$] .as an-result \f[B]\\$1
\\*[an-result]
. ft R
..
.
.de1 RS
. 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
..
.
.de1 RE
. 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
..
.
.\" table support
.
.de1 TS
. sp \\n[PD]u
. HTML-IMAGE
..
.
.de1 T&
..
.
.de1 TE
. HTML-IMAGE-END
..
.
.\" dummy equation delimiters
.de1 EQ
. HTML-IMAGE
..
.de1 EN
. HTML-IMAGE-END
..
.
.de1 R
\c
. ie \\n[.$] \{\
. tm `R' is a string (producing the registered sign), not a macro.
. nop \\$*
. \}
. el \{\
. ie c\[rg] \
. nop \[rg]\c
. el \
. nop (Reg.)\c
. \}
..
.
.\" these strings must work in compatibility mode also
.
.ds S \s'\\n(PSu'
.ie c\[tm] .ds Tm \(tm
.el .ds Tm (TM)
.ds lq \(lq
.ds rq \(rq
.
.if !\n[an-html] \{\
. if !rHY \{\
. ie \n[cR] \
. nr HY 12
. el \
. nr HY 14
. \}
. hy \n[HY]
.\}
.
.\" Load local modifications.
.mso man.local
.
.cp \n[_C]
.
.\" end of an-old.tmac