summaryrefslogtreecommitdiffstats
path: root/contrib/groff/tmac
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-10-20 10:45:19 +0000
committerru <ru@FreeBSD.org>2005-10-20 10:45:19 +0000
commit353ac0b339df3493d1950b6527988b77b76bd197 (patch)
tree8a188846a3f5bd2f2b8cb869cba64e3c470a2b26 /contrib/groff/tmac
parentc40093b1f1b43dc237b9d272697cdd0842ec64ec (diff)
downloadFreeBSD-src-353ac0b339df3493d1950b6527988b77b76bd197.zip
FreeBSD-src-353ac0b339df3493d1950b6527988b77b76bd197.tar.gz
Virgin import of FSF groff v1.19.2
Diffstat (limited to 'contrib/groff/tmac')
-rw-r--r--contrib/groff/tmac/Makefile.sub3
-rw-r--r--contrib/groff/tmac/TODO2
-rw-r--r--contrib/groff/tmac/X.tmac5
-rw-r--r--contrib/groff/tmac/Xps.tmac3
-rw-r--r--contrib/groff/tmac/an-old.tmac65
-rw-r--r--contrib/groff/tmac/composite.tmac1
-rw-r--r--contrib/groff/tmac/devtag.tmac131
-rw-r--r--contrib/groff/tmac/doc-common8
-rw-r--r--contrib/groff/tmac/doc-ditroff6
-rw-r--r--contrib/groff/tmac/doc-nroff6
-rw-r--r--contrib/groff/tmac/doc-old.tmac6
-rw-r--r--contrib/groff/tmac/doc-syms6
-rw-r--r--contrib/groff/tmac/doc.tmac6
-rw-r--r--contrib/groff/tmac/dvi.tmac124
-rw-r--r--contrib/groff/tmac/e.tmac3
-rw-r--r--contrib/groff/tmac/groff_man.man275
-rw-r--r--contrib/groff/tmac/groff_mdoc.man26
-rw-r--r--contrib/groff/tmac/groff_ms.man581
-rw-r--r--contrib/groff/tmac/groff_trace.man4
-rw-r--r--contrib/groff/tmac/groff_www.man212
-rw-r--r--contrib/groff/tmac/html.tmac1
-rw-r--r--contrib/groff/tmac/latin5.tmac107
-rw-r--r--contrib/groff/tmac/lbp.tmac54
-rw-r--r--contrib/groff/tmac/papersize.tmac18
-rw-r--r--contrib/groff/tmac/ps.tmac12
-rw-r--r--contrib/groff/tmac/s.tmac238
-rw-r--r--contrib/groff/tmac/trace.tmac66
-rw-r--r--contrib/groff/tmac/troffrc6
-rw-r--r--contrib/groff/tmac/troffrc-end3
-rw-r--r--contrib/groff/tmac/tty-char.tmac8
-rw-r--r--contrib/groff/tmac/tty.tmac3
-rw-r--r--contrib/groff/tmac/unicode.tmac3
-rw-r--r--contrib/groff/tmac/www.tmac597
33 files changed, 2050 insertions, 539 deletions
diff --git a/contrib/groff/tmac/Makefile.sub b/contrib/groff/tmac/Makefile.sub
index 0d9cd60..21e41f5 100644
--- a/contrib/groff/tmac/Makefile.sub
+++ b/contrib/groff/tmac/Makefile.sub
@@ -19,10 +19,12 @@ NORMALFILES=\
dvi.tmac \
tty.tmac tty-char.tmac \
latin1.tmac latin2.tmac latin9.tmac cp1047.tmac \
+ unicode.tmac \
X.tmac Xps.tmac \
lj4.tmac \
lbp.tmac \
html.tmac html-end.tmac \
+ devtag.tmac \
europs.tmac \
composite.tmac \
eqnrc \
@@ -124,6 +126,7 @@ uninstall_sub:
-rm -f $(tmacdir)/$(tmac_s_prefix)s.tmac
-rm -f $(tmacdir)/$(tmac_an_prefix)an.tmac
-rm -f $(tmacdir)/man.tmac $(tmacdir)/ms.tmac
+ -rm -f $(tmacdir)/www.tmac
-if cmp -s $(localtmacdir)/man.local $(srcdir)/man.local; then \
rm -f $(localtmacdir)/man.local; \
fi
diff --git a/contrib/groff/tmac/TODO b/contrib/groff/tmac/TODO
index 5213fc2..f9fd490 100644
--- a/contrib/groff/tmac/TODO
+++ b/contrib/groff/tmac/TODO
@@ -1,7 +1,5 @@
Support multiple line-spacing.
-Improve the device independence of the character definitions.
-
If we have footnotes in the abstract in RP format, then the footnote
will appear on the cover sheet, which it should, but also on the first
page, which it should not.
diff --git a/contrib/groff/tmac/X.tmac b/contrib/groff/tmac/X.tmac
index 4119a8b..df64f22 100644
--- a/contrib/groff/tmac/X.tmac
+++ b/contrib/groff/tmac/X.tmac
@@ -76,6 +76,11 @@
.X-achar \['c] \' c c
.X-achar \[:Y] \[ad] Y y
.
+.fchar \[S ,] \o'S\[ac]'
+.hcode \[S ,]s
+.fchar \[s ,] \o's\[ac]'
+.hcode \[s ,]s
+.
.de X-frac
. schar \[\\$1\\$2] \
\v'-.28m'\s[\\En[.s]*6u/10u]\\$1\s0\v'.28m'\
diff --git a/contrib/groff/tmac/Xps.tmac b/contrib/groff/tmac/Xps.tmac
index ced2a53..d61ff2c 100644
--- a/contrib/groff/tmac/Xps.tmac
+++ b/contrib/groff/tmac/Xps.tmac
@@ -3,6 +3,9 @@
.do mso ps.tmac
.nr _C \n(.C
.cp 0
+.
+.\" Use this macro only to replace characters which do really exist in
+.\" the devps font definition files.
.de Xps-char
. char \\$1 \Z"\X'ps: invis'\\$2\X'ps: endinvis'"\\$1
..
diff --git a/contrib/groff/tmac/an-old.tmac b/contrib/groff/tmac/an-old.tmac
index 063ebce..b51f2e2 100644
--- a/contrib/groff/tmac/an-old.tmac
+++ b/contrib/groff/tmac/an-old.tmac
@@ -1,6 +1,6 @@
.\" an-old.tmac
.\"
-.\" Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003
+.\" Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003, 2004, 2005
.\" Free Software Foundation, Inc.
.\" Written by James Clark (jjc@jclark.com)
.\"
@@ -18,7 +18,7 @@
.\"
.\" 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.
+.\" 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.
@@ -38,6 +38,8 @@
.
.do if d RI .nx
.
+.do mso devtag.tmac
+.
.nr _C \n(.C
.cp 0
.
@@ -58,10 +60,29 @@
. 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 \{\
-. ie n .nr LL 78n
-. el .nr LL 6.5i
+.
+. \" 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]
.
@@ -77,17 +98,27 @@
.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 \{\
+.\" 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 \\$*
+. 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
@@ -97,8 +128,9 @@
.\" .TH title section extra1 extra2 extra3
.de1 TH
. if \\n[an-html] \{\
-. HTML-TAG-NS ".tl"
+. DEVTAG-TL
\\$1
+. DEVTAG-EO-TL
. \}
.
. de an-init \" We have to do it like this to get multiple man pages right.
@@ -300,7 +332,8 @@
. fi
. in \\n[an-margin]u
. ti 0
-. HTML-TAG-NS ".NH \\n[an-level]"
+. 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
@@ -363,6 +396,8 @@
..
.
.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
@@ -397,9 +432,9 @@
. ti -\\n[an-prevailing-indent]u
. chop an-div
. ne (1v + 1u)
-. HTML-TAG-NS ".col 1"
+. DEVTAG-COL 1
\\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c
-. HTML-TAG-NS ".col 2"
+. DEVTAG-COL-NEXT 2
. \}
..
.
@@ -446,14 +481,15 @@
.
.de1 RI
. if \\n[.$] \{\
-. ds an-result \&\\$1
+. 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\f[R]
+. if \\n[.$] .as an-result \,\f[I]\\$1
\\*[an-result]
+. ft R
. \}
..
.
@@ -467,6 +503,7 @@
. \}
. if \\n[.$] .as an-result \/\\$1
\\*[an-result]
+. ft R
. \}
..
.
diff --git a/contrib/groff/tmac/composite.tmac b/contrib/groff/tmac/composite.tmac
index 9326933..95e0f07 100644
--- a/contrib/groff/tmac/composite.tmac
+++ b/contrib/groff/tmac/composite.tmac
@@ -19,6 +19,7 @@
.do composite " u030B
.do composite ah u030C
.do composite ac u0327
+.do composite , u0327
.do composite ho u0328
.
.\" EOF
diff --git a/contrib/groff/tmac/devtag.tmac b/contrib/groff/tmac/devtag.tmac
new file mode 100644
index 0000000..9a26d44
--- /dev/null
+++ b/contrib/groff/tmac/devtag.tmac
@@ -0,0 +1,131 @@
+.ig
+devtag.tmac - macro package for adding tags to roff documents.
+
+File position: <groff_source_top>/tmac/devtag.tmac
+Installed position: groff's main macro directory.
+
+------------------------------------------------------------------------
+ Legalize
+------------------------------------------------------------------------
+
+This file is part of groff, the GNU roff type-setting system.
+
+Copyright (C) 2004 Free Software Foundation, Inc.
+written by Gaius Mulley <gaius@glam.ac.uk>.
+
+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.
+
+
+------------------------------------------------------------------------
+ Description
+------------------------------------------------------------------------
+
+A simple set of macros to provide markup devices (currently only grohtml)
+with tags that define the meaning of the formatted text and also
+basic formatting instructions. It generalizes the tag concept used within
+grohtml and in the future it is hoped that more markup based devices
+can capitalize on this work. It also clearly defines those tags which are
+honoured by grohtml. Note that not all tags are included here. Some
+of the grohtml specific tags (header specific and jobname, etc.) are
+called directly from within www.tmac. The tags defined here are
+reasonably generic and could be applied to other devices.
+..
+.
+.do if d DEVTAG-NH .nx
+.
+.nr _C \n(.C
+.cp 0
+.
+.\" --------------------------------------------------------------------
+.\" DEVTAG <name>
+.\"
+.\" Emit a tag <name>
+.\"
+.de DEVTAG
+. tag devtag:\\$*
+..
+.\" --------------------------------------------------------------------
+.\" DEVTAG-NEXT <name>
+.\"
+.\" When the troff state changes, emit tag <name>
+.\"
+.de DEVTAG-NEXT
+. taga devtag:\\$*
+..
+.
+.\" --------------------------------------------------------------------
+.\" SH <level>
+.\" NH <level>
+.\" tell device we are starting a numbered heading
+.\" Takes a single parameter <level>. <level> 1
+.\" is the outer most level.
+.
+.de DEVTAG-NH
+. DEVTAG ".NH \\$1"
+..
+.als DEVTAG-SH DEVTAG-NH
+.
+.\" --------------------------------------------------------------------
+.\" COL <n>
+.\" indicate that the following text is aligned for the column <n>
+.\" n: [1..MAX(n)]
+.
+.de DEVTAG-COL
+. DEVTAG ".col \\$1"
+..
+.
+.\" --------------------------------------------------------------------
+.\" EO-H
+.\" indicate that a header has finished.
+.
+.de DEVTAG-EO-H
+. DEVTAG ".eo.h"
+..
+.\" --------------------------------------------------------------------
+.\" EO-TL
+.\" indicate that a title has finished.
+.
+.de DEVTAG-EO-TL
+. DEVTAG ".eo.tl"
+..
+.\" --------------------------------------------------------------------
+.\" TL
+.\" indicate that the following text forms a title.
+.
+.de DEVTAG-TL
+. DEVTAG ".tl"
+..
+.
+.\" --------------------------------------------------------------------
+.\" COL-NEXT <n>
+.\" emit a column tag just before the next glyph.
+.
+.de DEVTAG-COL-NEXT
+. DEVTAG-NEXT ".col \\$1"
+..
+.
+.
+.cp \n[_C]
+.
+.
+.\" --------------------------------------------------------------------
+.\" Emacs settings
+.\" --------------------------------------------------------------------
+.
+.\" Local Variables:
+.\" mode: nroff
+.\" End:
+.\" EOF
diff --git a/contrib/groff/tmac/doc-common b/contrib/groff/tmac/doc-common
index 38f1380..5b240bb 100644
--- a/contrib/groff/tmac/doc-common
+++ b/contrib/groff/tmac/doc-common
@@ -9,10 +9,8 @@
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
@@ -434,6 +432,8 @@
.ds doc-operating-system-NetBSD-1.6.1 1.6.1
.ds doc-operating-system-NetBSD-1.6.2 1.6.2
.ds doc-operating-system-NetBSD-2.0 2.0
+.ds doc-operating-system-NetBSD-2.0.1 2.0.1
+.ds doc-operating-system-NetBSD-2.0.2 2.0.2
.ds doc-operating-system-NetBSD-2.1 2.1
.
.ds doc-operating-system-FreeBSD-1.0 1.0
diff --git a/contrib/groff/tmac/doc-ditroff b/contrib/groff/tmac/doc-ditroff
index fbfa61b..84fe882 100644
--- a/contrib/groff/tmac/doc-ditroff
+++ b/contrib/groff/tmac/doc-ditroff
@@ -9,10 +9,8 @@
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
diff --git a/contrib/groff/tmac/doc-nroff b/contrib/groff/tmac/doc-nroff
index e8ce14d..eabb305 100644
--- a/contrib/groff/tmac/doc-nroff
+++ b/contrib/groff/tmac/doc-nroff
@@ -9,10 +9,8 @@
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
diff --git a/contrib/groff/tmac/doc-old.tmac b/contrib/groff/tmac/doc-old.tmac
index 5e5db59..b91fabf 100644
--- a/contrib/groff/tmac/doc-old.tmac
+++ b/contrib/groff/tmac/doc-old.tmac
@@ -10,10 +10,8 @@
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
diff --git a/contrib/groff/tmac/doc-syms b/contrib/groff/tmac/doc-syms
index 3059a4d..4182a08 100644
--- a/contrib/groff/tmac/doc-syms
+++ b/contrib/groff/tmac/doc-syms
@@ -9,10 +9,8 @@
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
diff --git a/contrib/groff/tmac/doc.tmac b/contrib/groff/tmac/doc.tmac
index fef20ab..083b13a 100644
--- a/contrib/groff/tmac/doc.tmac
+++ b/contrib/groff/tmac/doc.tmac
@@ -9,10 +9,8 @@
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
diff --git a/contrib/groff/tmac/dvi.tmac b/contrib/groff/tmac/dvi.tmac
index 27fd5b3..ff5a2a2 100644
--- a/contrib/groff/tmac/dvi.tmac
+++ b/contrib/groff/tmac/dvi.tmac
@@ -156,68 +156,76 @@ D\v'-.33m'\s0\v'.33m'
. hcode \\$1\\$4
..
.
-.dvi-achar \[`A] \` A a
-.dvi-achar \['A] \' A a
-.dvi-achar \[^A] ^ A a
-.dvi-achar \[~A] ~ A a
-.dvi-achar \[:A] \[ad] A a
-.dvi-achar \[oA] \[ao] A a
-.dvi-achar \['C] \' C c
-.dvi-achar \[`E] \` E e
-.dvi-achar \['E] \' E e
-.dvi-achar \[^E] ^ E e
-.dvi-achar \[:E] \[ad] E e
-.dvi-achar \[`I] \` I i
-.dvi-achar \['I] \' I i
-.dvi-achar \[^I] ^ I i
-.dvi-achar \[:I] \[ad] I i
-.dvi-achar \[~N] ~ N n
-.dvi-achar \[`O] \` O o
-.dvi-achar \['O] \' O o
-.dvi-achar \[^O] ^ O o
-.dvi-achar \[~O] ~ O o
-.dvi-achar \[:O] \[ad] O o
-.dvi-achar \[`U] \` U u
-.dvi-achar \['U] \' U u
-.dvi-achar \[^U] ^ U u
-.dvi-achar \[:U] \[ad] U u
-.dvi-achar \['Y] \' Y y
-.dvi-achar \[:Y] \[ad] Y y
-.dvi-achar \[`a] \` a a
-.dvi-achar \['a] \' a a
-.dvi-achar \[^a] ^ a a
-.dvi-achar \[~a] ~ a a
-.dvi-achar \[:a] \[ad] a a
-.dvi-achar \[oa] \[ao] a a
-.dvi-achar \['c] \' c c
-.dvi-achar \[`e] \` e e
-.dvi-achar \['e] \' e e
-.dvi-achar \[^e] ^ e e
-.dvi-achar \[:e] \[ad] e e
-.dvi-achar \[`i] \` \[.i] i
-.dvi-achar \['i] \' \[.i] i
-.dvi-achar \[^i] ^ \[.i] i
-.dvi-achar \[:i] \[ad] \[.i] i
-.dvi-achar \[~n] ~ n n
-.dvi-achar \[`o] \` o o
-.dvi-achar \['o] \' o o
-.dvi-achar \[^o] ^ o o
-.dvi-achar \[~o] ~ o o
-.dvi-achar \[:o] \[ad] o o
-.dvi-achar \[`u] \` u u
-.dvi-achar \['u] \' u u
-.dvi-achar \[^u] ^ u u
-.dvi-achar \[:u] \[ad] u u
-.dvi-achar \['y] \' y y
-.dvi-achar \[:y] \[ad] y y
-.dvi-achar \[vs] \[ah] s s
-.dvi-achar \[vS] \[ah] S s
-.dvi-achar \[vz] \[ah] z z
-.dvi-achar \[vZ] \[ah] Z z
+.dvi-achar \[`A] \` A a
+.dvi-achar \['A] \' A a
+.dvi-achar \[^A] ^ A a
+.dvi-achar \[~A] ~ A a
+.dvi-achar \[:A] \[ad] A a
+.dvi-achar \[oA] \[ao] A a
+.dvi-achar \['C] \' C c
+.dvi-achar \[`E] \` E e
+.dvi-achar \['E] \' E e
+.dvi-achar \[^E] ^ E e
+.dvi-achar \[:E] \[ad] E e
+.dvi-achar "\[G ab]" \[ab] G g
+.dvi-achar \[`I] \` I i
+.dvi-achar \['I] \' I i
+.dvi-achar \[^I] ^ I i
+.dvi-achar \[:I] \[ad] I i
+.dvi-achar "\[I .]" \[a.] I i
+.dvi-achar \[~N] ~ N n
+.dvi-achar \[`O] \` O o
+.dvi-achar \['O] \' O o
+.dvi-achar \[^O] ^ O o
+.dvi-achar \[~O] ~ O o
+.dvi-achar \[:O] \[ad] O o
+.dvi-achar \[`U] \` U u
+.dvi-achar \['U] \' U u
+.dvi-achar \[^U] ^ U u
+.dvi-achar \[:U] \[ad] U u
+.dvi-achar \['Y] \' Y y
+.dvi-achar \[:Y] \[ad] Y y
+.dvi-achar \[`a] \` a a
+.dvi-achar \['a] \' a a
+.dvi-achar \[^a] ^ a a
+.dvi-achar \[~a] ~ a a
+.dvi-achar \[:a] \[ad] a a
+.dvi-achar \[oa] \[ao] a a
+.dvi-achar \['c] \' c c
+.dvi-achar \[`e] \` e e
+.dvi-achar \['e] \' e e
+.dvi-achar \[^e] ^ e e
+.dvi-achar \[:e] \[ad] e e
+.dvi-achar "\[g ab]" \[ab] g g
+.dvi-achar \[`i] \` \[.i] i
+.dvi-achar \['i] \' \[.i] i
+.dvi-achar \[^i] ^ \[.i] i
+.dvi-achar \[:i] \[ad] \[.i] i
+.dvi-achar \[~n] ~ n n
+.dvi-achar \[`o] \` o o
+.dvi-achar \['o] \' o o
+.dvi-achar \[^o] ^ o o
+.dvi-achar \[~o] ~ o o
+.dvi-achar \[:o] \[ad] o o
+.dvi-achar \[`u] \` u u
+.dvi-achar \['u] \' u u
+.dvi-achar \[^u] ^ u u
+.dvi-achar \[:u] \[ad] u u
+.dvi-achar \['y] \' y y
+.dvi-achar \[:y] \[ad] y y
+.dvi-achar \[vs] \[ah] s s
+.dvi-achar \[vS] \[ah] S s
+.dvi-achar \[vz] \[ah] z z
+.dvi-achar \[vZ] \[ah] Z z
+.
.fchar \[,C] \o'\[ac]C'
.hcode \[,C]c
.fchar \[,c] \o'\[ac]c'
.hcode \[,c]c
+.fchar \[S ,] \o'S\[ac]'
+.hcode \[S ,]s
+.fchar \[s ,] \o's\[ac]'
+.hcode \[s ,]s
.
.\" now for color definitions
.\"
diff --git a/contrib/groff/tmac/e.tmac b/contrib/groff/tmac/e.tmac
index b8dd9f3..5c685e8b 100644
--- a/contrib/groff/tmac/e.tmac
+++ b/contrib/groff/tmac/e.tmac
@@ -55,12 +55,14 @@
.nr _S \\n(.s
.nr _V \\n(.v
.nr _F \\n(.f
+.nr _J \\n(.j
.do ds _A \\n[.fam]
.nr _I \\n(.i
.ev \\$1
.ps \\n(_S
.vs \\n(_Vu
.ft \\n(_F
+.ad \\n(_J
.do @fam \\*(_A
'in \\n(_Iu
.xl \\n($lu
@@ -69,6 +71,7 @@
.rr _V
.rr _F
.rr _I
+.rr _J
.ls 1
'ce 0
..
diff --git a/contrib/groff/tmac/groff_man.man b/contrib/groff/tmac/groff_man.man
index 5886e4f..985014e 100644
--- a/contrib/groff/tmac/groff_man.man
+++ b/contrib/groff/tmac/groff_man.man
@@ -1,9 +1,10 @@
.ig
-Copyright (C) 1999-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+Copyright (C) 1999-2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
+Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
@@ -63,9 +64,12 @@ groff_man \- groff `man' macros to support generation of man pages
.
The
.B man
-macros used to generate man pages with
+macros used to generate
+.I \%man\~pages
+with
.I groff
were written by James Clark.
+.
This document provides a brief summary of the use of each macro in that
package.
.
@@ -76,13 +80,14 @@ package.
.
The
.B man
-macros understand the following command line options (which define various
-registers).
+macros understand the following command line options (which define
+various registers).
.
.TP
.B \-rcR=1
-This option (the default if in nroff mode) will create a single, very long
-page instead of multiple pages.
+This option (the default if in nroff mode) will create a single, very
+long page instead of multiple pages.
+.
Say
.B \-rcR=0
to disable it.
@@ -95,12 +100,14 @@ pages continuously, rather than starting each at\ 1.
.TP
.B \-rD1
Double-sided printing.
+.
Footers for even and odd pages are formatted differently.
.
.TP
.BI \-rFT= dist
-Set distance of the footer relative to the bottom of the page if negative
-or relative to the top if positive.
+Set distance of the footer relative to the bottom of the page if
+negative or relative to the top if positive.
+.
The default is -0.5i.
.
.TP
@@ -130,13 +137,47 @@ consistent indentation.
.TP
.BI \-rLL= line-length
Set line length.
-If this option is not given, the line length defaults to 78n in nroff mode
-and 6.5i in troff mode.
+.
+If this option is not given,
+the line length is set to respect any value set by a prior `.ll' request,
+(which
+.I must
+be in effect when the `.TH' macro is invoked),
+if this differs from the built\-in default for the formatter;
+otherwise it defaults to 78n in
+.I nroff
+mode and 6.5i in
+.I troff
+mode.
+.
+.IP
+Note that the use of a `.ll' request to initialize the line length
+is supported for backward compatibility with some versions of the
+.B man
+program;
+direct initialization of the `LL' register should
+.I always
+be preferred to the use of such a request.
+In particular, note that a `.ll\ 65n' request will
+.I not
+preserve the normal
+.I nroff
+default line length,
+(the
+.B man
+default initialization to 78n will prevail),
+whereas,
+the `-rLL=65n' option, or an equivalent `.nr\ LL\ 65n'
+request preceding the use of the `TH' macro,
+.I will
+set a line length of 65n.
.
.TP
.BI \-rLT= title-length
Set title length.
-If this option is not given, the title length defaults to the line length.
+.
+If this option is not given, the title length defaults to the line
+length.
.
.TP
.BI \-rP nnn
@@ -167,8 +208,9 @@ number pages as
.IR nnn b,
.IR nnn c,
etc.
-For example, the option `\-rX2' will produce the following page numbers:
-1, 2, 2a, 2b, 2c, etc.
+.
+For example, the option `\-rX2' will produce the following page
+numbers: 1, 2, 2a, 2b, 2c, etc.
.
.
.\" -----------------------------------------------------------------
@@ -176,23 +218,29 @@ For example, the option `\-rX2' will produce the following page numbers:
.SH USAGE
.
This section describes the available macros for manual pages.
-For further customization, put additional macros and requests into the file
+.
+For further customization, put additional macros and requests into the
+file
.B man.local
which will be loaded immediately after the
.B man
package.
.
.TP
-.BI .TH " title section " [ extra1 "] [" extra2 "] [" extra3 ]
-Set the title of the man page to
+.BI .TH " title section \fB[\fPextra1\fB]\fP \fB[\fPextra2\fB]\fP \fB[\fPextra3\fB]"
+Set the title of the
+.I \man\~page
+to
.I title
and the section to
.IR section ,
which must take on a value between 1 and\ 8.
+.
The value
.I section
may also have a string appended, e.g. `.pm', to indicate a specific
-subsection of the man pages.
+subsection of the
+.IR \%man\~pages .
Both
.I title
and
@@ -214,50 +262,58 @@ is centered in the header line.
For HTML output, headers and footers are completely supressed.
.
.IP
-Additionally, this macro starts a new page; the new line number is\ 1 again
-(except if the `-rC1' option is given on the command line) -- this feature
-is intended only for formatting multiple man pages; a single man page should
-contain exactly one
+Additionally, this macro starts a new page; the new line number is\ 1
+again (except if the `-rC1' option is given on the command line) --
+this feature is intended only for formatting multiple
+.IR \%man\~pages ;
+a single
+.I \%man\~page
+should contain exactly one
.B TH
macro at the beginning of the file.
.
.TP
.BI ".SH [" "text for a heading" ]
Set up an unnumbered section heading sticking out to the left.
+.
Prints out all the text following
.B SH
-up to the end of the line (or the text in the next input line if there is
-no argument to
+up to the end of the line (or the text in the next input line if there
+is no argument to
.BR SH )
in bold face
(or the font specified by the string
.BR HF ),
one size larger than the base document size.
-Additionally, the left margin and the indentation for the following text
-is reset to the default values.
+.
+Additionally, the left margin and the indentation for the following
+text is reset to the default values.
.
.TP
.BI ".SS [" "text for a heading" ]
Set up a secondary, unnumbered section heading.
+.
Prints out all the text following
.B SS
-up to the end of the line (or the text in the next input line if there is
-no argument to
+up to the end of the line (or the text in the next input line if there
+is no argument to
.BR SS )
in bold face
(or the font specified by the string
.BR HF ),
at the same size as the base document size.
-Additionally, the left margin and the indentation for the following text
-is reset to the default values.
+.
+Additionally, the left margin and the indentation for the following
+text is reset to the default values.
.
.TP
.BI ".TP [" nnn ]
Set up an indented paragraph with label.
+.
The indentation is set to
.I nnn
-if that argument is supplied (the default unit is `n' if omitted), otherwise
-it is set to the previous indentation value specified with
+if that argument is supplied (the default unit is `n' if omitted),
+otherwise it is set to the previous indentation value specified with
.BR TP ,
.BR IP ,
or
@@ -265,18 +321,22 @@ or
(or to the default value if none of them have been used yet).
.
.IP
-The first input line of text following this macro is interpreted as a string
-to be printed flush-left, as it is appropriate for a label.
-It is not interpreted as part of a paragraph, so there is no attempt to fill
-the first line with text from the following input lines.
+The first input line of text following this macro is interpreted as a
+string to be printed flush-left, as it is appropriate for a label.
+.
+It is not interpreted as part of a paragraph, so there is no attempt
+to fill the first line with text from the following input lines.
+.
Nevertheless, if the label is not as wide as the indentation the
paragraph starts at the same line (but indented), continuing on the
following lines.
+.
If the label is wider than the indentation the descriptive part of the
paragraph begins on the line following the label, entirely indented.
-Note that neither font shape nor font size of the label is set to a default
-value; on the other hand, the rest of the text will have default font
-settings.
+.
+Note that neither font shape nor font size of the label is set to a
+default value; on the other hand, the rest of the text will have
+default font settings.
.
.IP
The
@@ -290,11 +350,15 @@ macro is the macro used for the explanations you are just reading.
.TQ
.B .P
These macros are mutual aliases.
+.
Any of them causes a line break at the current position, followed by a
vertical space downwards by the amount specified by the
.B PD
macro.
-The font size and shape are reset to the default value (10pt resp. Roman).
+.
+The font size and shape are reset to the default value (10pt
+resp. Roman).
+.
Finally, the current left margin and the indentation are restored.
.
.TP
@@ -302,25 +366,29 @@ Finally, the current left margin and the indentation are restored.
Set up an indented paragraph, using
.I designator
as a tag to mark its beginning.
+.
The indentation is set to
.I nnn
-if that argument is supplied (the default unit is `n' if omitted), otherwise
-it is set to the previous indentation value specified with
+if that argument is supplied (the default unit is `n' if omitted),
+otherwise it is set to the previous indentation value specified with
.BR TP ,
.BR IP ,
or
.B HP
(or to the default value if none of them have been used yet).
-Font size and face of the paragraph (but not the designator) are reset to
-its default values.
+.
+Font size and face of the paragraph (but not the designator) are reset
+to its default values.
.
.IP
-To start an indented paragraph with a particular indentation but without a
-designator, use `""' (two doublequotes) as the second argument.
+To start an indented paragraph with a particular indentation but
+without a designator, use `""' (two doublequotes) as the second
+argument.
.
.IP
-For example, the following paragraphs were all set up with bullets as the
-designator, using `.IP\ \\(bu\ 4'.
+For example, the following paragraphs were all set up with bullets as
+the designator, using `.IP\ \\(bu\ 4'.
+.
The whole block has been enclosed with `.RS' and `.RE' to set the left
margin temporarily to the current indentation value.
.
@@ -333,50 +401,61 @@ package to format lists.
.IP \(bu 4
.B HP
is another.
+.
This macro produces a paragraph with a left hanging indentation.
.IP \(bu 4
.B TP
is another.
-This macro produces an unindented label followed by an indented paragraph.
+.
+This macro produces an unindented label followed by an indented
+paragraph.
.RE
.
.TP
.BI ".HP [" nnn ]
Set up a paragraph with hanging left indentation.
+.
The indentation is set to
.I nnn
-if that argument is supplied (the default unit is `n' if omitted), otherwise
-it is set to the previous indentation value specified with
+if that argument is supplied (the default unit is `n' if omitted),
+otherwise it is set to the previous indentation value specified with
.BR TP ,
.BR IP ,
or
.B HP
(or to the default value if none of them have been used yet).
+.
Font size and face are reset to its default values.
-The following paragraph illustrates the effect of this macro with hanging
-indentation set to\ 4 (enclosed by `.RS' and `.RE' to set the left margin temporarily to
-the current indentation):
+.
+The following paragraph illustrates the effect of this macro with
+hanging indentation set to\ 4 (enclosed by
+.B .RS
+and
+.B .RE
+to set the left margin temporarily to the current indentation):
.
.RS
.HP 4
This is a paragraph following an invocation of the
.B HP
macro.
-As you can see, it produces a paragraph where all lines but the first are
-indented.
+.
+As you can see, it produces a paragraph where all lines but the first
+are indented.
.RE
.
.TP
.BI ".RS [" nnn ]
This macro moves the left margin to the right by the value
.I nnn
-if specified (default unit is `n'); otherwise it is set to the previous
-indentation value specified with
+if specified (default unit is `n'); otherwise it is set to the
+previous indentation value specified with
.BR TP ,
.BR IP ,
or
.B HP
(or to the default value if none of them have been used yet).
+.
The indentation value is then set to the default.
.
.IP
@@ -389,7 +468,9 @@ macro can be nested.
This macro moves the left margin back to level
.IR nnn ,
restoring the previous left margin.
+.
If no argument is given, it moves one level back.
+.
The first level (i.e., no call to
.B RS
yet) has number\ 1, and each call to
@@ -397,8 +478,8 @@ yet) has number\ 1, and each call to
increases the level by\ 1.
.
.PP
-To summarize, the following macros cause a line break with the insertion of
-vertical space (which amount can be changed with the
+To summarize, the following macros cause a line break with the
+insertion of vertical space (which amount can be changed with the
.B PD
macro):
.BR SH ,
@@ -435,8 +516,11 @@ appear in boldface font, one point size smaller than the default font.
.
.TP
.BI ".BI " text
-Causes text on the same line to appear alternately in bold face and italic.
+Causes text on the same line to appear alternately in bold face and
+italic.
+.
The text must be on the same line as the macro call.
+.
Thus
.RS
.IP
@@ -449,26 +533,35 @@ appears in italics.
.TP
.BI ".IB " text
Causes text to appear alternately in italic and bold face.
+.
The text must be on the same line as the macro call.
.
.TP
.BI ".RI " text
-Causes text on the same line to appear alternately in roman and italic.
+Causes text on the same line to appear alternately in roman and
+italic.
+.
The text must be on the same line as the macro call.
.
.TP
.BI ".IR " text
-Causes text on the same line to appear alternately in italic and roman.
+Causes text on the same line to appear alternately in italic and
+roman.
+.
The text must be on the same line as the macro call.
.
.TP
.BI ".BR " text
-Causes text on the same line to appear alternately in bold face and roman.
+Causes text on the same line to appear alternately in bold face and
+roman.
+.
The text must be on the same line as the macro call.
.
.TP
.BI ".RB " text
-Causes text on the same line to appear alternately in roman and bold face.
+Causes text on the same line to appear alternately in roman and bold
+face.
+.
The text must be on the same line as the macro call.
.
.TP
@@ -476,6 +569,7 @@ The text must be on the same line as the macro call.
Causes
.I text
to appear in bold face.
+.
If no text is present on the line where the macro is called the text
of the next input line appears in bold face.
.
@@ -484,6 +578,7 @@ of the next input line appears in bold face.
Causes
.I text
to appear in italic.
+.
If no text is present on the line where the macro is called the text
of the next input line appears in italic.
.
@@ -492,13 +587,15 @@ of the next input line appears in italic.
.
.SH "MISCELLANEOUS"
.
-The default indentation is 7.2n in troff mode and 7n in nroff mode except for
+The default indentation is 7.2n in troff mode and 7n in nroff mode
+except for
.B grohtml
which ignores indentation.
.
.TP
.B .DT
Set tabs every 0.5 inches.
+.
Since this macro is always called during a
.B TH
request, it makes sense to call it only if the tab positions have been
@@ -507,9 +604,11 @@ changed.
.TP
.BI ".PD [" nnn ]
Adjust the empty space before a new paragraph or section.
+.
The optional argument gives the amount of space (default unit is `v');
without parameter, the value is reset to its default value (1\ line in
nroff mode, 0.4v\ otherwise).
+.
This affects the macros
.BR SH ,
.BR SS ,
@@ -525,24 +624,34 @@ and
.
.TP
.BI ".AT [" system " [" release ]]
-Alter the footer for use with AT&T manpages.
+Alter the footer for use with \f[CR]AT&T\f[]
+.IR \%man\~pages .
This command exists only for compatibility; don't use it.
-See the groff info manual for more.
+.
+See the
+.I groff
+info manual for more.
.
.TP
.BI ".UC [" version ]
-Alter the footer for use with BSD manpages.
+Alter the footer for use with \f[CR]BSD\f[]
+.IR \%man\~pages .
This command exists only for compatibility; don't use it.
-See the groff info manual for more.
+.
+See the
+.I groff
+info manual for more.
.
.TP
.B ".PT"
Print the header string.
+.
Redefine this macro to get control of the header.
.
.TP
.B ".BT"
Print the footer string.
+.
Redefine this macro to get control of the footer.
.
.PP
@@ -564,11 +673,13 @@ The `trademark' sign.
.TQ
.B \e*(rq
Left and right quote.
+.
This is equal to `\e(lq' and `\e(rq', respectively.
.
.TP
.B \e*(HF
The typeface used to print headings and subheadings.
+.
The default is `B'.
.
.PP
@@ -576,8 +687,9 @@ If a preprocessor like
.B @g@tbl
or
.B @g@eqn
-is needed, it has become usage to make the first line of the man page look
-like this:
+is needed, it has become usage to make the first line of the
+.I \%man\~page
+look like this:
.PP
.RS
.BI .\e"\ word
@@ -636,22 +748,27 @@ requests, one can, in principle, supplement the functionality of the
macros with individual
.I groff
requests where necessary.
-See the groff info pages for a complete reference of all requests.
+.
+See the
+.I groff
+info pages for a complete reference of all requests.
.
.PP
.BR @g@tbl (@MAN1EXT@),
.BR @g@eqn (@MAN1EXT@),
.BR @g@refer (@MAN1EXT@),
-.BR man (1)
+.BR man (1),
+.BR man (7),
.
.
.\" -----------------------------------------------------------------
.
.SH AUTHOR
.
-This manual page was originally written for the Debian GNU/Linux system by
-Susan G. Kleinmann <sgk@debian.org>, corrected and updated by Werner Lemberg
-<wl@gnu.org>, and is now part of the GNU troff distribution.
+This manual page was originally written for the Debian GNU/Linux
+system by Susan G. Kleinmann <sgk@debian.org>, corrected and updated
+by Werner Lemberg <wl@gnu.org>, and is now part of the GNU troff
+distribution.
.
.\" Local Variables:
.\" mode: nroff
diff --git a/contrib/groff/tmac/groff_mdoc.man b/contrib/groff/tmac/groff_mdoc.man
index 1219f89..004d784 100644
--- a/contrib/groff/tmac/groff_mdoc.man
+++ b/contrib/groff/tmac/groff_mdoc.man
@@ -19,10 +19,8 @@
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
@@ -46,7 +44,7 @@
.\" for an already extremely slow package.
.\"
.
-.Dd July 8, 2004
+.Dd August 28, 2005
.Os
.Dt GROFF_MDOC 7
.
@@ -865,7 +863,7 @@ the release ID.
.It NetBSD
0.8, 0.8a, 0.9, 0.9a, 1.0, 1.0a, 1.1, 1.2, 1.2a, 1.2b, 1.2c, 1.2d, 1.2e,
1.3, 1.3a, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.6, 1.6.1,
-1.6.2, 2.0, 2.1
+1.6.2, 2.0, 2.0.1, 2.0.2, 2.1
.It FreeBSD
1.0, 1.1, 1.1.5, 1.1.5.1, 2.0, 2.0.5, 2.1, 2.1.5, 2.1.6, 2.1.7, 2.2, 2.2.1,
2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 4.0, 4.1,
@@ -917,7 +915,10 @@ unbreakable space:
.Pp
.Dl .Dd January 25, 2001
.Pp
-Otherwise, the current date is used, ignoring the parameters.
+The month's name shall not be abbreviated.
+.Pp
+With any other number of arguments, the current date is used, ignoring
+the parameters.
.Pp
This macro is neither callable nor parsed.
.El
@@ -1851,7 +1852,7 @@ parenthesis.
.It Li ".Op word1 word2"
.Op word1 word2
.It Li ".Li .Op Oo Ao option Ac Oc ..."
-.Li .Op Oo Ao options Ac Oc ...
+.Li .Op Oo Ao option Ac Oc ...
.El
.Pp
Here a typical example of the
@@ -2900,10 +2901,13 @@ outlined historically in this section.
.
.It Li ".Sh AUTHORS"
Credits should be placed here.
-The
+Use the
.Ql .An
-macro should be used to specify the name(s) of the person(s).
-.
+macro for names and the
+.Ql .Aq
+macro for e-mail addresses within optional contact information.
+Explicitly indicate whether the person authored the initial manual page
+or the software or whatever the person is being credited for.
.It Li ".Sh BUGS"
Blatant problems with the topic go here.
.El
diff --git a/contrib/groff/tmac/groff_ms.man b/contrib/groff/tmac/groff_ms.man
index 5b3e941..258670f 100644
--- a/contrib/groff/tmac/groff_ms.man
+++ b/contrib/groff/tmac/groff_ms.man
@@ -1,6 +1,7 @@
'\" t
.ig
-Copyright (C) 1989-1995, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1989-1995, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -17,10 +18,22 @@ versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
..
+.
+.do nr groff_ms_C \n[.C]
+.cp 0
+.
.TH GROFF_MS @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
+.
+.
+.
.SH NAME
+.
groff_ms \- groff ms macros
+.
+.
+.
.SH SYNOPSIS
+.
.B groff
.B \-ms
[
@@ -38,8 +51,11 @@ groff_ms \- groff ms macros
[
.IR files .\|.\|.\&
]
-.\" -----
+.
+.
+.
.SH DESCRIPTION
+.
This manual page describes the GNU version of the
.I ms
macros,
@@ -60,8 +76,11 @@ The
.I ms
macros are suitable for reports, letters, books, and
technical documentation.
-.\" -----
+.
+.
+.
.SH USAGE
+.
The
.I ms
macro package expects files to have
@@ -70,6 +89,7 @@ The simplest documents can begin with a paragraph macro
and consist of text separated by paragraph macros
or even blank lines.
Longer documents have a structure as follows:
+.
.TP
.B "Document type"
If you use the
@@ -84,6 +104,7 @@ Other document formats found in AT&T
are specific to AT&T
or Berkeley, and are not supported in
.IR "groff ms" .
+.
.TP
.B "Format and layout"
By setting number registers,
@@ -92,6 +113,7 @@ margins, spacing, headers and footers, and footnotes.
See
.I "Document control registers"
below for more details.
+.
.TP
.B "Cover page"
A cover page consists of a title,
@@ -100,18 +122,22 @@ an abstract, and the date.
See
.I "Cover page macros"
below for more details.
+.
.TP
.B "Body"
Following the cover page is your document.
It consists of paragraphs, headings, and lists.
+.
.TP
.B "Table of contents"
Longer documents usually include a table of contents,
which you can add by placing the
.B TC
macro at the end of your document.
-.\" -----
+.
+.
.SS "Document control registers"
+.
The following table lists the document control
number registers.
For the sake of consistency,
@@ -119,8 +145,9 @@ set registers related to margins at the beginning of your document,
or just after the
.B RP
macro.
+.
.LP
-.ne 9
+.ne 12
.B Margin settings
.RS
.na
@@ -149,8 +176,9 @@ T} next page 1i
_
.TE
.RE
+.
.LP
-.ne 7
+.ne 12
.B Text settings
.RS
.TS
@@ -164,11 +192,22 @@ T} next para. 10p
VS T{
Line spacing (leading)
T} next para. 12p
+PSINCR T{
+Point size increment
+for section headings of
+increasing importance
+T} next heading 1p
+GROWPS T{
+Heading level
+beyond which PSINCR
+is ignored
+T} next heading 0
_
.TE
.RE
+.
.LP
-.ne 7
+.ne 11
.B Paragraph settings
.RS
.TS
@@ -185,9 +224,18 @@ T} next para. 0.3v
QI T{
Quoted paragraph indent
T} next para. 5n
+PORPHANS T{
+Number of initial lines
+to be kept together
+T} next para. 1
+HORPHANS T{
+Number of initial lines
+to be kept with heading
+T} next heading 1
_
.TE
.RE
+.
.LP
.ne 7
.B Footnote settings
@@ -197,12 +245,16 @@ cb cb cb cb
afCW l l l .
Reg. Definition Effective Default
_
-FL Footnote length next footnote LL*5/6
+FL Footnote length next footnote \[rs]n[LL]*5/6
FI Footnote indent next footnote 2n
FF Footnote format next footnote 0
+FPS Point size next footnote \[rs]n[PS]-2
+FVS Vert. spacing next footnote \[rs]n[FPS]+2
+FPD Para. spacing next footnote \[rs]n[PD]/2
_
.TE
.RE
+.
.LP
.ne 6
.B Other settings
@@ -219,12 +271,15 @@ _
.TE
.ad
.RE
-.\" -----
+.
+.
.SS "Cover page macros"
+.
Use the following macros to create a cover page for your document
in the order shown.
+.
.TP
-.B \&.RP [no]
+.B .RP [no]
Specifies the report format for your document.
The report format creates a separate cover page.
With no
@@ -233,6 +288,7 @@ macro,
.I groff
prints a subset of the
cover page on page\~1 of your document.
+.
.IP
If you use the optional
.B no
@@ -242,45 +298,52 @@ prints a title page but
does not repeat any of the title page information
(title, author, abstract, etc.\&)
on page\~1 of the document.
+.
.TP
-.B \&.P1
+.B .P1
(P-one) Prints the header on page\~1.
The default is to suppress the header.
+.
.TP
-.BI "\&.DA [" xxx ]
+.BI ".DA [" xxx ]
(optional) Print the current date,
or the arguments to the macro if any,
on the title page (if specified)
and in the footers.
This is the default for
.IR nroff .
+.
.TP
-.BI "\&.ND [" xxx ]
+.BI ".ND [" xxx ]
(optional) Print the current date,
or the arguments to the macro if any,
on the title page (if specified)
but not in the footers.
This is the default for
.IR troff .
+.
.TP
-.B \&.TL
+.B .TL
Specifies the document title.
.I Groff
collects text following the
.B TL
macro into the title, until reaching the author name or abstract.
+.
.TP
-.B \&.AU
+.B .AU
Specifies the author's name.
You can specify multiple authors by using an
.B AU
macro for each author.
+.
.TP
-.B \&.AI
+.B .AI
Specifies the author's institution.
You can specify multiple institutions.
+.
.TP
-.B \&.AB [no]
+.B .AB [no]
Begins the abstract.
The default is to print the word
.BR ABSTRACT ,
@@ -288,17 +351,21 @@ centered and in italics, above the text of the abstract.
The option
.B no
suppresses this heading.
+.
.TP
-.B \&.AE
+.B .AE
End the abstract.
-.\" -----
+.
+.
.SS Paragraphs
+.
Use the
.B PP
macro to create indented paragraphs,
and the
.B LP
macro to create paragraphs with no initial indent.
+.
.PP
The
.B QP
@@ -308,6 +375,7 @@ The effect is identical to the HTML
element.
The next paragraph or heading
returns margins to normal.
+.
.PP
The
.B XP
@@ -317,18 +385,68 @@ the left margin,
and subsequent lines are indented
(the opposite of
.BR PP ).
+.
+.PP
+For each of the above paragraph types,
+and also for any list entry introduced by the
+.B IP
+macro
+(described later),
+the document control register
+.BR PORPHANS ,
+sets the
+.I minimum
+number of lines which must be printed,
+after the start of the paragraph,
+and before any page break occurs.
+If there is insufficient space remaining on the current page
+to accommodate this number of lines,
+then a page break is forced
+.I before
+the first line of the paragraph is printed.
+.
+.PP
+Similarly,
+when a section heading
+(see subsection
+.I Headings
+below)
+preceeds any of these paragraph types,
+the
+.B HORPHANS
+document control register specifies the
+.I minimum
+number of lines of the paragraph
+which must be kept on the same page as the heading.
+If insufficient space remains on the current page
+to accommodate the heading and this number of lines of paragraph text,
+then a page break is forced
+.I before
+the heading is printed.
+.
+.
.SS Headings
+.
Use headings to create a hierarchical structure
for your document.
-The
+By default,
+the
.I ms
macros print headings in
.B bold
using the same font family and point size as the body text.
+For output devices which support scalable fonts,
+this behaviour may be modified,
+by defining the document control registers,
+.B GROWPS
+and
+.BR PSINCR .
+.
.PP
The following heading macros are available:
+.
.TP
-.BI \&.NH \0xx
+.BI .NH\ xx
Numbered heading.
The argument
.I xx
@@ -344,17 +462,166 @@ after
.BR ".NH\ 1" ,
.I groff
prints a warning on standard error.
+.
+.IP
+If the
+.B GROWPS
+register is set to a value
+greater than the level of the heading,
+then the point size of the heading will be increased by
+.B PSINCR
+units over the text size specified by the
+.B PS
+register,
+for each level by which the heading level is less than
+the value of
+.BR GROWPS .
+For example,
+the sequence:
+.
+.RS
+.ne 12
+.nf
+.IP
+\&.nr PS 10
+\&.nr GROWPS 3
+\&.nr PSINCR 1.5p
+\&.
+\&.NH 1
+Top Level Heading
+\&.
+\&.NH 2
+Second Level Heading
+\&.
+\&.NH 3
+Third Level Heading
+.fi
+.RE
+.
+.IP
+will cause
+.RI \*(lq 1.\ Top\ Level\ Heading \*(rq
+to be printed in 13pt
+.B bold
+text, followed by
+.RI \*(lq 1.1.\ Second\ Level\ Heading \*(rq
+in 11.5pt
+.B bold
+text, while
+.RI \*(lq 1.1.1.\ Third\ Level\ Heading \*(rq,
+and all more deeply nested heading levels,
+will remain in the 10pt
+.B bold
+text which is specified by the
+.B PS
+register.
+.
+.IP
+Note that the value stored in
+.B PSINCR
+is interpreted in
+.I groff
+basic units;
+the
+.I p
+scaling factor should be employed,
+when assigning a value specified in points.
+.
+.IP
+After invoking
+.BR .NH ,
+the assigned heading number is available in the strings
+.B SN-DOT
+(exactly as it appears in the formatted heading),
+and
+.B SN-NO-DOT
+(with its final period omitted).
+The string
+.B SN
+is also defined,
+as an alias for
+.BR SN-DOT ;
+if preferred,
+the user may redefine it as an alias for
+.BR SN-NO-DOT ,
+'ne 10
+by including the initialisation:
+.
+.RS
+.nf
+.IP
+\&.ds SN-NO-DOT
+\&.als SN SN-NO-DOT
+.fi
+.RE
+.
+.IP
+.I before
+the first use of
+.BR .NH ,
+or simply:
+.
+.RS
+.nf
+.IP
+\&.als SN SN-NO-DOT
+.fi
+.RE
+.
+.IP
+.I after
+the first use of
+.BR .NH .
+.
.TP
-.B \&.SH
+.BI .SH\ [ xx ]
Unnumbered subheading.
-.\" -----
+The use of the optional
+.I xx
+argument is a GNU extension,
+which adjusts the point size of the unnumbered subheading
+to match that of a numbered heading,
+introduced using
+.BI .NH\ xx
+with the same value of
+.IR xx .
+For example,
+given the same settings for
+.BR PS ,
+.B GROWPS
+and
+.BR PSINCR ,
+as used in the preceeding
+.B .NH
+example,
+the sequence:
+.
+.RS
+.ne
+.nf
+.IP
+\&.SH 2
+An Unnumbered Subheading
+.fi
+.RE
+.
+.IP
+will print
+.RI \*(lq "An Unnumbered Subheading" \*(rq
+in 11.5pt
+.B bold
+text.
+.
+.
.SS Highlighting
+.
The
.I ms
macros provide a variety of methods to highlight
or emphasize text:
+.
.TP
-.BI "\&.B [" txt " [" post " [" pre ]]]
+.B ".B [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]"
Sets its first argument in
.BR "bold type" .
If you specify a second argument,
@@ -370,86 +637,102 @@ in the previous font
the first argument.
For example,
.RS
+.
.IP
\&.B foo ) (
.RE
+.
.IP
prints
.RB ( foo ).
+.
.IP
If you give this macro no arguments,
.I groff
prints all text following in bold until
the next highlighting, paragraph, or heading macro.
+.
.TP
-.BI "\&.R [" txt " [" post " [" pre ]]]
+.B ".R [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]"
Sets its first argument in
roman (or regular) type.
It operates similarly to the
.B B
macro otherwise.
+.
.TP
-.BI "\&.I [" txt " [" post " [" pre ]]]
+.B ".I [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]"
Sets its first argument in
.IR "italic type" .
It operates similarly to the
.B B
macro otherwise.
+.
.TP
-.BI "\&.CW [" txt " [" post " [" pre ]]]
+.B ".CW [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]"
Sets its first argument in a constant width face.
It operates similarly to the
.B B
macro otherwise.
+.
.TP
-.BI "\&.BI [" txt " [" post " [" pre ]]]
+.B ".BI [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]"
Sets its first argument in bold italic type.
It operates similarly to the
.B B
macro otherwise.
+.
.TP
-.BI "\&.BX [" txt ]
+.BI ".BX [" txt ]
Prints its argument and draws a box around it.
If you want to box a string that contains spaces,
use a digit-width space (\[rs]0).
+.
.TP
-.BI "\&.UL [" txt " [" post ]]
+.BI ".UL [" txt " [" post ]]
Prints its first argument with an underline.
If you specify a second argument,
.I groff
prints it in the previous font after
the underlined text, with no intervening space.
+.
.TP
-.B \&.LG
+.B .LG
Prints all text following in larger type
(2\~points larger than the current point size) until
the next font size, highlighting, paragraph, or heading macro.
You can specify this macro multiple times
to enlarge the point size as needed.
+.
.TP
-.B \&.SM
+.B .SM
Prints all text following in
smaller type
(2\~points smaller than the current point size) until
the next type size, highlighting, paragraph, or heading macro.
You can specify this macro multiple times
to reduce the point size as needed.
+.
.TP
-.B \&.NL
+.B .NL
Prints all text following in
the normal point size
(that is, the value of the
.B PS
register).
+.
.TP
.BI \[rs]*{ text \[rs]*}
Print the enclosed
.I text
as a superscript.
-.\" -----
+.
+.
.SS Indents
+.
You may need to indent sections of text.
A typical use for indents is to create nested lists and sublists.
+.
.PP
Use the
.B RS
@@ -459,20 +742,25 @@ macros to start and end a section of indented text, respectively.
The
.B PI
register controls the amount of indent.
+.
.PP
You can nest indented sections as deeply as needed by
using multiple, nested pairs of
.B RS
and
.BR RE .
-.\" -----
+.
+.
.SS Lists
+.
The
.B IP
macro handles duties for all lists.
Its syntax is as follows:
+.
.TP
.BI ".IP [" marker " [" width ]]
+.
.IP
The
.I marker
@@ -481,6 +769,7 @@ is usually a bullet character
for unordered lists,
a number (or auto-incrementing number register) for numbered lists,
or a word or phrase for indented (glossary-style) lists.
+.
.IP
The
.I width
@@ -490,7 +779,10 @@ list items in the document until specified again.
.\" -----
.br
.ne 15
+.
+.
.SS "Tab stops"
+.
Use the
.B ta
request to set tab stops as needed.
@@ -500,8 +792,10 @@ macro to reset tabs to the default (every 5n).
You can redefine the
.B TA
macro to create a different set of default tab stops.
-.\" -----
+.
+.
.SS "Displays and keeps"
+.
Use displays to show text-based examples or figures
(such as code listings).
Displays turn off filling, so lines of code can be
@@ -535,10 +829,26 @@ _
.TE
.RE
.ad
+.
.LP
Use the
.B DE
macro to end any display type.
+The macros
+.B Ds
+and
+.B De
+were formerly provided as aliases for
+.B DS
+and
+.BR DE ,
+respectively, but they have been removed, and should no longer be used.
+X11 documents which actually use
+.B Ds
+and
+.B De
+always load a specific macro file from the X11 distribution (macros.t)
+which provides proper definitions for the two macros.
.PP
To
.I keep
@@ -556,6 +866,7 @@ macro begins a block of text to be kept on a single page,
and the
.B KE
macro ends the block.
+.
.PP
You can specify a
.I "floating keep"
@@ -577,8 +888,23 @@ request or by reaching the end of the page,
prints the floating keep at the top of the new page.
This is useful for printing large graphics or tables
that do not need to appear exactly where specified.
-.\" -----
+.
+.PP
+The macros
+.B B1
+and
+.B B2
+can be used to enclose a text within a box;
+.B .B1
+begins the box, and
+.B .B2
+ends it.
+Text in the box is automatically placed in a diversion
+(keep).
+.
+.
.SS "Tables, figures, equations, and references"
+.
The
.I -ms
macros support the standard
@@ -591,8 +917,9 @@ and
.IR refer .
Mark text meant for preprocessors by enclosing it
in pairs of tags as follows:
+.
.TP
-.BR "\&.TS [H]" " and " \&.TE
+.BR ".TS [H]" " and " .TE
Denotes a table, to be processed by the
.I tbl
preprocessor.
@@ -609,8 +936,9 @@ prints the header at the beginning of the table;
if the table runs onto another page,
.I groff
prints the header on the next page as well.
+.
.TP
-.BR \&.PS " and " \&.PE
+.BR .PS " and " .PE
Denotes a graphic, to be processed by the
.I pic
preprocessor.
@@ -622,8 +950,9 @@ AT&T
manual available on the Web as a reference,
or by using a graphics program such as
.IR xfig .
+.
.TP
-.BR "\&.EQ [\fI\,align\/\fP]" " and " \&.EN
+.BR ".EQ [\fI\,align\/\fP]" " and " .EN
Denotes an equation, to be processed by the
.I eqn
preprocessor.
@@ -636,8 +965,9 @@ or\~\c
.B I
to center (the default), left-justify, or indent
the equation.
+.
.TP
-.BR \&.[ " and " \&.]
+.BR .[ " and " .]
Denotes a reference, to be processed by the
.I refer
preprocessor.
@@ -646,8 +976,10 @@ The GNU
manual page provides a comprehensive reference
to the preprocessor and the format of the
bibliographic database.
-.\" -----
+.
+.
.SS Footnotes
+.
The
.I ms
macros provide a flexible footnote system.
@@ -659,6 +991,7 @@ enclosed by
and
.B FE
macros.
+.
.PP
You can specify symbolic footnotes
by placing the mark character (such as
@@ -670,6 +1003,7 @@ enclosed by
and
.B FE
macros.
+.
.PP
You can control how
.I groff
@@ -678,19 +1012,24 @@ prints footnote numbers by changing the value of the
register as follows:
.RS
.ne 7
+.
.TP
0
Prints the footnote number as a superscript; indents the footnote (default).
+.
.TP
1
Prints the number followed by a period (like\~1.\&)
and indents the footnote.
+.
.TP
2
Like\~1, without an indent.
+.
.TP
3
Like\~1, but prints the footnote number as a hanging paragraph.
+.
.LP
.RE
You can use footnotes safely within keeps and displays,
@@ -711,9 +1050,12 @@ and the occurrences of
.B .FS
are in the same order as the corresponding occurrences of
.BR \[rs]** .
-.\" -----
+.
+.
.SS "Headers and footers"
+.
There are two ways to define headers and footers:
+.
.IP \(bu 3n
Use the strings
.BR LH ,
@@ -728,6 +1070,7 @@ and
to set the left, center, and right footers.
This works best for documents that do not distinguish
between odd and even pages.
+.
.IP \(bu
Use the
.B OH
@@ -741,14 +1084,18 @@ macros to define footers for the odd and even pages.
This is more flexible than defining the individual strings.
The syntax for these macros is as follows:
.RS
+.
.IP
-.BI "\&.OH '" left ' center ' right '
+.B ".OH '\fIleft\fP'\fIcenter\fP'\fIright\fP'"
.RE
+.
.IP
You can replace the quote (') marks with any character not
appearing in the header or footer text.
-.\" -----
+.
+.
.SS Margins
+.
You control margins using a set of number registers.
The following table lists the register names and defaults:
.RS
@@ -778,13 +1125,16 @@ _
.TE
.RE
.ad
+.
.PP
Note that there is no right margin setting.
The combination of page offset and line length
provide the information necessary to
derive the right margin.
-.\" -----
+.
+.
.SS "Multiple columns"
+.
The
.I ms
macros can set text in as many columns as will reasonably
@@ -795,14 +1145,17 @@ However, if the current mode is single-column, starting a multi-column
mode does
.I not
force a page break.
+.
.TP
-.B \&.1C
+.B .1C
Single-column mode.
+.
.TP
-.B \&.2C
+.B .2C
Two-column mode.
+.
.TP
-.BI "\&.MC [" width " [" gutter ]]
+.BI ".MC [" width " [" gutter ]]
Multi-column mode.
If you specify no arguments, it is equivalent to the
.B 2C
@@ -815,8 +1168,10 @@ is the space between columns.
The
.B MINGW
number register is the default gutter width.
-.\" -----
+.
+.
.SS "Creating a table of contents"
+.
Wrap text that you want to appear in the
table of contents in
.B XS
@@ -829,6 +1184,7 @@ macro to print the table of contents at the end of the document,
resetting the page number to\~\c
.B i
(Roman numeral\~1).
+.
.PP
You can manually create a table of contents
by specifying a page number as the first argument to
@@ -838,6 +1194,7 @@ Add subsequent entries using the
macro.
For example:
.RS
+.
.PP
.ne 8
.nf
@@ -851,11 +1208,13 @@ Details of Galactic Formation
\&.XE
.fi
.RE
+.
.LP
Use the
.B PX
macro to print a manually-generated table of contents
without resetting the page number.
+.
.PP
If you give the argument
.B no
@@ -868,8 +1227,35 @@ suppresses printing the title
specified by the
.B \[rs]*[TOC]
string.
-.\" -----
+.
+.
+.SS "Fractional point sizes"
+.
+Traditionally, the
+.I ms
+macros only support integer values for the document's font size and
+vertical spacing.
+To overcome this restriction, values larger than or equal to 1000 are taken
+as fractional values, multiplied by 1000.
+For example, `.nr\~PS\~10250' sets the font size to 10.25 points.
+.
+.LP
+The following four registers accept fractional point sizes:
+.BR PS ,
+.BR VS ,
+.BR FPS ,
+and
+.BR FVS .
+.
+.LP
+Due to backwards compatibility, the value of
+.B VS
+must be smaller than 40000 (this is 40.0 points).
+.
+.
+.
.SH "DIFFERENCES FROM troff ms"
+.
The
.I "groff ms"
macros are a complete re-implementation,
@@ -879,6 +1265,7 @@ Since they take advantage of the extended features in
they cannot be used with AT&T
.IR troff .
Other differences include:
+.
.IP \(bu 3n
The internals of
.I "groff ms"
@@ -888,13 +1275,16 @@ Documents that depend upon implementation details of Unix
.I ms
may not format properly with
.IR "groff ms" .
+.
.IP \(bu
The error-handling policy of
.I "groff ms"
is to detect and report errors,
rather than silently to ignore them.
+.
.IP \(bu
Bell Labs localisms are not implemented.
+.
.IP \(bu
Berkeley localisms, in particular the
.B TM
@@ -902,19 +1292,24 @@ and
.B CT
macros,
are not implemented.
+.
.IP \(bu
.I "Groff ms"
-does not work in compatibility mode (e.g.\& with the
+does not work in compatibility mode (e.g., with the
.B \-C
option).
+.
.IP \(bu
There is no support for typewriter-like devices.
+.
.IP \(bu
.I "Groff ms"
does not provide cut marks.
+.
.IP \(bu
Multiple line spacing is not supported
(use a larger vertical spacing instead).
+.
.IP \(bu
Some Unix
.I ms
@@ -923,11 +1318,13 @@ documentation says that the
and
.B GW
number registers can be used to control the column width and
-gutter width respectively.
-These number registers are not used in groff ms.
+gutter width, respectively.
+These number registers are not used in
+.IR "groff ms" .
+.
.IP \(bu
Macros that cause a reset
-(paragraphs, headings, etc.)
+(paragraphs, headings, etc.\&)
may change the indent.
Macros that change the indent do not increment or decrement
the indent, but rather set it absolutely.
@@ -940,6 +1337,7 @@ request but instead the
and
.B RE
macros.
+.
.IP \(bu
The number register
.B GS
@@ -955,9 +1353,26 @@ they are being formatted with Unix
or
.I "groff ms"
should use this number register.
+.
+.IP \(bu
+To make
+.I "groff ms"
+use the default page offset (which also specifies the left margin),
+the
+.B PO
+number register must stay undefined until the first
+.B ms
+macro is evaluated.
+This implies that
+.B PO
+should not be used early in the document, unless it is changed also:
+Remember that accessing an undefined register automatically defines it.
.br
-.ne 22
+.ne 23
+.
+.
.SS Strings
+.
You can redefine the following strings to adapt the
.I "groff ms"
macros to languages other than English:
@@ -984,17 +1399,33 @@ MONTH11 November
MONTH12 December
_
.TE
+.
.PP
The
.B \[rs]*-
string produces an em dash \[em] like this.
-.\" -----
+.
+.PP
+Use
+.B \[rs]*Q
+and
+.B \[rs]*U
+to get a left and right typographer's quote,
+respectively, in
+.I troff
+(and plain quotes in
+.IR nroff ).
+
+.
+.
.SS Text Settings
+.
The
.B FAM
string sets the default font family.
If this string is undefined at initialization,
it is set to Times.
+.
.LP
The point size, vertical spacing, and inter-paragraph spacing for footnotes
are controlled by the number registers
@@ -1006,10 +1437,11 @@ at initialization these are set to
.BR \[rs]n(PS-2 ,
.BR \[rs]n[FPS]+2 ,
and
-.B \[rs]n(PD/2
+.BR \[rs]n(PD/2 ,
respectively.
If any of these registers are defined before initialization,
the initialization macro does not change them.
+.
.LP
The hyphenation flags (as set by the
.B hy
@@ -1017,6 +1449,7 @@ request) are set from the
.B HY
register;
the default is\~14.
+.
.PP
Improved accent marks
(as originally defined in Berkeley's
@@ -1031,52 +1464,73 @@ directly after the character.
For example,
.B n\[rs]*~
produces an n with a tilde over it.
-.\" -----
+.
+.
+.
.SH "NAMING CONVENTIONS"
+.
+.
.LP
The following conventions are used for names of macros, strings and
number registers.
External names available to documents that use the
.I "groff ms"
macros contain only uppercase letters and digits.
+.
.LP
Internally the macros are divided into modules;
naming conventions are as follows:
+.
.IP \(bu 3n
Names used only within one module are of the form
.IB \%module * name\fR.
+.
.IP \(bu
Names used outside the module in which they are defined are of the form
.IB \%module @ name\fR.
+.
.IP \(bu
Names associated with a particular environment are of the form
-.IB \%environment : name;
+.IB \%environment : name\fR;
these are used only within the
.B par
module.
+.
.IP \(bu
.I name
does not have a module prefix.
+.
.IP \(bu
Constructed names used to implement arrays are of the form
.IB \%array ! index\fR.
+.
.PP
Thus the groff ms macros reserve the following names:
+.
.IP \(bu 3n
Names containing the characters
.BR * ,
.BR @ ,
and\~\c
.BR : .
+.
.IP \(bu
Names containing only uppercase letters and digits.
+.
+.
+.
.SH FILES
+.
.B @MACRODIR@/ms.tmac
(a wrapper file for
.BR s.tmac )
.br
.B @MACRODIR@/s.tmac
+.
+.
+.
.SH "SEE ALSO"
+.
.BR groff (@MAN1EXT@),
.BR @g@troff (@MAN1EXT@),
.BR @g@tbl (@MAN1EXT@),
@@ -1085,11 +1539,18 @@ Names containing only uppercase letters and digits.
.BR @g@refer (@MAN1EXT@),
.I Groff: The GNU Implementation of troff
by Trent Fisher and Werner Lemberg.
+.
+.
+.
.SH AUTHOR
+.
Original manual page by James Clark
.IR "et al" ;
rewritten by Larry Kollar
(\fIlkollar@despammed.com\fR).
+.
+.cp \n[groff_ms_C]
+.
.\" Local Variables:
.\" mode: nroff
.\" End:
diff --git a/contrib/groff/tmac/groff_trace.man b/contrib/groff/tmac/groff_trace.man
index f7f1ae8..bc1c98c 100644
--- a/contrib/groff/tmac/groff_trace.man
+++ b/contrib/groff/tmac/groff_trace.man
@@ -36,6 +36,9 @@ FDL in the main directory of the groff source package.
.\" Setup
.\" --------------------------------------------------------------------
.
+.do nr groff_trace_C \n[.C]
+.cp 0
+.
.mso www.tmac
.
.if n \{\
@@ -540,6 +543,7 @@ groff
.BR info (1)
file.
.
+.cp \n[groff_trace_C]
.
.\" Local Variables:
.\" mode: nroff
diff --git a/contrib/groff/tmac/groff_www.man b/contrib/groff/tmac/groff_www.man
index d659777..e4b3f52 100644
--- a/contrib/groff/tmac/groff_www.man
+++ b/contrib/groff/tmac/groff_www.man
@@ -1,5 +1,6 @@
.TH GROFF_WWW @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
-.\" Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+.\" Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+.\" Free Software Foundation, Inc.
.\" Written by Gaius Mulley (gaius@glam.ac.uk)
.\"
.\" This file is part of groff.
@@ -16,11 +17,14 @@
.\"
.\" 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.
+.\" Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA.
.\"
.\" user level guide to using the -mwww macroset
.\"
.
+.do nr groff_www_C \n[.C]
+.cp 0
+.
.do mso www.tmac
.
.\" we need the .LK here as we use it in the middle as an example --
@@ -32,6 +36,8 @@
.SH NAME
groff_www \- groff macros for authoring web pages
.HR
+.
+.
.SH SYNOPSIS
.B "groff \-mwww"
[ options ]
@@ -42,7 +48,7 @@ file ...
This manual page describes the GNU \-mwww macro package, which is part of
the groff document formatting system.
The manual page is very a basic guide, and the html device driver
-.RB ( grohtml )
+.RB ( \%grohtml )
has been completely rewritten but still remains as in an alpha state.
It has been included into the distribution so that a lot of people have a
chance to test it.
@@ -52,12 +58,13 @@ file) if you use
.BR \-Thtml .
.PP
To see the hyperlinks in action, please format this man page with the
-.B grohtml
+.B \%grohtml
device.
.PP
Here is a summary of the functions found in this macro set.
.ta 2iL
.nf
+\&.JOBNAME split output into multiple files
\&.HX automatic heading level cut off;
$1 point for sections/headers
\&.BCL specify colours on a web page
@@ -77,12 +84,19 @@ Here is a summary of the functions found in this macro set.
\&.HR produce a horizontal rule
\&.NHR suppress automatic generation of rules.
\&.HTL only generate HTML title
+\&.HEAD add data to <head> block
\&.ULS unorder list begin
\&.ULE unorder list end
+\&.OLS ordered list begin
+\&.OLE ordered list end
+\&.DLS definition list begin
+\&.DLE definition list end
\&.LI insert a list item
\&.DC generate a drop capital
\&.HTML pass an html raw request to the
device driver
+\&.CDS code example begin
+\&.CDE code example end
.fi
.PP
Output of the
@@ -96,10 +110,19 @@ preprocessors is acceptable as input.
.
.SH REQUESTS
.TP
-.B HX
+.B .JOBNAME filename
+Split output into multiple HTML files.
+A file is split whenever a .SH or .NH\ 1 is encountered.
+Its argument is the file stem name for future output files.
+This option is equivalent to
+.BR \%grohtml 's
+.B \-j
+option.
+.TP
+.B .HX n
Specify the cut off depth when generating links from section headings.
For example, a parameter of\~2 would cause
-.B grohtml
+.B \%grohtml
to generate a list of links for
.B .NH\ 1
and
@@ -115,7 +138,7 @@ Whereas
.RE
.IP
will tell
-.B grohtml
+.B \%grohtml
that no heading links should be created at all.
Another method for turning automatic headings off is by issuing the
the command line switch
@@ -124,22 +147,30 @@ to
.BR groff .
.
.TP
-.B BCL
+.B .BCL foreground background active not-visited visited
This macro takes five parameters: foreground, background, active hypertext
link, hypertext link not yet visited, and visited hypertext link colour.
.
.TP
-.B BGIMG
+.B .BGIMG imagefile
the only parameter to this macro is the background image file.
.
.TP
-.B URL
+.B .URL url [description] [after]
generates
.TAG URL
-a URL using either two or three arguments.
+a URL using either one, two or three arguments.
The first parameter is the actual URL, the second is the name of the link,
and the third is optional stuff to be printed immediately afterwards.
-Hyphenation is disabled while printing the actual URL; explicit breakpoints
+If
+.B description
+and
+.B after
+are absent then the
+.B url
+becomes the anchor text.
+Hyphenation is disabled while printing the actual URL;
+explicit breakpoints
should be inserted with the
.B \[rs]:
escape.
@@ -167,11 +198,14 @@ by:
.RE
.
.TP
-.B MTO
+.B .MTO address [description] [after]
Generate an email html reference.
The first argument is mandatory as the email address.
-The optional second argument is the text you see in your browser, and
-an optional third argument is stuff printed immediately afterwards.
+The optional second argument is the text you see in your browser
+If an empty argument is given,
+.B address
+is used instead.
+An optional third argument is stuff printed immediately afterwards.
Hyphenation is disabled while printing the actual email address.
For example,
.MTO joe@user.org "Joe User"
@@ -191,7 +225,7 @@ run with
.BR \-Thtml ).
.
.TP
-.B FTP
+.B .FTP url [description] [after]
indicates that data can be obtained via ftp.
The first argument is the url and the second is the browser text.
A third argument, similar to the macros above, is intended for stuff printed
@@ -207,7 +241,7 @@ The macro example above was specified by:
.RE
.
.TP
-.B TAG
+.B .TAG name
Generates an html name tag from its argument.
This can then be referenced using the
.URL #URL URL
@@ -232,13 +266,14 @@ a URL using either two or three arguments.
.RE
.
.TP
-.B IMG
+.B .IMG [-R|-L|-C] filename [width] [height]
Include a picture into the document.
The first argument is the horizontal location: right, left, or center
.RB ( \-R ,
.BR \-L ,
or
.BR \-C ).
+Alignment is centered by default (-C).
The second argument is the filename.
The optional third and fourth arguments are the width and height.
If the width is absent it defaults to 1\~inch.
@@ -249,7 +284,7 @@ If you are including a png image then it is advisable to use the
macro.
.
.TP
-.B PIMG
+.B .PIMG [-R|-L|-C] filename [width [height]]
Include an image in PNG format.
This macro takes exactly the same parameters as the
.B IMG
@@ -270,22 +305,58 @@ it is necessary to use the
option of groff.
.
.TP
-.B MPIMG
+.B .MPIMG [-R|-L] [-G gap] filename [width [height]]
Place a PNG image on the margin and wrap text around it.
-The first parameter is the alignment: left or right
+The first parameters are optional.
+The alignment: left or right
.RB ( \-L
or
-.BR \-R ).
-The second argument is the filename.
-The optional third and fourth arguments are the width and height.
+.BR \-R )
+specifies the margin where the picture is placed at.
+The default alignment is left
+.RB ( -L ).
+Optionally,
+.BI \-G \~gap
+can be used to arrange a gap between the picture
+and the text that wraps around it.
+The default gap width is zero.
+.br
+The first non-optional argument is the filename.
+The optional following arguments are the width and height.
If the width is absent it defaults to 1\~inch.
If the height is absent it defaults to the width.
+Example:
+.RS
+.IP
+.nf
+.ft B
+\&.MPIMG -L -G 2c foo.png 3c 1.5c
+.ft P
+.fi
+.RE
+.IP
+The height and width may also be given as percentages. The PostScript
+device calculates the width from the
+.B .l
+register and the height from the
+.B .p
+register. For example:
+.RS
+.IP
+.nf
+.ft B
+\&.MPIMG -L -G 2c foo.png 15%
+.ft P
+.fi
+.RE
.
.TP
-.B HnS
+.B .HnS n
Begin heading.
-The heading level is specified by the first parameter.
-Use this macro of your headings contain URLs.
+The numeric heading level
+.I n
+is specified by the first parameter.
+Use this macro if your headings contain URL, FTP or MTO macros.
Example:
.RS
.IP
@@ -305,52 +376,71 @@ GNU Troff
.ft P
.fi
.RE
+.IP
+In this case you might wish to
+disable automatic links to headings.
+This can be done via
+.B \-P\-l
+from the command line.
+.\" or by using a call to `.HX 0'.
+
.
.TP
-.B HnE
+.B .HnE
End heading.
.
.TP
-.B LK
+.B .LK
.TAG LK
-Force grohtml to place the automatically generated links at this position.
+Force \%grohtml to place the automatically generated links at this position.
If this manual page has been processed with
.B \-Thtml
those links can be seen right here.
.
.LK
.
-.
-.SH SECTION HEADING LINKS
-By default
-.B grohtml
-generates links to all section headings and places these at the top of the
-html document. (See
-.URL #LK LINKS
-for details of how to switch this off or alter the position).
-.
.TP
-.B HR
-Generate a full-width horizontal rule.
+.B .HR
+Generate a full-width horizontal rule for
+.BR \-Thtml .
+No effect for all other devices.
.
.TP
-.B NHR
-Suppress generation of the top and bottom rules which grohtml emits
+.B .NHR
+Suppress generation of the top and bottom rules which \%grohtml emits
by default.
.
.TP
-.B HTL
+.B .HTL
Generate an HTML title only.
This differs from the
.B TL
macro of the
.B ms
-macro package which generates both an HTML title and an H1 heading.
+macro package which generates both an HTML title and an <H1> heading.
Use it to provide an HTML title as search engine fodder but a graphic title
in the document.
+The macro terminates when a space or break is seen (.sp, .br).
+.
+.TP
+.B .HEAD
+Add arbitrary HTML data to the <head> block.
+Ignored if not processed with
+.BR \-Thtml .
+Example:
+.RS
+.IP
+.nf
+.B ".HEAD" "\[dq]<link \[rs]"
+.B " rel=\[dq]\[dq]icon\[dq]\[dq] \[rs]"
+.B " type=\[dq]\[dq]image/png\[dq]\[dq] \[rs]"
+.B " href=\[dq]\[dq]http://foo.org//bar.png\[dq]\[dq]/>\[dq]"
+.fi
+.ft P
+.RE
.
.TP
-.B HTML
+.B .HTML
All text after this macro is treated as raw html.
If the document is processed without
.B \-Thtml
@@ -373,12 +463,30 @@ macro is defined as
.RE
.
.TP
-.B DC
+.B .DC l text [color]
Produce a drop capital.
The first parameter is the letter to be dropped and enlarged, the second
-parameter is the ajoining text whose height the first letter should not
-exceed.
+parameter
+.B text
+is the ajoining text whose height the first letter should not exceed.
The optional third parameter is the color of the dropped letter.
+It defaults to black.
+.
+.TP
+.B ".CDS"
+Start displaying a code section in constant width font.
+.
+.TP
+.B ".CDE"
+End code display
+.
+.SH SECTION HEADING LINKS
+By default
+.B \%grohtml
+generates links to all section headings and places these at the top of the
+html document. (See
+.URL #LK LINKS
+for details of how to switch this off or alter the position).
.
.
.SH LIMITATIONS OF GROHTML
@@ -394,12 +502,12 @@ information is currently rendered as a PNG image.
.SH "SEE ALSO"
.BR groff (@MAN1EXT@),
.BR @g@troff (@MAN1EXT@)
-.BR grohtml (@MAN1EXT@),
+.BR \%grohtml (@MAN1EXT@),
.BR netpbm (1)
.
.
.SH AUTHOR
-.B grohtml
+.B \%grohtml
was written by
.MTO gaius@glam.ac.uk "Gaius Mulley"
.
@@ -410,6 +518,8 @@ Report bugs to the
Include a complete, self-contained example that will allow the bug to be
reproduced, and say which version of groff you are using.
.
+.cp \n[groff_www_C]
+.
.\" Local Variables:
.\" mode: nroff
.\" End:
diff --git a/contrib/groff/tmac/html.tmac b/contrib/groff/tmac/html.tmac
index 7843a3c..9289f82 100644
--- a/contrib/groff/tmac/html.tmac
+++ b/contrib/groff/tmac/html.tmac
@@ -42,6 +42,7 @@
.if !c\[arrowvertbt] .tr \[arrowvertbt]
.if !c\[arrowvertex] .tr \[arrowvertex]
.if !c\[barex] .tr \[barex]
+.if !c\[sqrtex] .tr \[sqrtex]
.
.\" now for the color definitions
.\"
diff --git a/contrib/groff/tmac/latin5.tmac b/contrib/groff/tmac/latin5.tmac
new file mode 100644
index 0000000..8400df4
--- /dev/null
+++ b/contrib/groff/tmac/latin5.tmac
@@ -0,0 +1,107 @@
+.\" latin5.tmac
+.\"
+.nr _C \n(.C
+.cp 0
+.\" 0xA1
+.trin \[char161]\[r!]
+.trin \[char162]\[ct]
+.trin \[char163]\[Po]
+.trin \[char164]\[Cs]
+.trin \[char165]\[Ye]
+.trin \[char166]\[bb]
+.trin \[char167]\[sc]
+.trin \[char168]\[ad]
+.trin \[char169]\[co]
+.trin \[char170]\[Of]
+.trin \[char171]\[Fo]
+.trin \[char172]\[tno]
+.\" The soft-hyphen character is only an input character
+.tr \[char173]\%
+.trin \[char174]\[rg]
+.trin \[char175]\[a-]
+.\" 0xB0
+.trin \[char176]\[de]
+.trin \[char177]\[t+-]
+.trin \[char178]\[S2]
+.trin \[char179]\[S3]
+.trin \[char180]\[aa]
+.trin \[char181]\[mc]
+.trin \[char182]\[ps]
+.trin \[char183]\[pc]
+.trin \[char184]\[ac]
+.trin \[char185]\[S1]
+.trin \[char186]\[Om]
+.trin \[char187]\[Fc]
+.trin \[char188]\[14]
+.trin \[char189]\[12]
+.trin \[char190]\[34]
+.trin \[char191]\[r?]
+.\" 0xC0
+.trin \[char192]\[`A]
+.trin \[char193]\['A]
+.trin \[char194]\[^A]
+.trin \[char195]\[~A]
+.trin \[char196]\[:A]
+.trin \[char197]\[oA]
+.trin \[char198]\[AE]
+.trin \[char199]\[,C]
+.trin \[char200]\[`E]
+.trin \[char201]\['E]
+.trin \[char202]\[^E]
+.trin \[char203]\[:E]
+.trin \[char204]\[`I]
+.trin \[char205]\['I]
+.trin \[char206]\[^I]
+.trin \[char207]\[:I]
+.\" 0xD0
+.trin \[char208]\[G ab]
+.trin \[char209]\[~N]
+.trin \[char210]\[`O]
+.trin \[char211]\['O]
+.trin \[char212]\[^O]
+.trin \[char213]\[~O]
+.trin \[char214]\[:O]
+.trin \[char215]\[tmu]
+.trin \[char216]\[/O]
+.trin \[char217]\[`U]
+.trin \[char218]\['U]
+.trin \[char219]\[^U]
+.trin \[char220]\[:U]
+.trin \[char221]\[I .]
+.trin \[char222]\[S ,]
+.trin \[char223]\[ss]
+.\" 0xE0
+.trin \[char224]\[`a]
+.trin \[char225]\['a]
+.trin \[char226]\[^a]
+.trin \[char227]\[~a]
+.trin \[char228]\[:a]
+.trin \[char229]\[oa]
+.trin \[char230]\[ae]
+.trin \[char231]\[,c]
+.trin \[char232]\[`e]
+.trin \[char233]\['e]
+.trin \[char234]\[^e]
+.trin \[char235]\[:e]
+.trin \[char236]\[`i]
+.trin \[char237]\['i]
+.trin \[char238]\[^i]
+.trin \[char239]\[:i]
+.\" 0xF0
+.trin \[char240]\[g ab]
+.trin \[char241]\[~n]
+.trin \[char242]\[`o]
+.trin \[char243]\['o]
+.trin \[char244]\[^o]
+.trin \[char245]\[~o]
+.trin \[char246]\[:o]
+.trin \[char247]\[tdi]
+.trin \[char248]\[/o]
+.trin \[char249]\[`u]
+.trin \[char250]\['u]
+.trin \[char251]\[^u]
+.trin \[char252]\[:u]
+.trin \[char253]\[.i]
+.trin \[char254]\[s ,]
+.trin \[char255]\[:y]
+.cp \n[_C]
diff --git a/contrib/groff/tmac/lbp.tmac b/contrib/groff/tmac/lbp.tmac
index 9ac3be4..fab29b5 100644
--- a/contrib/groff/tmac/lbp.tmac
+++ b/contrib/groff/tmac/lbp.tmac
@@ -57,29 +57,37 @@
. hcode \\$1\\$4
..
.
-.lbp-achar \['A] \' A a
-.lbp-achar \['C] \' C c
-.lbp-achar \['c] \' c c
-.lbp-achar \['I] \' I i
-.lbp-achar \['O] \' O o
-.lbp-achar \['U] \' U u
-.lbp-achar \['Y] \' Y y
-.lbp-achar \['y] \' y y
-.lbp-achar \[:E] \[ad] E e
-.lbp-achar \[:I] \[ad] I i
-.lbp-achar \[:Y] \[ad] Y y
-.lbp-achar \[^A] ^ A a
-.lbp-achar \[^E] ^ E e
-.lbp-achar \[^I] ^ I i
-.lbp-achar \[^O] ^ O o
-.lbp-achar \[^U] ^ U u
-.lbp-achar \[`A] \` A a
-.lbp-achar \[`E] \` E e
-.lbp-achar \[`I] \` I i
-.lbp-achar \[`O] \` O o
-.lbp-achar \[`U] \` U u
-.lbp-achar \[~O] ~ O o
-.lbp-achar \[~o] ~ o o
+.lbp-achar \['A] \' A a
+.lbp-achar \[`A] \` A a
+.lbp-achar \[^A] ^ A a
+.lbp-achar \['C] \' C c
+.lbp-achar \['c] \' c c
+.lbp-achar \[`E] \` E e
+.lbp-achar \[:E] \[ad] E e
+.lbp-achar \[^E] ^ E e
+.lbp-achar "\[G ab]" \[ab] G g
+.lbp-achar "\[g ab]" \[ab] g g
+.lbp-achar \['I] \' I i
+.lbp-achar \[`I] \` I i
+.lbp-achar \[:I] \[ad] I i
+.lbp-achar \[^I] ^ I i
+.lbp-achar "\[I .]" \[a.] I i
+.lbp-achar \['O] \' O o
+.lbp-achar \[`O] \` O o
+.lbp-achar \[^O] ^ O o
+.lbp-achar \[~O] ~ O o
+.lbp-achar \[~o] ~ o o
+.lbp-achar \['U] \' U u
+.lbp-achar \[`U] \` U u
+.lbp-achar \[^U] ^ U u
+.lbp-achar \['Y] \' Y y
+.lbp-achar \['y] \' y y
+.lbp-achar \[:Y] \[ad] Y y
+.
+.fchar \[S ,] \o'S\[ac]'
+.hcode \[S ,]s
+.fchar \[s ,] \o's\[ac]'
+.hcode \[s ,]s
.
.cp \n(_C
.
diff --git a/contrib/groff/tmac/papersize.tmac b/contrib/groff/tmac/papersize.tmac
index fdfb580..5740349 100644
--- a/contrib/groff/tmac/papersize.tmac
+++ b/contrib/groff/tmac/papersize.tmac
@@ -7,9 +7,9 @@
.\" groff ... -dpaper=<format> ...
.\"
.\" Possible values for `format' are the same as the predefined `papersize'
-.\" values (only lowercase; see the groff_font man page) except a7-d7.
-.\" An appended `l' (ell) character denotes landscape orientation.
-.\" Examples: `a4', `c3l', `letterl'.
+.\" values (see the groff_font man page) except a7-d7. An appended `l'
+.\" (ell) character denotes landscape orientation. Examples: `a4', `c3l',
+.\" `letterl'.
.\"
.\" Most output drivers need additional command line switches `-p' and
.\" `-l' to override the default paper length and orientation as set in
@@ -104,6 +104,18 @@
. ds paper-dl-length 22c
. ds paper-dl-width 11c
.
+. \" We assume that letters a-z and A-Z aren't mapped during start-up.
+. tr AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
+. di lowercase
+. nop \*[paper]
+. br
+. di
+. asciify lowercase
+. chop lowercase
+. tr AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ
+. ds paper \*[lowercase]
+. rm lowercase
+.
. ds paper-p \*[paper]
. ds paper-l \*[paper]
. length paper-n \*[paper]
diff --git a/contrib/groff/tmac/ps.tmac b/contrib/groff/tmac/ps.tmac
index 05374ac..39d4318 100644
--- a/contrib/groff/tmac/ps.tmac
+++ b/contrib/groff/tmac/ps.tmac
@@ -80,8 +80,16 @@
. hcode \\$1\\$4
..
.
-.ps-achar \['C] \' C c
-.ps-achar \['c] \' c c
+.ps-achar \['C] \' C c
+.ps-achar \['c] \' c c
+.ps-achar "\[G ab]" \[ab] G g
+.ps-achar "\[g ab]" \[ab] g g
+.ps-achar "\[I .]" \[a.] I i
+.
+.fchar \[S ,] \o'S\[ac]'
+.hcode \[S ,]s
+.fchar \[s ,] \o's\[ac]'
+.hcode \[s ,]s
.
.de ps-frac
. schar \[\\$1\\$2] \
diff --git a/contrib/groff/tmac/s.tmac b/contrib/groff/tmac/s.tmac
index e36c3e2..7927c23 100644
--- a/contrib/groff/tmac/s.tmac
+++ b/contrib/groff/tmac/s.tmac
@@ -3,7 +3,7 @@
s.tmac
-Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002
+Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Written by James Clark (jjc@jclark.com)
@@ -21,7 +21,7 @@ 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.
+Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA.
..
.if !\n(.g .ab These ms macros require groff.
.if \n(.C \
@@ -31,7 +31,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.if (\n[.warn] == 65543) .warn
.\" See if already loaded.
.if r GS .nx
+.mso devtag.tmac
.nr GS 1
+.nr need_eo_h 0
+.nr need_eo_tl 0
.de @error
.tm \\n(.F:\\n(.c: macro error: \\$*
..
@@ -50,7 +53,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.de @nop
..
.de @init
-.nr PO \\n(.o
+.if !rPO .nr PO \\n(.o
.\" a non-empty environment
.ev ne
\c
@@ -160,6 +163,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.de RP
.nr cov*rp-format 1
.if \\n[.$] .if '\\$1'no' .nr cov*rp-no 1
+.if rPO .po \\n(POu
.pn 0
..
.de TL
@@ -168,14 +172,14 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.rn @AB AB
.rn @AU AU
.rn @AI AI
-.if !'\*(.T'html' .di cov*tl-div
+.di cov*tl-div
.par@reset
.ft B
.ps +2
.vs +3p
.ll (u;\\n[LL]*5/6)
.nr cov*n-au 0
-.HTML-TAG ".tl"
+.DEVTAG-TL
..
.de @AU
.par@reset
@@ -187,10 +191,13 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.di cov*au-div!\\n[cov*n-au]
.nf
.ft I
-.ps \\n[PS]
+.ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+.el \
+. ps \\n[PS]
..
.de @AI
-.if !'\*(.T'html' .par@reset
+.par@reset
.if !'\\n(.z'' \{\
. br
. di
@@ -200,7 +207,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. di cov*ai-div!\\n[cov*n-au]
. nf
. ft R
-. ps \\n[PS]
+. ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+. el \
+. ps \\n[PS]
.\}
..
.de LP
@@ -253,10 +263,18 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. di
.\}
.cov*ab-init
-.if !'\*(.T'html' .di cov*ab-div
+.ie '\*(.T'html' \{\
+. cov*tl-au-print
+. als cov*tl-au-print @nop
+.\}
+.el .di cov*ab-div
.par@ab-indent
.par@reset
.if !'\\$1'no' \{\
+. if '\*(.T'html' \{\
+. nf
+. sp
+. \}
. ft I
. ce 1
\\*[ABSTRACT]
@@ -317,7 +335,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.sp 3
.if d cov*ab-div \{\
. if !'\*(.T'html' . nf
-. cov*ab-div
+. cov*ab-div
.\}
.sp 3
.par@reset
@@ -363,11 +381,15 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.rs
.sp 3
.ce 9999
-.if d cov*tl-div .cov*tl-div
+.if d cov*tl-div \{\
+. cov*tl-div
+. DEVTAG-EO-TL
+.\}
.nr cov*i 1
.nr cov*sp 1v
.while \\n[cov*i]<=\\n[cov*n-au] \{\
-. sp \\n[cov*sp]u
+. ie '\*(.T'html' .br
+. el .sp \\n[cov*sp]u
. cov*au-div!\\n[cov*i]
. ie d cov*ai-div!\\n[cov*i] \{\
. sp .5v
@@ -479,7 +501,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. nr pg*gutw \\n[LL]-(\\n[pg@ncols]*\\n[pg@colw])/(\\n[pg@ncols]-1)
. el .nr pg*gutw 0
.\}
-.HTML-TAG ".mc \\n[pg@ncols] \\n[pg@colw] \\n[pg*gutw]"
+.DEVTAG ".mc \\n[pg@ncols] \\n[pg@colw] \\n[pg*gutw]"
.mk pg*col-top
.ns
.nr pg*col-num 0
@@ -498,7 +520,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.nr PN \\n%
.nr pg*col-num 0
.nr pg@fn-bottom-margin 0
-.nr pg*saved-po \\n[PO]
.po \\n[PO]u
.ev h
.par@reset
@@ -535,12 +556,12 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
..
.de pg*end-col
'sp |\\n[pg*col-top]u
-.po (u;\\n[pg*saved-po]+(\\n[pg@colw]+\\n[pg*gutw]*\\n[pg*col-num]))
+.po (u;\\n[PO]+(\\n[pg@colw]+\\n[pg*gutw]*\\n[pg*col-num]))
.\"po +(u;\\n[pg@colw]+\\n[pg*gutw])
.pg*start-col
..
.de pg*end-page
-.po \\n[pg*saved-po]u
+.po \\n[PO]u
.\" Make sure we don't exit if there are still floats or footnotes left-over.
.ie \\n[kp@head]<\\n[kp@tail]:\\n[fn@have-overflow] \{\
. \" Switching environments ensures that we don't get an unnecessary
@@ -996,10 +1017,23 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\" don't set LT so that it can be defaulted from LL
.ie rLT .lt \\n[LT]u
.el .lt \\n[LL]u
-.ps \\n[PS]
+.ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+.el \
+. ps \\n[PS]
.\" don't set VS so that it can be defaulted from PS
-.ie rVS .par*vs \\n[VS]
-.el .par*vs \\n[PS]+2
+.ie rVS \{\
+. ie (\\n[VS] >= 1000) \
+. par*vs "(\\n[VS]p / 1000u)"
+. el \
+. par*vs \\n[VS]
+.\}
+.el \{\
+. ie (\\n[PS] >= 1000) \
+. par*vs "((\\n[PS]p / 1000u) + 2p)"
+. el \
+. par*vs "(\\n[PS] + 2)"
+.\}
.if dFAM .fam \\*[FAM]
.if !rHY .nr HY 14
.hy \\n[HY]
@@ -1031,16 +1065,37 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.de par@init
.if !rLT .nr LT \\n[LL]
.if !rFL .nr FL \\n[LL]*5/6
-.if !rVS .nr VS \\n[PS]+2
+.if !rVS \{\
+. ie (\\n[PS] >= 1000) \
+. nr VS (\\n[PS] + 2000)
+. el \
+. nr VS (\\n[PS] + 2)
+.\}
.if !rDI .nr DI .5i
-.if !rFPS .nr FPS \\n[PS]-2
-.if !rFVS .nr FVS \\n[FPS]+2
+.if !rFPS \{\
+. ie (\\n[PS] >= 1000) \
+. nr FPS (\\n[PS] - 2000)
+. el \
+. nr FPS (\\n[PS] - 2)
+.\}
+.if !rFVS \{\
+. ie (\\n[FPS] >= 1000) \
+. nr FVS (\\n[FPS] + 2000)
+. el \
+. nr FVS (\\n[FPS] + 2)
+.\}
.\" don't change environment 0
.ev h
-.ps \\n[PS]
+.ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+.el \
+. ps \\n[PS]
.if !rQI .nr QI 5n
.if !rPI .nr PI 5n
-.par*vs \\n[VS]
+.ie (\\n[VS] >= 1000) \
+. par*vs "(\\n[VS]p / 1000u)"
+.el \
+. par*vs \\n[VS]
.if !rPD .nr PD .3v>?\n(.V
.if !rDD .nr DD .5v>?\n(.V
.if !rFI .nr FI 2n
@@ -1083,6 +1138,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\" par@reset
.de par@reset
.br
+.if \\n[need_eo_tl]>0 .DEVTAG-EO-TL
+.nr need_eo_tl 0
+.if \\n[need_eo_h]>0 .DEVTAG-EO-H
+.nr need_eo_h 0
.ce 0
.rj 0
.ul 0
@@ -1098,8 +1157,14 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.in (u;\\n[\\n[.ev]:li]+\\n[\\n[.ev]:pli])
.ft 1
.fam \\*[FAM]
-.ps \\n[\\n[.ev]:PS]
-.par*vs \\n[\\n[.ev]:VS]
+.ie (\\n[\\n[.ev]:PS] >= 1000) \
+. ps (\\n[\\n[.ev]:PS]z / 1000u)
+.el \
+. ps \\n[\\n[.ev]:PS]
+.ie (\\n[\\n[.ev]:VS] >= 1000) \
+. par*vs "(\\n[\\n[.ev]:VS]p / 1000u)"
+.el \
+. par*vs \\n[\\n[.ev]:VS]
.ls 1
.TA
.hy \\n[HY]
@@ -1113,13 +1178,18 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.de TA
.ta T 5n
..
+.\" \n[PORPHANS] sets number of initial lines of any paragraph,
+.\" which must be kept together, without any included page break.
+.\" Initialise to reproduce original behaviour; user may adjust it.
+.if !rPORPHANS .nr PORPHANS 1
+.
.de par*start
.ds@auto-end
.nr \\n[.ev]:pli \\$1
.nr \\n[.ev]:pri \\$2
.par@reset
.sp \\n[\\n[.ev]:PD]u
-.ne 1v+\\n(.Vu
+.ne \\n[PORPHANS]v+\\n(.Vu
..
.de par@finish
.nr \\n[.ev]:pli 0
@@ -1156,33 +1226,15 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. di
. chop par*label
. ti -\\n[\\n[.ev]:ai]u
-. ie \\n[dl]+1n<=\\n[\\n[.ev]:ai] \\*[par*label]\h'|\\n[\\n[.ev]:ai]u'\c
-. el \{\
-\\*[par*label]
-. br
-. \}
-. rm par*label
-.\}
-..
-.de @IP-html
-.if \\n[.$]>1 .nr \\n[.ev]:ai (n;\\$2)
-.par*start \\n[\\n[.ev]:ai] 0
-.if !'\\$1'' \{\
-. \" Divert the label so as to freeze any spaces.
-. di par*label
-. par*push-tag-env
-\&\\$1
-. par*pop-tag-env
-. di
-. chop par*label
-. ti -\\n[\\n[.ev]:ai]u
. ie \\n[dl]+1n<=\\n[\\n[.ev]:ai] \{\
-. HTML-TAG-NS ".col 1"
-\\$1\h'|\\n[\\n[.ev]:ai]u'\c
-. HTML-TAG-NS ".col 2"
+. DEVTAG-COL 1
+\\*[par*label]\h'|\\n[\\n[.ev]:ai]u'\c
+. DEVTAG-COL 2
. \}
. el \{\
-\\$1
+. DEVTAG-COL 1
+\\*[par*label]
+. DEVTAG-COL-NEXT 2
. br
. \}
. rm par*label
@@ -1320,13 +1372,40 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\}
.el \!.par*box-draw \\$1 \\$2
..
-.de @SH
+.\" \n[HORPHANS] sets how many lines of the following paragraph must be
+.\" kept together, with a preceding section header. Initialise it,
+.\" to reproduce original behaviour; user may change it.
+.if !rHORPHANS .nr HORPHANS 1
+.
+.\" \n[GROWPS] and \n[PSINCR] cause auto-increment of header point size.
+.\" Initialise them, so they have no effect, unless explicitly set by the user.
+.if !rGROWPS .nr GROWPS 0
+.if !rPSINCR .nr PSINCR 1p
+.
+.de SH-NO-TAG
.par@finish
-.\" Keep together the heading and the first two lines of the next paragraph.
-.ne 3v+\\n[\\n[.ev]:PD]u+\\n(.Vu
+.\" Keep the heading and the first few lines of the next paragraph together.
+.\" (\n[HORPHANS] defines "first few" -- default = 1; user may redefine it).
+.nr sh*minvs \\n[HORPHANS]v
+.if \\n[sh*psincr]<0 .nr sh*psincr 0
+.ie \\n(VS<1000 .par*vs \\n(VSp+\\n[sh*psincr]u
+.el .par*vs \\n(VSp/1000u+\\n[sh*psincr]u
+.ne 2v+\\n[sh*minvs]u+\\n[\\n[.ev]:PD]u+\\n(.Vu
+.\" Adjust point size for heading text, as specified by \n[GROWPS] and \n[PSINCR].
+.ie \\n(PS<1000 .ps \\n(PS+\\n[sh*psincr]u
+.el .ps \\n(PSz/1000u+\\n[sh*psincr]u
.sp 1
.ft B
-.HTML-TAG ".SH 1"
+..
+.de @SH
+.\" Standard ms implementation does not expect an argument,
+.\" but allow ".SH n" to make heading point size match ".NH n",
+.\" for same "n", when \n[GROWPS] and \n[PSINCR] are set.
+. nr sh*psincr 0
+. if 0\\$1>0 .nr sh*psincr (\\n[GROWPS]-0\\$1)*\\n[PSINCR]
+. SH-NO-TAG
+. DEVTAG-SH 1
+. if '\*(.T'html' .nr need_eo_h 1
..
.\" TL, AU, and AI are aliased to these in cov*ab-init.
.de par@TL
@@ -1336,7 +1415,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.ps +2
.vs +3p
.ce 9999
-.HTML-TAG ".tl"
+.DEVTAG-TL
+.nr need_eo_tl 1
..
.de par@AU
.par@finish
@@ -1351,7 +1431,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
..
.\" In paragraph macros.
.de NL
-.ps \\n[\\n[.ev]:PS]
+.ie (\\n[\\n[.ev]:PS] >= 1000) \
+. ps (\\n[\\n[.ev]:PS]z / 1000u)
+.el \
+. ps \\n[\\n[.ev]:PS]
..
.de SM
.ps -2
@@ -1449,7 +1532,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.nr nh*hl 0
.\" numbered heading
.de @NH
-.HTML-TAG ".NH \\$1"
.ie '\\$1'S' \{\
. shift
. nr nh*hl 0
@@ -1484,14 +1566,19 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. \}
. nr H\\n[nh*hl] +1
.\}
-.ds SN
-.nr nh*i 0
+.ds SN-NO-DOT \\n(H1
+.nr nh*i 1
.while \\n[nh*i]<\\n[nh*hl] \{\
. nr nh*i +1
-. as SN \\n[H\\n[nh*i]].
+. as SN-NO-DOT .\\n[H\\n[nh*i]]
.\}
-.SH
-\\*[SN]
+.ds SN-DOT \\*[SN-NO-DOT].
+.if !dSN .als SN SN-DOT
+.nr sh*psincr (\\n[GROWPS]-\\n[nh*hl])*\\n[PSINCR]
+.SH-NO-TAG
+.DEVTAG-NH "\\$1"
+. if '\*(.T'html' .nr need_eo_h 1
+\\*[SN-DOT]
..
.\" ****************************
.\" ******** module toc ********
@@ -1528,7 +1615,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. ev
. di
.\}
-.el .@error XS without XE
+.el .@error XE without XS
..
.de toc*end-entry
\\a\\t\\*[toc*num]
@@ -1539,7 +1626,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.1C
.if !'\\$1'no' \{\
. ce 1
-. ps \\n[PS]+2
+. ie (\\n[PS] >= 1000) \
+. ps ((\\n[PS]z / 1000u) + 2z)
+. el \
+. ps \\n[PS]+2
. ft B
\\*[TOC]
. ft
@@ -1586,7 +1676,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. HTML-IMAGE-INLINE
.\}
.if \\n[eqn*type]=2 .HTML-IMAGE
-.if !'\*(.T'html' .nf
+.nf
..
.de @div-end!eqn*div
.@EN
@@ -1600,7 +1690,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. nr eqn*have-num 0
. if !'\\*[eqn*num]'' .nr eqn*have-num 1
. ie \\n[dl]:\\n[eqn*have-num] \{\
-. if !'\*(.T'html' .sp \\n[DD]u
+. sp \\n[DD]u
. par@reset
. ds eqn*tabs \\n[.tabs]
. nf
@@ -1627,7 +1717,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. ta (u;\\n[.l]-\\n[.i])R
\t\\*[eqn*num]
. \}
-. if !'\*(.T'html' .sp \\n[DD]u
+.\". if !'\*(.T'html' .sp \\n[DD]u
+. sp \\n[DD]u
. ta \\*[eqn*tabs]
. \}
. el \{
@@ -1659,7 +1750,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
..
.de @TS
.sp \\n[DD]u
-.\" .if !'\*(.T'html' .sp \\n[DD]u
.if '\\$1'H' .di tbl*header-div
.HTML-IMAGE
..
@@ -1862,6 +1952,12 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.ref*field A ,
.if r [A .nr ref*suppress-period \\n([A
..
+.de ref*add-V
+.ref*field V "" \fB \fR
+..
+.de ref*add-N
+.ref*field N \z( "" ")"
+..
.de ref*add-dflt
.ref*field \\$1 ,
..
@@ -1977,8 +2073,4 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. \}
..
.par@load-init
-.if '\*(.T'html' \{\
-. rm @IP
-. als @IP @IP-html
-.\}
.\" Make sure that no blank lines creep in at the end of this file.
diff --git a/contrib/groff/tmac/trace.tmac b/contrib/groff/tmac/trace.tmac
index c341b76..286c605 100644
--- a/contrib/groff/tmac/trace.tmac
+++ b/contrib/groff/tmac/trace.tmac
@@ -10,6 +10,7 @@
.eo
.
.rn de !!de
+.rn de1 !!de1
.
.
.!!de de
@@ -17,12 +18,12 @@
. ec
. do !!de \$1
. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** de trace enter: \\$0 \\$@
-. el .do tm1 "\*[!!sp]*** trace enter \$1: \\$0 \\$@
+. el .do tm1 "\\*[!!sp]*** de trace enter \$1: \\$0 \\$@
. do as !!sp " \"
. do nop \\*[!!\$1]\\
. do substring !!sp 1
. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
-. el .do tm1 "\*[!!sp]*** trace exit \$1: \\$0 \\$@
+. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
\..
.
. do ds !!d1 !!\$1
@@ -32,19 +33,40 @@
. do dei !!d1 !!d2
..
.
+.!!de de1
+. do ecs
+. ec
+. do !!de \$1
+. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** de1 trace enter: \\$0 \\$@
+. el .do tm1 "\\*[!!sp]*** de1 trace enter \$1: \\$0 \\$@
+. do as !!sp " \"
+. do nop \\*[!!\$1]\\
+. do substring !!sp 1
+. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
+. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
+\..
+.
+. do ds !!d1 !!\$1
+. do ds !!d2 \$2
+.
+. do ecr
+. do dei1 !!d1 !!d2
+..
+.
.rn am !!am
+.rn am1 !!am1
.
-.!!am am
+.!!de am
. do ecs
. ec
-. do !!am \$1
+. do !!de \$1
. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** am trace enter: \\$0 \\$@
-. el .do tm1 "\*[!!sp]*** am trace enter \$1: \\$0 \\$@
-. as !!sp " \"
+. el .do tm1 "\\*[!!sp]*** am trace enter \$1: \\$0 \\$@
+. do as !!sp " \"
. do nop \\*[!!\$1]\\
-. substring !!sp 1
+. do substring !!sp 1
. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
-. el .do tm1 "\*[!!sp]*** trace exit \$1: \\$0 \\$@
+. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
\..
.
. do ds !!a1 !!\$1
@@ -54,6 +76,34 @@
. do ami !!a1 !!a2
..
.
+.!!de am1
+. do ecs
+. ec
+. do !!de \$1
+. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** am1 trace enter: \\$0 \\$@
+. el .do tm1 "\\*[!!sp]*** am1 trace enter \$1: \\$0 \\$@
+. do as !!sp " \"
+. do nop \\*[!!\$1]\\
+. do substring !!sp 1
+. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
+. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
+\..
+.
+. do ds !!a1 !!\$1
+. do ds !!a2 \$2
+.
+. do ecr
+. do ami1 !!a1 !!a2
+..
+.
+.rn return !!return
+.
+.!!de1 return
+. substring !!sp 1
+. tm1 "\*[!!sp]*** return
+. !!return twice
+..
+.
.ec
.
.cp \n(_C
diff --git a/contrib/groff/tmac/troffrc b/contrib/groff/tmac/troffrc
index 61cb32d..d73ace3 100644
--- a/contrib/groff/tmac/troffrc
+++ b/contrib/groff/tmac/troffrc
@@ -3,6 +3,9 @@
.\" This is tested by pic.
.nr 0p 0
.
+.\" Load composite mappings.
+.do mso composite.tmac
+.
.\" Use .do here, so that it works with -C.
.\" The groff command defines the .X string if the -X option was given.
.ie r.X .do ds troffrc!ps Xps.tmac
@@ -37,9 +40,6 @@ troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html
.do hpf hyphen.us
.do hpfa hyphenex.us
.
-.\" Load composite mappings.
-.do mso composite.tmac
-.
.\" Handle paper formats
.do mso papersize.tmac
.
diff --git a/contrib/groff/tmac/troffrc-end b/contrib/groff/tmac/troffrc-end
index ef4f008..53f1bef 100644
--- a/contrib/groff/tmac/troffrc-end
+++ b/contrib/groff/tmac/troffrc-end
@@ -13,8 +13,7 @@
.do if !d HTML-IMAGE-RIGHT .do ds HTML-IMAGE-RIGHT
.do if !d HTML-IMAGE-LEFT .do ds HTML-IMAGE-LEFT
.do if !d HTML-IMAGE-END .do ds HTML-IMAGE-END
-.do if !d HTML-TAG .do ds HTML-TAG
-.do if !d HTML-TAG-NS .do ds HTML-TAG-NS
+.do if !d DEVTAG .do ds DEVTAG
.do if !d HTML-DO-IMAGE .do ds HTML-DO-IMAGE
.
.\" Don't let blank lines creep in here.
diff --git a/contrib/groff/tmac/tty-char.tmac b/contrib/groff/tmac/tty-char.tmac
index c5483ac..eb0efc4 100644
--- a/contrib/groff/tmac/tty-char.tmac
+++ b/contrib/groff/tmac/tty-char.tmac
@@ -141,7 +141,7 @@
.tty-char \[rk] }
.tty-char \[lt] ,-
.tty-char \[rt] -.
-.\" Latin-1 characters
+.\" Latin characters
.tty-char \[r!] \z,i
.tty-char \[Po] \z-L
.tty-char \[Cs] \zox
@@ -168,6 +168,7 @@
.tty-char \[:A] \z"A
.tty-char \[oA] \zoA
.tty-char \[,C] \z,C
+.tty-char "\[S ,]" \z,S
.tty-char \[`E] \z`E
.tty-char \['E] \z'E
.tty-char \[^E] \z^E
@@ -197,6 +198,7 @@
.tty-char \[:a] \z"a
.tty-char \[oa] \zoa
.tty-char \[,c] \z,c
+.tty-char "\[s ,]" \z,s
.tty-char \[`e] \z`e
.tty-char \['e] \z'e
.tty-char \[^e] \z^e
@@ -220,6 +222,10 @@
.tty-char \['y] \z'y
.tty-char \[Tp] \zpb
.tty-char \[:y] \z"y
+.\" for Turkish
+.tty-char "\[G ab]" G
+.tty-char "\[g ab]" g
+.tty-char "\[I .]" I
.\"tty-char \[:y] \ij
.tty-char \[arrowvertex] |
.tty-char \[mc] \z,u
diff --git a/contrib/groff/tmac/tty.tmac b/contrib/groff/tmac/tty.tmac
index 4b337fd..8d69253 100644
--- a/contrib/groff/tmac/tty.tmac
+++ b/contrib/groff/tmac/tty.tmac
@@ -65,6 +65,9 @@
.fchar \[.i] i
.fchar \[bq] ,
.
+.if '\*[.T]'utf8' \
+. mso unicode.tmac
+.
.\" color definitions
.defcolor black rgb #000000
.defcolor red rgb #ff0000
diff --git a/contrib/groff/tmac/unicode.tmac b/contrib/groff/tmac/unicode.tmac
new file mode 100644
index 0000000..6c015b2
--- /dev/null
+++ b/contrib/groff/tmac/unicode.tmac
@@ -0,0 +1,3 @@
+.\" unicode.tmac
+.\"
+.\" EOF
diff --git a/contrib/groff/tmac/www.tmac b/contrib/groff/tmac/www.tmac
index 621da7e..5dcbd1e 100644
--- a/contrib/groff/tmac/www.tmac
+++ b/contrib/groff/tmac/www.tmac
@@ -10,7 +10,7 @@ Installed position: groff's main macro directory.
This file is part of groff, the GNU roff type-setting system.
-Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
written by Gaius Mulley <gaius@glam.ac.uk>, with additions by
Werner Lemberg <wl@gnu.org> and Bernd Warken <bwarken@mayn.de>.
@@ -26,8 +26,8 @@ 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.
+Software Foundation, 51 Franklin St - Fifth Floor, Boston, MA
+02110-1301, USA.
------------------------------------------------------------------------
@@ -42,9 +42,14 @@ www functionality. It should work with any macro set.
.\" Setup
.\" --------------------------------------------------------------------
.
+.do if d www:lenstr .nx
+.
+.do mso devtag.tmac
+.
.nr _C \n(.C
.cp 0
.
+.
.nr www-html 0
.if '\*[.T]'html' .nr www-html 1
.
@@ -104,6 +109,18 @@ www functionality. It should work with any macro set.
.\" --------------------------------------------------------------------
.
.\" --------------------------------------------------------------------
+.\" www:paraspace
+.\"
+.\" Space before paragraph. Use \n[PD] if it exists.
+.\"
+.nr www:pd 0.5v
+.de www:paraspace
+. ie r PD .sp \\n[PD]u
+. el .sp \\n[www:pd]u
+..
+.
+.\"
+.\" --------------------------------------------------------------------
.\" www:error (<test>...)
.\"
.\" Print error message
@@ -191,7 +208,7 @@ www functionality. It should work with any macro set.
.\" Arguments: >=2: <result> <char> [<char>...]
.\"
.de www:url_breaks_splitted
-. nr \\$0:min 5 \" minimal number of characters for next line
+. nr \\$0:min 5 \" minimal number of characters for next line
. if (\\n[.$] < 2) \
. www:error .\\$0 expects at least 2 arguments.
. ds \\$0:res \\$1\"
@@ -244,23 +261,36 @@ www functionality. It should work with any macro set.
.\" --------------------------------------------------------------------
.
.\" --------------------------------------------------------------------
-.\" HTML (<address> <description> [<punctuation>])
+.\" HTML
.\"
.\" the main auxiliary macro for the HTML interface
.\"
.de HTML
. if \\n[www-html] \{\
-. \" the following line makes the vertical mode leave, so to say
+. \" was implemented via .nop \&\X^html:\\$*^ but
+. \" is now implemented using HTML-NS to utilize code factoring.
+. \"
+. \" the `\&' makes the vertical mode leave, so to say
+. \"
+. nop \&\c
+. HTML-NS \\$*
. nop \&
-. nop \X^html:\\$*^
. \}
..
.\"
.\" an auxiliary macro for HTML (without following space)
.\"
.de HTML-NS
-. if \\n[www-html] \
-. nop \X^html:\\$*^\c
+. nop \X^html:\\$*^\c
+..
+.\"
+.\" emit a HTML tag after shutting down a (possibly open) paragraph
+.\"
+.de HTML</p>
+. if \\n[www-html] \{\
+. \" the `\&' makes the vertical mode leave, so to say
+. nop \&\X^html</p>:\\$*^
+. \}
..
.\" --------------------------------------------------------------------
.\" HX n
@@ -292,20 +322,50 @@ www functionality. It should work with any macro set.
.\" if description is absent then the url becomes the anchor text
.\"
.de URL
-. ds \\$0:adr \\$1\"
-. www:url_breaks \\$0:adr
+. ie !'\\$1'' \{\
+. ds \\$0:adr \\$1\"
+. www:url_breaks \\$0:adr
+. \}
. ie \\n[www-html] \{\
+. ie '\\$3'' \
+. ds \\$0:after \&
+. el \
+. ds \\$0:after \&\\$3
. ie '\\$2'' \
-. HTML <a href="\\$1">\\$1</a>\\$3
+. HTML-NS <a href="\\$1">\\$1</a>
. el \
-. HTML <a href="\\$1">\\$2</a>\\$3
+. HTML-NS <a href="\\$1">\\$2</a>
+. nop \\*[\\$0:after]
+. rm \\$0:after
. \}
. el \{\
. if !r ps4html .ad l
-. ie '\\$2'' \
-. nop \%\[la]\m[blue]\f[C]\\*[\\$0:adr]\f[]\m[]\[ra]\\$3
-. el \
-. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\*[\\$0:adr]\f[]\[ra]\\$3
+. ie '\\$2'' \{\
+. ie '\\$1'' \{\
+. ie !'\\$3'' \
+. nop \\$3
+. \}
+. el \{\
+. ie \\n[.color] \
+. nop \%\[la]\m[blue]\f[C]\\*[\\$0:adr]\f[]\m[]\[ra]\\$3
+. el \
+. nop \%\[la]\f[CB]\\*[\\$0:adr]\f[]\[ra]\\$3
+. \}
+. \}
+. el \{\
+. ie '\\$1'' \{\
+. ie \\n[.color] \
+. nop \m[blue]\\$2\m[]\\$3
+. el \
+. nop \f[B]\\$2\f[]\\$3
+. \}
+. el \{\
+. ie \\n[.color] \
+. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\*[\\$0:adr]\f[]\[ra]\\$3
+. el \
+. nop \f[B]\\$2\f[] \%\[la]\f[C]\\*[\\$0:adr]\f[]\[ra]\\$3
+. \}
+. \}
. if !r ps4html .ad
. \}
. rm \\$0:adr
@@ -340,10 +400,32 @@ www functionality. It should work with any macro set.
. URL mailto:\\$1 "\\$2" "\\$3"
. \}
. el \{\
-. ie '\\$2'' \
-. nop \%\m[blue]\f[C]\\$1\f[]\m[]\\$3
-. el \
-. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\$1\f[]\[ra]\\$3
+. ie '\\$2'' \{\
+. ie '\\$1'' \{\
+. ie !'\\$3'' \
+. nop \\$3
+. \}
+. el \{\
+. ie \\n[.color] \
+. nop \%\m[blue]\f[C]\\$1\f[]\m[]\\$3
+. el \
+. nop \%\f[CB]\\$1\f[]\\$3
+. \}
+. \}
+. el \{\
+. ie '\\$1'' \{\
+. ie \\n[.color] \
+. nop \m[blue]\\$2\m[]\\$3
+. el \
+. nop \f[B]\\$2\f[]\\$3
+. \}
+. el \{\
+. ie \\n[.color] \
+. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\$1\f[]\[ra]\\$3
+. el
+. nop \f[B]\\$2\f[] \%\[la]\f[C]\\$1\f[]\[ra]\\$3
+. \}
+. \}
. \}
..
.\" --------------------------------------------------------------------
@@ -366,12 +448,12 @@ www functionality. It should work with any macro set.
.de IMG
. ie \\n[www-html] \{\
. ie '\\$2'-R' \
-. HTML-TAG ".right-image"
+. DEVTAG ".right-image"
. el \{\
. ie '\\$2'-L' \
-. HTML-TAG ".left-image"
+. DEVTAG ".left-image"
. el \
-. HTML-TAG ".centered-image"
+. DEVTAG ".centered-image"
. \}
. nr www-width 100
. if !'\\$3'' \
@@ -379,33 +461,13 @@ www functionality. It should work with any macro set.
. nr www-height \\n[www-width]
. if !'\\$4'' \
. nr www-height \\$4
-. HTML <img src="\\$1" width=\\n[www-width] height=\\n[www-height]>
+. HTML <img src="\\$1" alt="Image \\$1" \
+ width=\\n[www-width] height=\\n[www-height]>
. \}
. el \
. nop \[la]\f[C]\\$1\f[]\[ra]
..
.\" --------------------------------------------------------------------
-.\" HTML-TAG
-.\"
-.\" Emit a tag for grohtml. This is an internal macro.
-.\"
-.de HTML-TAG
-. if \\n[www-html] \{\
-. \" the following line makes the vertical mode leave, so to say
-. nop \&
-. nop \X^html-tag:\\$*^
-. \}
-..
-.\" --------------------------------------------------------------------
-.\" HTML-TAG-NS
-.\"
-.\" Emit a tag for grohtml (without a space). This is an internal macro.
-.\"
-.de HTML-TAG-NS
-. if \\n[www-html] \
-. nop \X^html-tag:\\$*^\c
-..
-.\" --------------------------------------------------------------------
.\" PIMG [-R|-L|-C] filename [width] [height]
.\"
.\" Include a png image. It will work for -Tps and -Thtml.
@@ -419,12 +481,12 @@ www functionality. It should work with any macro set.
.de PIMG
. ie \\n[www-html] \{\
. ie '\\$1'-R' \
-. HTML-TAG ".right-image"
+. DEVTAG ".right-image"
. el \{\
. ie '\\$1'-L' \
-. HTML-TAG ".left-image"
+. DEVTAG ".left-image"
. el \
-. HTML-TAG ".centered-image"
+. DEVTAG ".centered-image"
. \}
. nr www-width 0
. nr www-height 0
@@ -434,15 +496,16 @@ www functionality. It should work with any macro set.
. nr www-height (\\$4 * 100 / 240)
. ie (\\n[www-width] == 0) \{\
. ie (\\n[www-height] == 0) \
-. HTML <img src="\\$2">
+. HTML <img src="\\$2" alt="Image \\$2">
. el \
-. HTML <img src="\\$1" height=\\n[www-height]>
+. HTML <img src="\\$1" alt="Image \\$2" height=\\n[www-height]>
. \}
. el \{\
. ie (\\n[www-height] == 0) \
-. HTML <img src="\\$2" width=\\n[www-width]>
+. HTML <img src="\\$2" alt="Image \\$2" width=\\n[www-width]>
. el \
-. HTML <img src="\\$2" width=\\n[www-width] height=\\n[www-height]>
+. HTML <img src="\\$2" alt="Image \\$2" width=\\n[www-width] \
+ height=\\n[www-height]>
. \}
. \}
. el \{\
@@ -465,13 +528,14 @@ www functionality. It should work with any macro set.
.nr www-right-ll-trap 0
.
.de www-finish-left-po
-. po -\\n[www-left-indent]u
+. po -(\\n[www-left-indent]u + \\n[www-image-gap]u)
. wh \\n[www-left-po-trap]u
. nr www-left-indent 0
..
.
+.\" called when the -R picture is finished
.de www-finish-right-ll
-. ll +\\n[www-right-indent]u
+. ll +(\\n[www-right-indent]u + \\n[www-image-gap]u)
. \" now see whether we need to inline www-finish-left-ll
. if (\\n[www-left-ll-trap]u > 0) \
. if ((\\n[www-right-ll-trap]u + 1v) >= \\n[www-left-ll-trap]u) \{\
@@ -502,51 +566,161 @@ www functionality. It should work with any macro set.
. mk www-left-po-trap
. nr www-left-po-trap +1v
. wh \\n[www-left-po-trap]u www-finish-left-po
-. ll +\\n[www-left-indent]u
+. ll +(\\n[www-left-indent]u + \\n[www-image-gap]u)
. wh \\n[www-left-ll-trap]u
. nr www-left-ll-trap 0
..
+.
+.\" www-handle-percent arg N1 N2 S1
+.\" arg - input string (number or number%)
+.\" output parameters:
+.\" N1 - name of number register 1=absolute 0=percentage
+.\" N2 - number register name for absolute value
+.\" S1 - string register name for percentage value
+.
+.de www-handle-percent
+. ds www-percent \\$1\"
+. substring www-percent -1 -1
+.
+. ie '\\*[www-percent]'%' \{\
+. ds www-abs \\$1\"
+. substring www-abs 0 -2
+. nr \\$2 0
+. nr \\$3 \\*[www-abs]
+. ds \\$4 \\$1\"
+. \}
+. el \{\
+. nr \\$2 1
+. nr \\$3 \\$1
+. ds \\$4 none\"
+. \}
+..
+.
.\" --------------------------------------------------------------------
-.\" MPIMG [-R|-L] filename [width] [height]
+.\" MPIMG [-R|-L] [-G gap] filename [width [height]]
.\"
.\" Include a png image and wrap text around it. It will work for
.\" -Tps and -Thtml. The default value for WIDTH is 1i; default value
.\" for HEIGHT is WIDTH; the default alignment is left (-L).
+.\" -G is used to insert a gap between the text and the image.
+.\" The height and width can also be given as a percentage.
+.\" The PostScript device converts the percentage width into an
+.\" absolute value by using \\n[.l], and the height by using \\n[.p].
+.\"
.\"
.\" Note: This macro can only be used with the `-U' option of groff,
.\" activating unsafe mode, if not used with -Thtml; the PNG image
.\" is then converted to the EPS format using netpbm utilities.
.\"
+.
+.nr www-htmlimage-gap 0
+.
.de MPIMG
+. nr www-image-just 1
+. nr www-image-gap 0
+. while (\\n[.$] > 0) \{\
+. if '-L'\\$1' \{\
+. nr www-image-just 1
+. shift
+. continue
+. \}
+. if '-R'\\$1' \{\
+. nr www-image-just 0
+. shift
+. continue
+. \}
+. if '-G'\\$1' \{\
+. nr www-image-gap \\$2
+. nr www-htmlimage-gap (\\$2 * 100 / 240)
+. shift 2
+. continue
+. \}
+. break
+. \}
+.
. nr www-width 1i
-. if !'\\$3'' \
-. nr www-width \\$3
-. nr www-height \\n[www-width]
-. if !'\\$4'' \
-. nr www-height \\$4
-. nr www-width (\\n[www-width] * 100 / 240)
-. nr www-height (\\n[www-height] * 100 / 240)
+. nr www-height 1i
+. ds www-size-specs "width=\\n[www-width] height=\\n[www-height]\"
+. ie !'\\$2'' \{\
+. nr www-is-absolute 0
+. nr www-absolute 0
+. ds www-percentage none\"
+. www-handle-percent \\$2 www-is-absolute www-absolute www-percentage
+. ie !\\n[www-is-absolute] \{\
+. \" percentage of linelength requested
+. nr www-width (\\n[www-absolute] * \\n[.l] / 100)
+. if \\n[www-html] \
+. nr www-width (\\n[www-width] * 100 / 240)
+. ds www-size-specs "width=\\*[www-percentage]\"
+. \}
+. el \{\
+. nr www-width \\n[www-absolute]
+. if \\n[www-html] \
+. nr www-width (\\n[www-width] * 100 / 240)
+. ds www-size-specs "width=\\n[www-width]\"
+. \}
+.
+. nr www-height \\n[www-width]
+. ie !'\\$3'' \{\
+. nr www-is-absolute 0
+. nr www-absolute 0
+. ds www-percentage none\"
+. www-handle-percent \\$3 www-is-absolute www-absolute www-percentage
+. ie !\\n[www-is-absolute] \{\
+. \" percentage of pagelength requested
+. nr www-height (\\n[www-absolute] * \\n[.p] / 100)
+. if \\n[www-html] \
+. nr www-height (\\n[www-height] * 100 / 240)
+. ds www-size-specs "\\*[www-size-specs] height=\\*[www-percentage]\"
+. \}
+. el \{\
+. nr www-height \\n[www-absolute]
+. if \\n[www-html] \
+. nr www-height (\\n[www-height] * 100 / 240)
+. ds www-size-specs "\\*[www-size-specs] height=\\*[www-height]\"
+. \}
+. \}
+. \}
+. el \{\
+. \" height not specified; use width value
+. ie !\\n[www-is-absolute] \{\
+. \" percentage value
+. ds www-size-specs "\\*[www-size-specs] height=\\*[www-percentage]\"
+. nr www-height \\n[www-width]
+. \}
+. el \{\
+. ds www-size-specs "\\*[www-size-specs] height=\\*[www-width]\"
+. nr www-height \\n[www-width]
+. \}
+. \}
+.
. ie \\n[www-html] \{\
-. ie '\\$1'-R' \
-. HTML <img src="\\$2" align=right width=\\n[www-width] height=\\n[www-height]>
+. ie !\\n[www-image-just] \
+. HTML <img src="\\$1" alt="Image \\$1" hspace=\\n[www-htmlimage-gap] \
+ align=right \\*[www-size-specs]>
. el \
-. HTML <img src="\\$2" align=left width=\\n[www-width] height=\\n[www-height]>
+. HTML <img src="\\$1" alt="Image \\$1" hspace=\\n[www-htmlimage-gap] \
+ align=left \\*[www-size-specs]>
. \}
. el \{\
+. tm www-width is \\n[www-width]
+. tm www-height is \\n[www-height]
. if !r ps4html \{\
. www-make-unique-name
-. sy pngtopnm \\$2 | pnmcrop -white | @PNMTOPS_NOSETPAGE@ -noturn > \\*[www-unique-name].eps
-. ie '\\$1'-R' \{\
+. sy pngtopnm \\$1 | pnmcrop -white | @PNMTOPS_NOSETPAGE@ -noturn > \\*[www-unique-name].eps
+. ie !\\n[www-image-just] \{\
. \" we must now disable a possible left image trap
. sp -1
. if (\\n[www-left-ll-trap] > 0) \
. wh \\n[www-left-ll-trap]u
. if (\\n[www-left-po-trap] > 0) \
. wh \\n[www-left-po-trap]u
-. PSPIC -R \\*[www-unique-name].eps \\$3 \\$4
+. PSPIC -R \\*[www-unique-name].eps \\n[www-width]u \\n[www-height]u
. sp -\\n[ps-desht]u
. nr www-right-indent \\n[ps-deswid]u
-. ll -\\n[www-right-indent]u
+. \" we want to have some space between text and image,
+. \" so the line length must be shorter
+. ll -(\\n[www-right-indent]u + \\n[www-image-gap]u)
. mk www-right-ll-trap
. nr www-right-ll-trap +(\\n[ps-desht]u - 1v)
. wh \\n[www-right-ll-trap]u www-finish-right-ll
@@ -560,11 +734,13 @@ www functionality. It should work with any macro set.
. \" we must now disable a possible right image trap
. if (\\n[www-right-ll-trap] > 0) \
. wh \\n[www-right-ll-trap]u
-. PSPIC -L \\*[www-unique-name].eps \\$3 \\$4
+. PSPIC -L \\*[www-unique-name].eps \\n[www-width]u \\n[www-height]u
. sp -\\n[ps-desht]u
. nr www-left-indent \\n[ps-deswid]u
-. po +\\n[www-left-indent]u
-. ll -\\n[www-left-indent]u
+. \" increase offset by gap
+. po +(\\n[www-left-indent]u + \\n[www-image-gap]u)
+. \" decrease line length by gap
+. ll -(\\n[www-left-indent]u + \\n[www-image-gap]u)
. mk www-left-ll-trap
. nr www-left-ll-trap +(\\n[ps-desht]u - 1v)
. wh \\n[www-left-ll-trap]u www-finish-left-ll
@@ -595,13 +771,13 @@ www functionality. It should work with any macro set.
. nr www-heading-no 1
. el \
. nr www-heading-no \\$1
-. HTML-TAG ".NH \\n[www-heading-no]"
+. DEVTAG-NH \\n[www-heading-no]
..
.
.de HnE
. if (\\n[www-heading-no] == -1) \
. www-error "HnE found without a corresponding HnS"
-. br
+. DEVTAG-EO-H
..
.\" --------------------------------------------------------------------
.\" LK
@@ -610,20 +786,15 @@ www functionality. It should work with any macro set.
.\" section/numbered headings at this position.
.\"
.de LK
-. HTML-TAG ".links"
+. DEVTAG ".links"
..
.\" --------------------------------------------------------------------
.\" HR
.\"
-.\" Produce a horizontal line
+.\" Produce a horizontal line.
.\"
.de HR
-. ie \\n[www-html] \{\
-. ti 0
-. HTML-NS <hr>
-. \}
-. el \
-. sp
+. HTML</p> "<hr>"
..
.\" --------------------------------------------------------------------
.\" NHR
@@ -632,19 +803,21 @@ www functionality. It should work with any macro set.
.\" emits by default.
.\"
.de NHR
-. HTML-TAG ".no-auto-rule"
+. DEVTAG ".no-auto-rule"
..
.\"
.\" www-end-nowhere - end of input trap called to finish diversion.
.\"
.de www-end-nowhere
-. di
+. if !\\n[www-html] \
+. di
+. DEVTAG-EO-TL
..
.\" --------------------------------------------------------------------
.\" HTL
.\"
.\" Generate an HTML title only. This differs from the -ms .TL macro
-.\" which generates both an HTML title and a H1 heading.
+.\" which generates both an HTML title and an H1 heading.
.\"
.\" This is useful when an author wishes to use a HTML title as search
.\" engine fodder but a graphic title in the document.
@@ -652,51 +825,108 @@ www functionality. It should work with any macro set.
.\" The macro terminates when a space or break is seen (.sp, .br).
.\"
.de HTL
-. HTML-TAG ".html-tl"
-. if !\\n[www-html] \{\
+. DEVTAG ".html-tl"
+. if !\\n[www-html] \
. di www-nowhere
-. it 2 www-end-nowhere
-. \}
+. it 2 www-end-nowhere
..
.
.\" --------------------------------------------------------------------
-.\" auxiliary definitions for ULS / ULE
+.\" auxiliary definitions for lists
+.\"
+.ds www-ul-level1 \[bu]\ \ \"
+.ds www-ul-level2 \[sq]\ \ \"
+.ds www-ul-level3 \[ci]\ \ \"
+.nr www-ul-level 0
+.
+.ds www-ol-level1 decimal\"
+.ds www-ol-level2 lower-alpha\"
+.ds www-ol-level3 lower-roman\"
+.ds www-ol-tmp 00\ \ \"
+.nr www-ol-ctr1 0 1
+.nr www-ol-ctr2 0 1
+.nr www-ol-ctr3 0 1
+.af www-ol-ctr2 a
+.af www-ol-ctr3 i
+.nr www-ol-level 0
+.
+.nr www-dl-level 0
+.nr www-dl-shift 5n
+.
+.\"
+.\" allow nested lists
.\"
-.ds www-level1 \[bu]\ \ \"
-.ds www-level2 \[sq]\ \ \"
-.ds www-level3 \[ci]\ \ \"
-.nr www-level 0
.nr www-depth 0
+.nr www-li-indent \n[.i]
+.ds www-level0 nop\"
+.ds www-level1
+.ds www-level2
+.ds www-level3
+.ds www-level4
+.ds www-level5
+.ds www-level6
+.ds www-level7
+.ds www-level8
+.ds www-level9
+.
+.\" which macro to use for LI
+.de www-push-li
+. nr www-depth +1
+. ds www-level\\n[www-depth] \\$1\"
+. als LI \\$1
+..
+.
+.de www-pop-li
+. nr www-depth -1
+. als LI \\*[www-level\\n[www-depth]]
+..
.
.\"
.\" Auxiliary macro for ULS.
.\"
-.de www-push-level
-. nr www-level +1
-. if (\\n[www-level] > 3) \
-. www-error "too many levels of indentation (\\n[www-level])"
+.de www-push-ul-level
+. nr www-ul-level +1
+. if (\\n[www-ul-level] > 3) \
+. www-error "ULS: too many levels of indentation (\\n[www-ul-level])"
..
.\"
.\" Auxiliary macro for ULE.
.\"
-.de www-pop-level
-. if !\\n[www-level] \
-. www-error "trying to terminate a list which does not exist"
-. nr www-level -1
+.de www-pop-ul-level
+. if !\\n[www-ul-level] \
+. www-error "ULE: trying to terminate a list which does not exist"
+. nr www-ul-level -1
+..
+.
+.\"
+.\" Auxiliary macro for OLS.
+.\"
+.de www-push-ol-level
+. nr www-ol-level +1
+. if (\\n[www-ol-level] > 3) \
+. www-error "OLS: too many levels of indentation (\\n[www-ol-level])"
+..
+.\"
+.\" Auxiliary macro for OLE.
+.\"
+.de www-pop-ol-level
+. if !\\n[www-ol-level] \
+. www-error "OLE: trying to terminate a list which does not exist"
+. nr www-ol-level -1
..
+.
.\" --------------------------------------------------------------------
.\" ULS
.\"
.\" Start an unordered list.
.\"
.de ULS
-. www-push-level
+. www-push-li www-li-ul
+. www-push-ul-level
. ie \\n[www-html] \
-. HTML "<ul>"
+. HTML</p> "<ul>"
. el \{\
-. if (\\n[www-level] == 1) \
-. nr www-depth \\n[.i]
-. nr www-depth +\w'\\*[www-level\\n[www-level]]'u
+. nr www-li-indent +\w'\\*[www-ul-level\\n[www-ul-level]]'u
. \}
..
.\" --------------------------------------------------------------------
@@ -708,23 +938,116 @@ www functionality. It should work with any macro set.
. ie \\n[www-html] \
. HTML "</ul>"
. el \{\
-. nr www-depth -\w'\\*[www-level\\n[www-level]]'u
-. in \\n[www-depth]u
+. nr www-li-indent -\w'\\*[www-ul-level\\n[www-ul-level]]'u
+. in \\n[www-li-indent]u
+. \}
+. www-pop-ul-level
+. www-pop-li
+..
+.\" --------------------------------------------------------------------
+.\" OLS
+.\"
+.\" Start an ordered list.
+.\"
+.de OLS
+. www-push-li www-li-ol
+. www-push-ol-level
+. ie \\n[www-html] \
+. HTML</p> "<ol style='list-style-type: \\*[www-ol-level\\n[www-ol-level]]'>"
+. el \
+. nr www-li-indent +\w'\\*[www-ol-tmp]'u
+..
+.\" --------------------------------------------------------------------
+.\" OLE
+.\"
+.\" End an ordered list.
+.\"
+.de OLE
+. ie \\n[www-html] \
+. HTML "</ol>"
+. el \{\
+. nr www-li-indent -\w'\\*[www-ol-tmp]'u
+. in \\n[www-li-indent]u
+. nr www-ol-ctr\\n[www-ol-level] 0 1
+. \}
+. www-pop-ol-level
+. www-pop-li
+..
+.\" --------------------------------------------------------------------
+.\"
+.\" DLS
+.\" Start a definition list.
+.\"
+.de DLS
+. www-push-li www-li-dl
+. nr www-dl-level +1
+. ie \\n[www-html] \
+. HTML</p> "<dl>"
+. el \{\
+. nr www-li-indent +\\n[www-dl-shift]u
+. in \\n[www-li-indent]u
+. \}
+..
+.\" --------------------------------------------------------------------
+.\"
+.\" DLE
+.\" End a definition list.
+.\"
+.de DLE
+. ie \\n[www-html] \
+. HTML "</dl>"
+. el \{\
+. nr www-li-indent -\\n[www-dl-shift]u
+. in \\n[www-li-indent]u
. \}
-. www-pop-level
+. nr www-dl-level -1
+. www-pop-li
..
.\" --------------------------------------------------------------------
.\" LI
.\"
.\" Insert a list item.
.\"
-.de LI
+.\" ********
+.\" www-li-ul - bulleted list item
+.\"
+.de www-li-ul
+. ie \\n[www-html] \
+. HTML-NS "<li>"
+. el \{\
+. www:paraspace
+. in \\n[www-li-indent]u
+. ti -\w'\\*[www-ul-level\\n[www-ul-level]]'u
+. nop \\*[www-ul-level\\n[www-ul-level]]\c
+. \}
+..
+.\" ********
+.\" www-li-ol - numbered list item
+.\"
+.de www-li-ol
. ie \\n[www-html] \
-. HTML "<li>"
+. HTML-NS "<li>"
+. el \{\
+. www:paraspace
+. in \\n[www-li-indent]u
+. ti -\w'\\n[www-ol-ctr\\n[www-ol-level]]\ \ 'u
+. nop \\n+[www-ol-ctr\\n[www-ol-level]]\ \ \c
+. \}
+..
+.\" ********
+.\" www-li-dl - definition list item
+.\"
+.de www-li-dl
+. ie \\n[www-html] \{\
+. HTML "<dt>\\$1</dt>"
+. HTML-NS "<dd>"
+. \}
. el \{\
-. in \\n[www-depth]u
-. ti -\w'\\*[www-level\\n[www-level]]'u
-. nop \\*[www-level\\n[www-level]]\c
+. www:paraspace
+. in \\n[www-li-indent]u
+. ti -\\n[www-dl-shift]u
+. nop \&\\$1
+. br
. \}
..
.\" --------------------------------------------------------------------
@@ -743,7 +1066,8 @@ www functionality. It should work with any macro set.
. ds www-dropcolor \\$3
. ie '\*(.T'html' \{\
. www-make-unique-name
-. MPIMG -L \\*[www-unique-name].png "(\\n[.v] * 2u)"
+. nr www-drop-width (100u * \\n[.v]u * 3u / \\n[.l]u)
+. MPIMG -L \\*[www-unique-name].png "\\n[www-drop-width]%"
. \}
. el \{\
. ie r ps4html \{\
@@ -754,20 +1078,24 @@ www functionality. It should work with any macro set.
. \" glyphs overlap.
. bp
. ev www-DC
-. vs 80p
+. vs 320p
. nop \O[5i\\*[www-unique-name].png]\O[1]
-. nop \m[\\*[www-dropcolor]]\s[40]\O[3]\\$1\O[4]
+. nop \m[\\*[www-dropcolor]]\s[160]\O[3]\\$1\O[4]
. nop \O[2]\O[0]
. br
. ev
. bp
. \}
. el \{\
-. nr dummy \w'\\$1'u
-. nr dcht ((\\n[.v] + \\n[rst]) * \\n[.ps] / \\n[rst])
-. char \[dcap] \m[\\*[www-dropcolor]]\s'\\n[dcht]u'\\$1
-. nop \v'\\n[.v]u'\\[dcap]\v'-\\n[.v]u'\c
-' ti \w'\\[dcap]'u
+. ie n \
+. nop \\$1\c
+. el \{\
+. nr dummy \w'\\$1'u
+. nr dcht ((\\n[.v] + \\n[rst]) * \\n[.ps] / \\n[rst])
+. char \[dcap] \m[\\*[www-dropcolor]]\s'\\n[dcht]u'\\$1
+. nop \v'\\n[.v]u'\\[dcap]\v'-\\n[.v]u'\c
+' ti \w'\\[dcap]'u
+. \}
. \}
. \}
. nop \\$2
@@ -843,6 +1171,25 @@ www functionality. It should work with any macro set.
..
.
.\" --------------------------------------------------------------------
+.\" JOBNAME
+.\"
+.\" Generate multiple output files containing the html.
+.\" A file is split whenever a .SH or .NH 1 is encountered.
+.\" The argument to JOBNAME is the file stem for future output files.
+.\"
+.de JOBNAME
+. DEVTAG .job-name \\$1
+..
+.\" --------------------------------------------------------------------
+.\" HEAD
+.\"
+.\" Adds information to the <head> </head> section of the html
+.\" document
+.\" --------------------------------------------------------------------
+.de HEAD
+. DEVTAG .head "\\$*"
+..
+.\" --------------------------------------------------------------------
.\" Final Setup
.\" --------------------------------------------------------------------
.
OpenPOWER on IntegriCloud