/contrib/groff/tmac/an-old.tmac
https://bitbucket.org/freebsd/freebsd-head/ · Unknown · 650 lines · 650 code · 0 blank · 0 comment · 0 complexity · 851c5abcf832e98948b47c136eb08bce MD5 · raw file
- .\" an-old.tmac
- .\"
- .\" Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003, 2004, 2005
- .\" 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, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, 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
- .
- .do mso devtag.tmac
- .
- .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
- .\}
- .
- .nr need_eo_h 0
- .
- .\" set up the line length...
- .\" giving precedence to any prior assignment to the \n[LL] register.
- .if !r LL \{\
- .
- . \" but if that isn't predefined...
- . \" then try to respect any prior `.ll' request.
- . nr LL \n[.l]
- .
- . \" For troff, this is sufficient to give us a default line length of
- . \" 6.5i, but for nroff, we prefer a default of 78n to nroff's default
- . \" 65n. This has the unfortunate side effect that we will override a
- . \" user's `.ll 65n' request, with our preferred 78n default; we can't
- . \" possibly know that the 65n came from a `.ll' request, and MUST
- . \" assume that it was set by nroff, as its built-in default! If the
- . \" user wants to force this setting, then he MUST use the `-rLL=65n'
- . \" option, or an equivalent `.nr LL 65n' request.
- . if n \
- . if (\n[LL] = 65n) \
- . nr LL 78n
- .\}
- .
- .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 if cR is set; instead, the page
- .\" length is increased to the necessary amount (this is needed for tables)
- .\"
- .\" similarly, we redefine .bp if cR is set, adjusting the page length to
- .\" the current position so that no empty lines are inserted
- .if \n[cR] \{\
- . de1 ne
- . ie \\n[.$] \
- . nr an-ne (v;\\$*)
- . el \
- . nr an-ne 1v
- . if (\\n[an-ne] >= \\n[.t]) \
- . pl +(\\n[an-ne]u - \\n[.t]u + 1v)
- . .
- .
- . rn bp an-bp
- . de1 bp
- . br
- . pl \\n[nl]u
- . an-bp \\$*
- . .
- .\}
- .
- .de set-an-margin
- . nr an-margin \\n[IN]
- ..
- .
- .\" .TH title section extra1 extra2 extra3
- .de1 TH
- . if \\n[an-html] \{\
- . DEVTAG-TL
- \\$1
- . DEVTAG-EO-TL
- . \}
- .
- . 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
- . nr need_eo_h 1
- . DEVTAG-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
- . if \\n[need_eo_h]>0 .DEVTAG-EO-H
- . nr need_eo_h 0
- . 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)
- . DEVTAG-COL 1
- \\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c
- . DEVTAG-COL-NEXT 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 \&\f[R]\\$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
- \\*[an-result]
- . ft R
- . \}
- ..
- .
- .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]
- . ft R
- . \}
- ..
- .
- .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]
- .\}
- .
- .\" For UTF-8, map some characters conservatively for the sake
- .\" of easy cut and paste.
- .
- .if '\*[.T]'utf8' \{\
- . rchar \- - ' `
- .
- . char \- \N'45'
- . char - \N'45'
- . char ' \N'39'
- . char ` \N'96'
- .\}
- .
- .\" Load local modifications.
- .mso man.local
- .
- .cp \n[_C]
- .
- .\" end of an-old.tmac