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'.

. . .do if d RI .nx . .do mso devtag.tmac . .nr _C \n(.C .cp 0 . . ab You need GNU troff version 1.18 or higher to run this version of man! . 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 P .pn 0\n[P] . 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.
. . \" 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 .\} . . nr LT \n[LL] . .nr FT -.5i . Default heading font
. .nr an-first 1 . .nr an-html 0 . 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
. 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 \\$* . . .\} . . nr an-margin \\n[IN] .. . .TH title section extra1 extra2 extra3
. 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
. . 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 . \} .. . . 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 .. . . ta T .5i \" This sets tabs every .5 inches .. . . ie \\n[.$] .nr PD (v;\\$1) . el .nr PD (.4v >? \n[.V]) .. . Redefine these to customize the header & footer
. . tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])' .. . . 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]' .. . . 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 .. . ' bp .. . .af an-page-letter a . . 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 .. . . nr % 1 . pl +4v . fl . sp 3 . an-p-footer . pl \\n[nl]u .. . . . 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[.$] \\$* .. . . 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[.$] \\$* .. . . it 1 an-trap . ft B . if \\n[.$] \\$* .. . . it 1 an-trap . ft I . if \\n[.$] \,\\$*\/ .. . . it 1 an-trap . ps -1 . if \\n[.$] \\$* .. . . it 1 an-trap . ps -1 . ft B . if \\n[.$] \\$* .. . . 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 .. . . 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 .. . . 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 . \} .. . . 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 . . 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 . \} .. . . 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 .. . . . 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 . \} .. . . 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 . \} .. . . 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 . \} .. . . 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 . \} .. . . 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 .. . . 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 .. . . 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 .. . . 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
. . sp \\n[PD]u . HTML-IMAGE .. . .. . . HTML-IMAGE-END .. . dummy equation delimiters
. HTML-IMAGE .. . HTML-IMAGE-END .. . \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
. . . 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.
. . 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