diff options
Diffstat (limited to 'contrib/groff/tmac/www.tmac')
-rw-r--r-- | contrib/groff/tmac/www.tmac | 1230 |
1 files changed, 0 insertions, 1230 deletions
diff --git a/contrib/groff/tmac/www.tmac b/contrib/groff/tmac/www.tmac deleted file mode 100644 index 5dcbd1eea73c..000000000000 --- a/contrib/groff/tmac/www.tmac +++ /dev/null @@ -1,1230 +0,0 @@ -.ig -www.tmac - macro package for adding HTML elements to roff documents. - -File position: <groff_source_top>/tmac/www.tmac -Installed position: groff's main macro directory. - ------------------------------------------------------------------------- - Legalize ------------------------------------------------------------------------- - -This file is part of groff, the GNU roff type-setting system. - -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>. - -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 HTML documents with basic -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 -. -.\" set up www-image-template -. -.if !d www-image-template \ -. ds www-image-template -. -.if r ps4html \{\ -. \" remove the title command when we are generating images for html -. \" (stops a title accidentally appearing inside an image) -. di www-notitle -. tl '''' -. di -. rm tl -. de tl -. . -.\} -. -. -.\" -------------------------------------------------------------------- -.\" Test for `.substring'; result in register `www.substring_ok'. -.\" The automated break points in .URL addresses are only added if -.\" this register is non-zero. -.\" -.nr www:substring_ok 0 -.de www:@test_substring -. if !d substring \ -. return -. ds \\$0:s abcdefg\" -. substring \\$0:s 1 1 -. if !'\\*[\\$0:s]'b' \{\ -. rm \\$0:s -. return -. \} -. ds \\$0:s abcdefg\" -. substring \\$0:s 0 0 -. if !'\\*[\\$0:s]'a' \{\ -. rm \\$0:s -. return -. \} -. ds \\$0:s abcdefg\" -. substring \\$0:s 1 -1 -. if !'\\*[\\$0:s]'bcdefg' \{\ -. rm \\$0:s -. return -. \} -. nr www:substring_ok 1 -. rm \\$0:s -.. -.www:@test_substring -.rm www:@test_substring -. -. -.\" -------------------------------------------------------------------- -.\" Local Macros -.\" -------------------------------------------------------------------- -. -.\" -------------------------------------------------------------------- -.\" 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 -.\" -.de www-error -. tm \\n[.F]:\\n[.c]: macro error: \\$* -.. -.als www:error www-error -. -.\" -------------------------------------------------------------------- -.\" www:lenstr (<register_name> <string_name>) -.\" -.\" Store length of string named <string_name> into register named -.\" <register_name>. -.\" -.de www:lenstr -. if !(\\n[.$] == 2) \{\ -. tm .\\$0 expects 2 arguments. -. ab -. \} -. length \\$0:n x\\*[\\$2] -. nr \\$1 (\\n[\\$0:n]-1) -. rr \\$0:n -.. -.\" -------------------------------------------------------------------- -.\" www:splitstr (<name>) -.\" -.\" Add a space character between any two adjacent characters in string -.\" <name> and restore result into the string variable <name>; space -.\" characters are first replaced by the word `space'. -.\" -.de www:splitstr -. if !(\\n[.$] == 1) \ -. www:error .\\$0 expects 1 argument. -. if '\\*[\\$1]'' \ -. return -. ds \\$0:r "\\*[\\$1]\"" -. ds \\$0:s\" -. while 1 \{\ -. ds \\$0:c "\\*[\\$0:r]\"" -. substring \\$0:c 0 0\" -. ie '\\*[\\$0:c]' ' \ -. as \\$0:s " space\"" -. el \ -. as \\$0:s " \\*[\\$0:c]\"" -. www:lenstr \\$0:n \\$0:r -. if (\\n[\\$0:n] <= 1) \{\ -. break -. \} -. substring \\$0:r 1 -1\" -. \} -. if !'\\*[\\$0:s]'' \ -. substring \\$0:s 1 -1 -. ds \\$1 \\*[\\$0:s] -. rm \\$0:c -. rr \\$0:n -. rm \\$0:r -. rm \\$0:s -.. -.\" -------------------------------------------------------------------- -.\" www:url_breaks (<string_name>) -.\" -.\" Add `\:' (possible break point) within URL strings after `/'. -.\" -.\" Smart about multiple `/', existing `\:', and space characters; -.\" does not set a break point if less than 5 characters would go to -.\" the next line. -.\" -.de www:url_breaks -. if !(\\n[.$] == 1) \ -. www:error .\\$0 expects 1 argument. -. if !\n[www:substring_ok] \ -. return -. ds \\$0:s "\\*[\\$1]\"" -. www:splitstr \\$0:s -. www:url_breaks_splitted \\$0:s \\*[\\$0:s] -. ds \\$1 "\\*[\\$0:s]\"" -. rm \\$0:s -.. -.\" -------------------------------------------------------------------- -.\" www:url_breaks_splitted (<result> <char> [<char>...]) -.\" -.\" Add `\:' within URL strings, but arguments are a splitted string. -.\" -.\" Arguments: >=2: <result> <char> [<char>...] -.\" -.de www:url_breaks_splitted -. 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\" -. shift -. ds \\$0:s\" -. nr \\$0:done 0 -. while !\\n[\\$0:done] \{\ -. if (\\n[.$] <= 0) \{\ -. nr \\$0:done 1 -. break -. \} -. if '\\$1'space' \{\ -. as \\$0:s " \"" -. shift -. continue -. \} -. if (\\n[.$] < \\n[\\$0:min]) \{\ -. as \\$0:s "\\$1\"" -. shift -. continue -. \} -. if !'\\$1'/' \{\ -. as \\$0:s "\\$1\"" -. shift -. continue -. \} -. \" we are at a `/' character -. while '\\$1'/' \{\ -. as \\$0:s /\" -. if (\\n[.$] == 0) \{\ -. nr \\$0:done 1 -. break -. \} -. shift -. \} -. if \\n[\\$0:done] \ -. break -. if (\\n[.$] < \\n[\\$0:min]) \ -. continue -. if '\\$1'\:' \ -. shift -. as \\$0:s \:\" -. \} -. ds \\*[\\$0:res] \\*[\\$0:s]\" -. rm \\$0:res -. rm \\$0:s -.. -.\" -------------------------------------------------------------------- -.\" User Interface -.\" -------------------------------------------------------------------- -. -.\" -------------------------------------------------------------------- -.\" HTML -.\" -.\" the main auxiliary macro for the HTML interface -.\" -.de HTML -. if \\n[www-html] \{\ -. \" 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 \& -. \} -.. -.\" -.\" an auxiliary macro for HTML (without following space) -.\" -.de HTML-NS -. 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 -.\" -.\" Automatic heading level cut off. -.\" -.\" N is the depth limit of automatically linked headings. So a depth -.\" of 2 would cause grohtml to generate a list of links for `.NH 1' -.\" and `.NH 2' but not for `.NH 3'. -.\" -.de HX -. if \\n[www-html] \ -. nop \X^index:\\$*^ -.. -.\" -------------------------------------------------------------------- -.\" BCL foreground background active not-visited visited -.\" -.de BCL -. HTML <body text=\\$1 bgcolor=\\$2 link=\\$3 alink=\\$4 vlink=\\$5> -.. -.\" -------------------------------------------------------------------- -.\" BGIMG imagefile -.\" -.de BGIMG -. HTML <body background=\\$1> -.. -.\" -------------------------------------------------------------------- -.\" URL url [description] [after] -.\" if description is absent then the url becomes the anchor text -.\" -.de URL -. 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-NS <a href="\\$1">\\$1</a> -. el \ -. HTML-NS <a href="\\$1">\\$2</a> -. nop \\*[\\$0:after] -. rm \\$0:after -. \} -. el \{\ -. if !r ps4html .ad l -. 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 -.. -.\" -------------------------------------------------------------------- -.\" FTP url description [after] -.\" -.\" Same as URL. -.\" -.als FTP URL -.\" -------------------------------------------------------------------- -.\" MTO address description [after] -.\" -.\" ADDRESS is the email address (without the `mailto:' prefix). -.\" -.\" DESCRIPTION is the optional name. If an empty argument is given, -.\" ADDRESS is used instead. -.\" -.\" AFTER is optional stuff printed immediately after ADDRESS -.\" (resp. DESCRIPTION). -.\" -.\" Example: -.\" -.\" Foobar has been written by -.\" .MTO fred@foo.bar "Fredrick Bloggs" . -.\" -.de MTO -. ie \\n[www-html] \{\ -. ie '\\$2'' \ -. URL mailto:\\$1 \\$1 "\\$3" -. el \ -. URL mailto:\\$1 "\\$2" "\\$3" -. \} -. el \{\ -. 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 -. \} -. \} -. \} -.. -.\" -------------------------------------------------------------------- -.\" TAG name -.\" -.\" Generate an html name NAME. -.\" -.de TAG -. HTML <a name="\\$1"></a> -.. -.\" -------------------------------------------------------------------- -.\" IMG [-R|-L|-C] filename [width] [height] -.\" -.\" Include an image of any type (will only work for -Thtml). -.\" -.\" Alignment is centered by default (-C). -.\" Default value for WIDTH is 1i. -.\" If HEIGHT is not given, WIDTH is used as the height. -.\" -.de IMG -. ie \\n[www-html] \{\ -. ie '\\$2'-R' \ -. DEVTAG ".right-image" -. el \{\ -. ie '\\$2'-L' \ -. DEVTAG ".left-image" -. el \ -. DEVTAG ".centered-image" -. \} -. nr www-width 100 -. if !'\\$3'' \ -. nr www-width \\$3 -. nr www-height \\n[www-width] -. if !'\\$4'' \ -. nr www-height \\$4 -. HTML <img src="\\$1" alt="Image \\$1" \ - width=\\n[www-width] height=\\n[www-height]> -. \} -. el \ -. nop \[la]\f[C]\\$1\f[]\[ra] -.. -.\" -------------------------------------------------------------------- -.\" PIMG [-R|-L|-C] filename [width] [height] -.\" -.\" Include a png image. It will work for -Tps and -Thtml. -.\" The default value for WIDTH and HEIGHT is zero; the default -.\" alignment is centering (-C). -.\" -.\" 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. -.\" -.de PIMG -. ie \\n[www-html] \{\ -. ie '\\$1'-R' \ -. DEVTAG ".right-image" -. el \{\ -. ie '\\$1'-L' \ -. DEVTAG ".left-image" -. el \ -. DEVTAG ".centered-image" -. \} -. nr www-width 0 -. nr www-height 0 -. if !'\\$3'' \ -. nr www-width (\\$3 * 100 / 240) -. if !'\\$4'' \ -. nr www-height (\\$4 * 100 / 240) -. ie (\\n[www-width] == 0) \{\ -. ie (\\n[www-height] == 0) \ -. HTML <img src="\\$2" alt="Image \\$2"> -. el \ -. HTML <img src="\\$1" alt="Image \\$2" height=\\n[www-height]> -. \} -. el \{\ -. ie (\\n[www-height] == 0) \ -. HTML <img src="\\$2" alt="Image \\$2" width=\\n[www-width]> -. el \ -. HTML <img src="\\$2" alt="Image \\$2" width=\\n[www-width] \ - height=\\n[www-height]> -. \} -. \} -. el \{\ -. if !r ps4html \{\ -. www-make-unique-name -. sy pngtopnm \\$2 | pnmcrop -white | @PNMTOPS_NOSETPAGE@ -noturn > \\*[www-unique-name].eps -. ie '\\$1'-C' \ -. PSPIC \\*[www-unique-name].eps \\$3 \\$4 -. el \ -. PSPIC \\$1 \\*[www-unique-name].eps \\$3 \\$4 -. \} -. \} -.. -. -.\" -------------------------------------------------------------------- -.\" auxiliary definitions for MPIMG -.\" -.nr www-left-ll-trap 0 -.nr www-left-po-trap 0 -.nr www-right-ll-trap 0 -. -.de www-finish-left-po -. 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 + \\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) \{\ -. 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 -. wh \\n[www-left-ll-trap]u -. nr www-left-ll-trap 0 -. \} -. \" and see whether we need to inline www-finish-left-po -. if (\\n[www-left-po-trap]u > 0) \ -. if ((\\n[www-right-ll-trap]u + 1v) >= \\n[www-left-po-trap]u) \{\ -. po -\\n[www-left-indent]u -. wh \\n[www-left-po-trap]u -. nr www-left-indent 0 -. \} -. wh \\n[www-right-ll-trap]u -. nr www-right-ll-trap 0 -.. -. -.de www-finish-left-ll -. if (\\n[www-right-ll-trap] > 0) \ -. if ((\\n[www-left-ll-trap] + 1v) >= \\n[www-right-ll-trap]) \{\ -. ll +\\n[www-right-indent]u -. nr www-right-ll-trap 0 -. \} -. 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 + \\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] [-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 -. 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 !\\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="\\$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 \\$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 \\n[www-width]u \\n[www-height]u -. sp -\\n[ps-desht]u -. nr www-right-indent \\n[ps-deswid]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 -. \" now restore possible left trap -. if (\\n[www-left-ll-trap] > 0) \ -. wh \\n[www-left-ll-trap]u www-finish-left-ll -. if (\\n[www-left-po-trap] > 0) \ -. wh \\n[www-left-po-trap]u -. \} -. el \{\ -. \" 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 \\n[www-width]u \\n[www-height]u -. sp -\\n[ps-desht]u -. nr www-left-indent \\n[ps-deswid]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 -. \" now restore possible right trap -. if (\\n[www-right-ll-trap] > 0) \ -. wh \\n[www-right-ll-trap]u www-finish-right-ll -. \} -. \} -. \} -.. -.\" -------------------------------------------------------------------- -.\" HnS n -.\" -.\" Begin heading. Heading level is N. -.\" -.\" HnE -.\" -.\" End heading. -.\" -.\" If your heading contains URL, FTP, MTO macros you might wish to -.\" disable automatic links to headings. This can be done via `-P-l' -.\" from the command line or by using a cakk to `.HX 0'. -.\" -.nr www-heading-no -1 -. -.de HnS -. ie '\\$1'' \ -. nr www-heading-no 1 -. el \ -. nr www-heading-no \\$1 -. DEVTAG-NH \\n[www-heading-no] -.. -. -.de HnE -. if (\\n[www-heading-no] == -1) \ -. www-error "HnE found without a corresponding HnS" -. DEVTAG-EO-H -.. -.\" -------------------------------------------------------------------- -.\" LK -.\" -.\" Emit the automatically collected links derived from -.\" section/numbered headings at this position. -.\" -.de LK -. DEVTAG ".links" -.. -.\" -------------------------------------------------------------------- -.\" HR -.\" -.\" Produce a horizontal line. -.\" -.de HR -. HTML</p> "<hr>" -.. -.\" -------------------------------------------------------------------- -.\" NHR -.\" -.\" Suppresses the generation of the top and bottom rules which grohtml -.\" emits by default. -.\" -.de NHR -. DEVTAG ".no-auto-rule" -.. -.\" -.\" www-end-nowhere - end of input trap called to finish diversion. -.\" -.de www-end-nowhere -. 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 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. -.\" -.\" The macro terminates when a space or break is seen (.sp, .br). -.\" -.de HTL -. DEVTAG ".html-tl" -. if !\\n[www-html] \ -. di www-nowhere -. it 2 www-end-nowhere -.. -. -.\" -------------------------------------------------------------------- -.\" 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 -.\" -.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-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-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-li www-li-ul -. www-push-ul-level -. ie \\n[www-html] \ -. HTML</p> "<ul>" -. el \{\ -. nr www-li-indent +\w'\\*[www-ul-level\\n[www-ul-level]]'u -. \} -.. -.\" -------------------------------------------------------------------- -.\" ULE -.\" -.\" End an unordered list. -.\" -.de ULE -. ie \\n[www-html] \ -. HTML "</ul>" -. el \{\ -. 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 -. \} -. nr www-dl-level -1 -. www-pop-li -.. -.\" -------------------------------------------------------------------- -.\" LI -.\" -.\" Insert a list item. -.\" -.\" ******** -.\" 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-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 \{\ -. www:paraspace -. in \\n[www-li-indent]u -. ti -\\n[www-dl-shift]u -. nop \&\\$1 -. br -. \} -.. -.\" -------------------------------------------------------------------- -.\" DC l text [color] -.\" -.\" L is the letter to be dropped and enlarged. -.\" -.\" TEXT is the following text whose height the first letter should not -.\" exceed. -.\" -.\" COLOR is the optional color of the dropped letter (default black). -.\" -.de DC -. ds www-dropcolor black -. if !'\\$3'' \ -. ds www-dropcolor \\$3 -. ie '\*(.T'html' \{\ -. www-make-unique-name -. 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 \{\ -. www-make-unique-name -. \" To avoid interferences with another DC macro call which is located -. \" very near to the current one, we draw the glyph on a separate page. -. \" Otherwise it could theoretically happen that the dropped capital -. \" glyphs overlap. -. bp -. ev www-DC -. vs 320p -. nop \O[5i\\*[www-unique-name].png]\O[1] -. nop \m[\\*[www-dropcolor]]\s[160]\O[3]\\$1\O[4] -. nop \O[2]\O[0] -. br -. ev -. bp -. \} -. el \{\ -. 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 -.. -.\" -------------------------------------------------------------------- -.\" Setup around HTML-IMAGE and friends -.\" -.\" now set up TS, TE, EQ, EN default macros -.\" -.do if !d TS .do ds TS HTML-IMAGE -.do if !d TE .do ds TE HTML-IMAGE-END -.do if !d EQ .do ds EQ HTML-IMAGE -.do if !d EN .do ds EN HTML-IMAGE-END -.\" -.\" supplementary macros used by other macro sets -.\" -.\" here are some tags specially for -Tps or -Thtml when invoked by -.\" pre-html to generate png images from postscript. -. -.\" -------------------------------------------------------------------- -.\" HTML-DO-IMAGE - tells troff to issue an image marker which can be -.\" read back by pre-html -.\" -.de HTML-DO-IMAGE -. if r ps4html \ -. nop \O[5\\$2\\$1.png]\O[1]\O[3] -. if \\n[www-html] \ -. nop \O[5\\$2\\$1.png]\O[0]\O[3] -.. -.\" -------------------------------------------------------------------- -.\" HTML-IMAGE-END - terminates an image for html -.\" -.de HTML-IMAGE-END -. if r ps4html \ -. nop \O[4]\O[2]\O[0] -. if \\n[www-html] \ -. nop \O[4]\O[2]\O[1] -.. -. -.nr www-png-no 0 -. -.\" -------------------------------------------------------------------- -.\" www-make-unique-name - generates another unique name in string -.\" `www-unique-name' -.\" -.de www-make-unique-name -. nr www-png-no +1 -. ds www-unique-name \\*[www-image-template]\\n[www-png-no] -.. -.\" -------------------------------------------------------------------- -.\" HTML-IMAGE and friends tell grohtml that this region of text needs -.\" to be rendered as an image. -.\" -.de HTML-IMAGE -. \" generates a centered image -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] c -.. -. -.de HTML-IMAGE-RIGHT -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] r -.. -. -.de HTML-IMAGE-LEFT -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] l -.. -. -.de HTML-IMAGE-INLINE -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] i -.. -. -.\" -------------------------------------------------------------------- -.\" 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 -.\" -------------------------------------------------------------------- -. -.if \n[www-html] \{\ -. nh -. nr HY 0 -.\} -. -.\" -.\" start of some code -.\" -. -.de CDS -.ft C -.nf -.. -.\" -.\" end of some code -.\" -. -.de CDE -.fi -.ft P -.. -. -.if r ps4html .nop \O[0] -.cp \n(_C -. -.\" now set -. -.\" -------------------------------------------------------------------- -.\" Emacs settings -.\" -------------------------------------------------------------------- -. -.\" Local Variables: -.\" mode: nroff -.\" End: -.\" EOF |