diff options
author | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2011-03-12 19:04:03 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2011-03-12 19:04:03 +0000 |
commit | 872b6ee7400edb775c362a39717e7942528eb707 (patch) | |
tree | 99903d255fb5924b4d19de8861964f4a93f6afc0 /gnu/usr.bin/groff/mm | |
parent | 30c1ecbeb90c0d739a2f8dd74d15e05b79aba36e (diff) |
Replaced by mandoc(1) for base and xenocara purposes,
and comes with 4.9 ports.
ok deraadt@
Diffstat (limited to 'gnu/usr.bin/groff/mm')
-rw-r--r-- | gnu/usr.bin/groff/mm/ChangeLog | 458 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/Makefile.sub | 38 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/NOTES | 103 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/README | 28 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/groff_mm.7_in | 1876 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/groff_mmse.7_in | 82 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/mm/0.MT | 146 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/mm/4.MT | 79 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/mm/5.MT | 34 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/mm/ms.cov | 84 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/mm/se_ms.cov | 3 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/tmac.m | 3431 | ||||
-rw-r--r-- | gnu/usr.bin/groff/mm/tmac.mse | 185 |
13 files changed, 0 insertions, 6547 deletions
diff --git a/gnu/usr.bin/groff/mm/ChangeLog b/gnu/usr.bin/groff/mm/ChangeLog deleted file mode 100644 index fb0d4fe1db2..00000000000 --- a/gnu/usr.bin/groff/mm/ChangeLog +++ /dev/null @@ -1,458 +0,0 @@ -Mon Mar 15 22:22:42 1999 Jörgen Hägg (jh at axis.com) - - * OK, let's release this as a beta, 1.33 will be better. :-) - * version 1.32 - * fixed .el-error - * Added number variable Hss - * Changed Hps1 and Hps2 to units - * added hd*h1-text to be used in user defined macro TP. - * -U needed for SETR (I really need 'mv', 'echo', 'rm' - and 'test' builtin!) - * Rewritten the reference system, SETR now prints to stderr - if the number register Qrf > 0. Store in the filename - that is the argument to .INITR - The old behaviour is returned if number register Initr > 0. - * Fixed bug with List of XXXX, long lines messed up the result. - * added number register H1dot. - * added string variable H1txt - * added string variable Tcst - * added number register Dsp. - * added alias APPX for user-defined appendix title. - * added string variable Apptxt - * added H1h for use in TP in headers - * added macro EPIC - * added macro PIC (safe replacement for PSPIC) - * fixed Hps-bug, should be 1, not 1v. - * fixed bug with APPSK, variable not set. - -Wed Feb 4 15:46:04 1998 Jörgen Hägg (jh at axis.se) - - * version 1.31 - * .LI will now honor a space mark. - * Another fix for .AU to let it be used without arguments. - * uninitialized eq*label fixed - -Fri Sep 6 07:13:07 1996 Jörgen Hägg (jh at axis.se) - - * version 1.30 - * This is more like a beta-release, bugs might pop up. :-) - * last line in TOC was not correctly terminated (missing .br) - * changed the indentation for displays, it will now - indent to the current indent, not the one at the definition - of the display. - * Equation marks should now work better, indentation also. - * included these bug fixes from Larry Jones: - * The documentation for the argument to .AS was incorrect for MT 4. - * \*(EM should be a double-dash for nroff. - * \nS is in points, not units. - * If \nO isn't set, the default page offset should be .75i for nroff - and .963i for troff. - * .S D should set the point size to \nS, not 10. - * .S was setting the vertical spacing based on the old point size - instead of the new point size. - * Got rid of a spurrious .br that prevented run-in headings from - working. - * Reset the .SP counters in pg@header so that spacing on one page - won't affect spacing on subsequent pages. - * Allow .AU and .AF with no arguments (real mm does, even though it - isn't documented). - * Do .init@reset first thing to initialize the default environment. - * For MT 4, the title should be 4 points larger than the default size, - not 12 point. - * The cover environment needs to be initialized. - * Printing the abstract on the first page needs to be controlled by - the .AS argument. - * Heading eject should be suppressed if the heading immediately - follows the first page stuff (title, author, etc.). - * support for table of contents numbering style (.nr Oc) - * changes the troff empty line height from .25v to .5v - * fixed section page numbering - * fixed a really nasty bug in footnotes that could cause you - to lose the page footer completely if the very first - footnote on the page occurred at just the wrong place - - -Wed May 15 07:39:32 1996 Jörgen Hägg (jh at axis.se) - - * version 1.29 - * Syntax and scaling errror fixed, (thanks to Frazer Williams) - * DF/DE will now do a line-break before printing the display. - * Updated the manual for TB,FG,EX and EC. - * Added support for the ms- (and mgs-)macro .IX - * Added indexmacro IX, INITI, IND and INDP, support for - TXIND, TYIND and TZIND. - * PGFORM will now always really reset to the default - values for unspecified arguments. - * Floating displays tested and repaired, it should - now (finanlly) work exactly as the original (I hope :-). - * Should now set year correctly even after 2000. - * Stupid bug in PGNH fixed. - * Corrected line length for figure caption (FG and friends) - - -Mon Apr 24 07:37:52 1995 Jörgen Hägg (jh at axis.se) - - * version 1.28 - * Added AVL (AV without date) - * Fixed nroff scaling for W and L. - * Added support for register E and roman/bold - for all Subject/Date/From strings. - * Added support for register C (1-4), (for DRAFTs and other types) - * Will protest if not used with groff. - * Change of the internal number registers @ps and @vs, they - are now in units, and is set in the new macros .@ps and .@vs. - @ps and @vs is now corrected to the real point and vertical size. - * Macro EQ has now correct pointsize. - * Figures should now get the right page number in the index. - * User-defined macros can now be defined for list of - figures, tables, equations and exhibits (T{X,Y}{FG,TB,EC,EX}. - * Space may be omitted between prefix and mark in automatic lists (.AL) - See .LI - -Tue Jan 10 07:51:37 1995 Jörgen Hägg (jh at axis.se) - - * version 1.27 - * Manual updated - * More bugs fixed in DS/DF - * added alias for :g - * LC can now be used without argument (as the manual says. :-) - * Register :R now supported (RS/RF) - * footnote line was printed even if there was no room for - any footnotes. Fixed. - * Fixed 1C so that it can be used without page eject - * Added support for EOP (TPs twin) - * Hyphenation turned off by default. (Hy == 0) - -Fri Nov 4 08:14:50 1994 Jörgen Hägg (jh at axis.se) - - * version 1.25 - * DS/DF separated and several bugs fixed. Watch out for new though. :-) - * string DT was emptied by mistake in the previous version. - * RD made prettier. - * typo in AV and let@print-head fixed. - -Mon Oct 31 08:19:24 1994 Jörgen Hägg (jh at axis.se) - - * version 1.24 - * Bug fixed and format extended in .SG and .FC. - * date is always printed unless .ND without argument is used. - (I wonder what's the right thing to do, this might change.) - * Swedish letter-standards implemented in tmac.mse. - * .ND can be used to turn off the date. (Empty argument) - -Mon Oct 31 08:14:09 1994 Jörgen Hägg (jh at axis.se) - - * version 1.23 - * An attempt to get in sync with RCS. This is the distributed - version. - -Thu Oct 27 08:29:34 1994 Jörgen Hägg (jh at axis.se) - - * version 1.22 - * (version 1.21 lost... :-) - * Letter macros added!! - * The following macros are added: - * AV, FC, IA ,IE, LT, LO, NE, NS, SG, WA, WE - * nP also added. - -Tue Dec 14 16:26:36 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.20 - * spelling-corrections - * Makefile.sim updated to the correct version, and a uninstall - target added. - * @cur-lib removed from tmac.m (obsolete) - * fixed check for references i .TC, .RP now resets the flag correctly. - * floating display should now be printed if there is space. - * first version using RCS. I've been avoiding version control until it - became necessary. - * WC WD now works in two-column-mode. - -Tue Sep 7 08:37:00 1993 Jörgen Hägg (jh at efd.lth.se) - - * version 1.19 - * .lt is called in the header for .TP also. - * Variable Pgps added to control the header and footer point-size. - * Error-text printed with .APP removed. - * Error with .FG, .TB, .EC and .EX indentation fixed. - * header and footer line-length is not changed by MC or 2C. - * Default for page-length and page-offset is now taken from - \n[.p] and \n[.o]. - * Argument to .ab (abort) is supplied. - * Argument to .1C added. - * Argument to .PGFORM added. - * RP/RS/RF totally rewritten. Should work with 2C now. - -Fri Apr 23 10:37:25 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.18 - * Height of display is now more exactly calculated. - * tabs and blankspaces where wrong in .VERBON. - * error in manual for escape-character in VERBON. - * Makefile.sub: installed tmac.m as tmac.m and tmac.mse - * Installation of tmac.mse now supports TMAC_M. - * bug with N fixed. - -Mon Apr 5 09:36:01 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.17 - * MULB preserves size. - * bug in VERBON fixed, causing strange errors. - * section-page footer fixed. - * added support for numberregister S - * fixed bug with floating displays wich made floats to - generate space on a page, but broke page anyway. - * end-of-page trap reinstalled. - -Mon Mar 29 10:53:13 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.16 - * MUL* now use the previous font and family. - * extra blank page at end-of-text eliminated. - -Mon Mar 8 10:27:47 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.15 - * Didn't restore pointsize to current size in .H. - * B1/B2 did not work with indent. (MULE and friends) - * fixed old problem with trailing empty pages. - -Fri Mar 5 15:20:49 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.14 - * Sigh. Amazing what a missing \} can do. If the string - HP was set, then all text disappeared... - -Fri Mar 5 14:12:43 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.13 - * Fixed bug with handling ps/vs in .H. (again, sigh... ) - -Wed Mar 3 09:21:20 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.12 - * Line-break added to PGFORM. - * added more features to VERBON - * .S is not used anymore in H, it caused confusion with - normal text, but it will still set .vs. - * SK was broken, will now produce the requested number of - empty pages. - * dotted lines added to LIST OF FIGURES adn friends. - Also better linespacing. - -Mon Feb 22 12:41:06 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.11 - * missing left-parenthesis gave ") .sp" when N=4. - * N=4 removed user-specified header also. - * MOVE made linelength pageoffset wider than wanted. - * fixed (again) parenthesis in RP. - -Thu Jan 21 12:10:39 1993 Joergen Haegg (jh at efd.lth.se) - - * version 1.10 - * changed PROG_PREFIX to g in the manual-pages. - * Better check if new page is needed in .H, when Ej>0. - * Usage of variable Lsp now more complete. - * Space added in TOC when mark is equal to size. - * Usermacro HY moved after font-calulations. - * .S used instead of .ps, which will use .vs correct. - * Now possible to set Hps1/2 inside HX. - * .FD "" 1 is now fixed. - * section-page numbering bug fixed. - * several bugs in VERBON/OFF fixed. - -Tue Dec 8 16:43:15 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.09 - * N==4 gives no default header - -Sat Nov 21 14:28:20 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.08 - * Escape-character disabled between - VERBON/VERBOFF (turned on by an argument). - Pointsize and fontchange also added as arguments. - * MULB, MULN and MULE added to get multicolumn output - with different width. - * Number register N can now use 1-5. - * Register Sectp and Sectf added. - * Register P is now updated correctly for "section-page" numbering. - -Thu Nov 19 11:19:33 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.07 - * .OP fixed to eject a blank page if not odd. - -Fri Nov 13 09:46:09 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.06 - * Macro TL rewritten. TL depends now on a following .AU. - * NOTES updated. - * .lt is now used more frequent when linelength is changed. - * macro AST added. - * removed PH/EH/OH not needed in ?.MT. - -Wed Oct 28 14:35:43 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.05 - * .VM implemented. - * Possible bug in page heading fixed. Changed .sp to 'sp in HEADER. - -Thu Aug 20 13:56:31 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.04 - * page-break in .EQ moved. - * changed unit for footer-size and header-size from units to lines. - Fixes problems with .S and page-breaks. - * \n[%] is now treated as a string, wich makes it possible - to assign new formats to it. Unfortunately, it was necessary - to change the page-number-variable in GETPN to a string. - * Makefile.sub included. (Thank you, James) - -Thu May 7 16:14:10 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.03 - * Typo and centering in DS/DE fixed. - Even and odd pageheaders were reversed. - * LI: pad and mark-indent was lost in some earlier versions. Now fixed. - * fixed bug in reference to .FG, .TB, ... - * APP did not clear headercounters. - * Pointsize in titles is now only set at the beginning and - when PH, PF, OH, OF, EH and EF are used. - -Thu May 6 16:01:35 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.02 - * OP fixed. - -Fri Mar 6 09:36:09 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.01 - * two .LI without text between should not be printed - on the same row. Now fixed. - * figure titles and friends fixed, now possible with many .FG - in a DS/DE. Didn't always position correctly in previous version, - but is now always printed as it should. - * Makefile fixed for Ultrix. - * DS/DF could not handle empty arguments correct - * Missing .br i EQ added. - -Sat Jan 25 15:47:21 1992 Joergen Haegg (jh at efd.lth.se) - - * version 1.00 - * No betaversion anymore! - * Fixed headernumbers within appendixes. - * DS did not keep the same font as before DS. - * mmse did a line break. - -Fri Jan 24 14:38:16 1992 Joergen Haegg (jh at efd.lth.se) - - * version 0.16 - * bug in TC, multiple line headers did not wrap correctly. - * added support for mm/locale and mm/language_locale. - * cov*default-firm in locale sets name of firm in the MT covers. - * cov*location-xxxx in locale sets location xxxx to the contents - of cov*location-xxxx. Used in the MT covers. - * hanging indent in lists fixed. - * use larger empty lines if .nroff is defined. - * macros, like .P, can now be used inside abstracts. - * .S do not reset indentation anymore. - * .RS aA now sets a string, not an integer. - * appendix with .APP or .APPSK added. - -Thu Nov 28 22:00:59 1991 Joergen Haegg (jh at efd.lth.se) - - * version 0.15 - * Fixed .AU in MT 0-3, added support for variable Au. - * Bug in the positioning of the foot-notes. - * lists not indented properly. - * Hps1 and Hps2 added. - * COVER had to have an argument. - * table of contents can now have multiline header. - * .HU now increments headingvariable H? - * added the inclusion of a locale file. - -Sat Nov 23 14:40:17 1991 Joergen Haegg (jh at efd.lth.se) - - * version 0.14 - * bug when using -rO fixed. - * MT 1-4 added. - * default is now MT 1 - * .EQ/.EN can be used outside of .DS/.DE without complaints. But - I don't recommend it. Neither does the DWB books. - * LI don't break lines now if arg too big. - * PGFORM did not reset indent. - * Added the numbervariable Hps. - * Rewritten and added MT 0-5 + "string". - * Added TM. - * Indent to AS added - -Wed Nov 6 15:18:40 1991 Joergen Haegg (jh at efd.lth.se) - - * version 0.13 - * ds*format nod defined if PS/PE is used without DS/DE. - * GETST added, fourth argument to EX, FG, TB and EC added. - -Mon Nov 4 13:38:01 1991 Joergen Haegg (jh at efd.lth.se) - - * version 0.12 - * Fixed C,D,P,+-size in .S - -Sun Jan 1 00:00:00 1991 Joergen Haegg (jh at efd.lth.se) - * Next version will have ChangeLog entries... - * Bug in INITR fixed. - * VERBON/VERBOFF added to include programlistings - * Bug in .DE fixed, addition overflow -Sun Jan 1 00:00:00 1991 Joergen Haegg (jh at efd.lth.se) - * spelling error in month-names. - * WC should work now (no warranty :-) - * FD almost finished, some details missing. - * incorrect calculation of foot-notes fixed. - * DS/DE did not break page when the size was smaller than the paper - * Forward/backward referencesystem added. Se .INITR in README. - * mgmsw changed name to mgmse. -Sun Jan 1 00:00:00 1991 Joergen Haegg (jh at efd.lth.se) - * embarrassing bug in .P fixed - * .H did always eject page, now fixed. - * lost floating displays now found. - * accents added (from mgs) - * empty line in .EQ/.EN removed - * indentation in .TC corrected. - * indentation of DS/DE in lists fixed. - * .TB and friends now work inside DS/DE and outside. - * .WC partially implemented (WF and WD). Still working on it. - * .mso used if version>=1.02 -Sun Jan 1 00:00:00 1991 Joergen Haegg (jh at efd.lth.se) - * register P was not working. - * support for register Fg, Tb, Ec and Ex. - * list items was left on the previous page at a page break. - * tlevel in .TC now defaults to 2. - * string DT, EM and Tm supported. - * new macro: PGNH, see comments. - * bug in MOVE fixed. - * pagenumber in .TC fixed. - * a blank page was ejected if Ej==1, now fixed - * bug in floating display fixed (did break and SP wrong) - * bug in .SP fixed, no lines is now printed at top of page - * There are still problems with footnotes and displays in two column mode. -Sun Jan 1 00:00:00 1991 Joergen Haegg (jh at efd.lth.se) - * register P added (same as %) - * bug in floating displays fixed - * MOVE added - * MT added, see comment below - * COVER/COVEND added - * fixed bug in figure titles - * extended S, se comment below - * MT 0 added - * ms-cover added (COVER ms) -Sun Jan 1 00:00:00 1991 Joergen Haegg (jh at efd.lth.se) - * bugs in RD and comb. fonts fixed -Sun Jan 1 00:00:00 1991 Joergen Haegg (jh at efd.lth.se) - * HC added - * Combined fonts (IB,BI...) - * HM added - * RD added - * OP added - * TP&PX supported - * warnings for unimplemented macros diff --git a/gnu/usr.bin/groff/mm/Makefile.sub b/gnu/usr.bin/groff/mm/Makefile.sub deleted file mode 100644 index 264e1a54b03..00000000000 --- a/gnu/usr.bin/groff/mm/Makefile.sub +++ /dev/null @@ -1,38 +0,0 @@ -# -# $Id: Makefile.sub,v 1.4 2000/04/09 08:25:18 millert Exp $ -# -MAN7=groff_mm.7 groff_mmse.7 -FILES=0.MT 5.MT 4.MT ms.cov se_ms.cov -# Local configuration files with default values. -LOCALE = locale se_locale -CLEANADD=temp -tmac_m=m -install: install_mm - -install_mm: install_m - -test -d $(tmacdir)/mm || mkdir $(tmacdir)/mm - -for f in $(FILES); do \ - rm -f $(tmacdir)/mm/$$f; \ - $(INSTALL_DATA) $(srcdir)/mm/$$f $(tmacdir)/mm/$$f; \ - done - -for f in $(LOCALE); do \ - test -f $(tmacdir)/mm/$$f || touch $(tmacdir)/mm/$$f; \ - done - -install_m: - -test -d $(tmacdir) || mkdir $(tmacdir) - -rm -f $(tmacdir)/tmac.$(tmac_m) - $(INSTALL_DATA) $(srcdir)/tmac.m $(tmacdir)/tmac.$(tmac_m) - @sed -e "s;^.mso tmac.m;.mso $(tmac_m);g" $(srcdir)/tmac.mse \ - > $(tmacdir)/tmac.$(tmac_m)se - - - -uninstall_sub: - -for f in $(FILES); do rm -f $(tmacdir)/mm/$$f; done - -for f in $(LOCALE); do \ - test -s $(tmacdir)/mm/$$f || rm -f $(tmacdir)/mm/$$f; \ - done - -rm -f $(tmacdir)/tmac.$(tmac_m) - -rm -f $(tmacdir)/tmac.$(tmac_m)se - -rmdir $(tmacdir)/mm diff --git a/gnu/usr.bin/groff/mm/NOTES b/gnu/usr.bin/groff/mm/NOTES deleted file mode 100644 index 43794a29c64..00000000000 --- a/gnu/usr.bin/groff/mm/NOTES +++ /dev/null @@ -1,103 +0,0 @@ -###################################################################### -Beware! -This may be old information. Trust only the source. :-) - -Implementation notes. (Or how to make your own national mm) - -Different commands: - -COVER [arg] -MT [arg [addressee]] -The arg is part of a filename in mm/*.MT or mm/*.cov. -This file is read when the macro is executed. Therefore it must be -put before any text output. -In each file there are definitions of all extra macros needed for the -cover sheet. MT files is only for compatibility reasons, and has several -limits due to that it don't know when the cover starts, and cannot -change sizes. Use COVER for new coversheet macros. - -But with MT it is possible to write all of the AT&T covers. -An example can be found in mm/0.MT. - -When writing a new cover using COVER, have in mind that the cover -should print the page with the COVEND macro. This macro -should be defined by the new macrofile. - -Here is a part of ms.cov: -> .\"----------------- -> .de COVEND -> .sp |4.2c -> .cov@print-title -> .cov@print-authors -> .cov@print-firm -> .cov@print-abstract -> .cov@print-date -This is important, since COVER disables the page header. -> .pg@enable-top-trap -Should begin with page one (normally). -> .bp 1 -And enable the trap at the page footer. -> .pg@enable-trap -> .. - -######################### - -Variables for covers: -I = integer -S = string -D = diversion -M = macro - -Name Type Desc. -cov*au I The number of authors. - -cov*title M Title collected with .TL. - -cov*au!x!y S Author(s) given to .AU -cov*at!x!y S Author(s) title given to .AT - x is the author-index [1-cov*au], - y is the argument-index [1-9]. - Look at the table with indexes. - -cov*firm I Author(s) firm. - -cov*abs-arg I Argument to abstract. - -cov*abs-ind I Indent for abstract. - -cov*abs-name S The string 'ABSTRACT', changed with .AST - -cov*abstract M The abstract. - -cov*new-date S The date (todays date if ND is not used) - -cov*mt-type S MT type -cov*mt-addresse S MT addressee - - -########################## -Argument-index for cov*au: - -Index Desc. -1 name -2 initials -3 location -4 department -5 extension -6 room -7 arg 7 -8 arg 8 -9 arg 9 - -The location is set to the contents of string cov*location-xxxx -if location is equal to xxxx and cov*location-xxxx is defined -in the file locale. - - -Argument-index for cov*at: - -Index Desc. -1 title 1 -. . -. . -9 title 9 diff --git a/gnu/usr.bin/groff/mm/README b/gnu/usr.bin/groff/mm/README deleted file mode 100644 index a720f07054f..00000000000 --- a/gnu/usr.bin/groff/mm/README +++ /dev/null @@ -1,28 +0,0 @@ - -This is mgm, a macro package for groff. - -It is supposed to be compatible with the DWB mm macros, -and has several extensions. - -Send bug reports to jh@axis.se with a description of the problem -and a sample of text which reproduces the error. - -Don't forget to mention the version of mgm (look in the beginning -of tmac.m) and the version of groff. - -Any new ideas or improvements are welcome. - -Newest version is available with anonymous FTP -at ftp://ftp.efd.lth.se/pub/groff/mm<something>.gz -or ftp://ftp.axis.se/pub/groff/mm<something>.gz - -You can install mgm as a separate package without the configure in groff -with the following command: - -make -f Makefile.sim install - -This README should be bigger :-) - -Jörgen. - -Thanks to everyone who have sent me bug-reports and fixes. diff --git a/gnu/usr.bin/groff/mm/groff_mm.7_in b/gnu/usr.bin/groff/mm/groff_mm.7_in deleted file mode 100644 index b398ab55086..00000000000 --- a/gnu/usr.bin/groff/mm/groff_mm.7_in +++ /dev/null @@ -1,1876 +0,0 @@ -.\" -.\" $Id: groff_mm.7_in,v 1.2 2003/01/06 06:48:50 cloder Exp $ -.\" -.de T2 -.ne 2v -.ti -.5i -\\$1 -.sp -1 -.. -.de T3 -.ne 2v -.ti -.5i -\fB\\$1\fP -.br -.. -.TH GROFF_MM @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" -.SH NAME -groff_mm \- groff mm macros -.SH SYNOPSIS -.B groff -.B \-m@TMAC_M@ -[ -.IR options .\|.\|. -] -[ -.IR files .\|.\|. -] -.SH DESCRIPTION -The groff mm macros are intended to be compatible with the DWB mm macros -with the following limitations: -.TP -.B \(bu -no Bell Labs localisms implemented. -.TP -.B \(bu -the macros OK and PM is not implemented. -.TP -.B \(bu -groff mm does not support cut marks -.LP -\fBm@TMAC_M@\fP is intended to be international. Therefore it is -possible to write short national macrofiles which change all -english text to the preferred language. Use \fBm@TMAC_M@se\fP as an example. -.\"######################################################################## -.LP -A file called \fBlocale\fP or \fIlang\fP\fB_locale\fP is read -after the initiation of the global variables. It is therefore -possible to localize the macros with companyname and so on. -.sp -In this manual square brackets is used to show optional arguments. -.sp 3 -\fBNumber registers and strings\fP -.br -Many macros can be controlled by number registers and strings. -A number register is assigned with the \fBnr\fP command: -.br -\fB\&.nr\fP \fIXXX\fP \fI[+-]n [i]\fP -.br -\fBXXX\fP is the name of the register, \fBn\fP is the value to -be assigned, and \fBi\fP is increment value for auto-increment. -\fBn\fP can have a plus or minus sign as prefix if an increment -or decrement of the current value is wanted. (Auto-increment or decrement -occurs if the number register is used with a plus or minus sign, -\fB\en+[XXX]\fP or \fB\en-[XXX]\fP.) -.sp -Strings is defined with \fBds\fP. -.br -\fB\&.ds\fP \fIYYY string\fP -.br -The string is assigned everything to the end of the line, even blanks. -Initial blanks in \fIstring\fP should be prefixed with -a double-quote. (Strings are used in the text as \fB\e*[YYY]\fP.) -.sp -\fBSpecial formatting of number registers\fP -A number register is printed with normal digits if no format has been -given. -Set the format with \fBaf\fP: -.br -\fB\&.af\fP \fIR c\fP -.br -\fIR\fP is the name of the register, \fIc\fP is the format. -.in +.5i -.T2 \fBForm\fP -\fBSequence\fP -.T2 1 -0, 1, 2, 3, ... -.T2 001 -000, 001, 002, 003, ... -.T2 i -0, i, ii, iii, iv, ... -.T2 I -0, I, II, III, IV, ... -.T2 a -0, a, b, c, ..., z, aa, ab, ... -.T2 A -0, A, B, C, ..., Z, AA, AB, ... -.in - -.LP -\fBMacros:\fP -.TP -.B ")E level text" -Adds \fBtext\fP (heading-text) to the table of contents -with \fBlevel\fP either 0 -or between 1-7. See also \fB.H\fP. This macro is used for customized -table of contents. -.TP -.B "1C [1]" -Begin one column processing. An \fB1\fP as argument disables the page-break. -Use wide footnotes, small footnotes may be overprinted. -.TP -.B 2C -Begin two column processing. Splits the page in two columns. It is -a special case of \fBMC\fP. See also \fB1C\fP. -.TP -.B AE -Abstract end, see \fBAS\fP. -.TP -.B "AF [name of firm]" -Authors firm, should be called before \fBAU\fP, see also \fBCOVER\fP. -.TP -.B "AL [type [text-indent [1]]]]" -Start autoincrement list. Items are numbered beginning on one. -The \fItype\fP argument controls the type of numbers. -.in +.5i -.T2 Arg -Description -.T2 1 -Arabic (the default) -.T2 A -Upper-case letters (A-Z) -.T2 a -Lower-case letters (a-z) -.T2 I -Upper-case roman -.T2 i -Lower-case roman -.in -\fIText-indent\fP sets the indent and overrides \fBLi\fP. -A third argument will prohibit printing of a blank line before each -item. -.TP -.B "APP name text" -Begin an appendix with name \fIname\fP. Automatic naming occurs if -\fIname\fP is "". The appendixes starts with \fBA\fP if auto is used. -An new page is ejected, and a header is also produced if the number -variable \fBAph\fP is non-zero. This is the default. -The appendix always appear in the 'List of contents' with correct -pagenumber. The name \fIAPPENDIX\fP can be changed by setting -the string \fBApp\fP to the desired text. -The string \fBApptxt\fP contains the current appendix text. -.TP -.B "APPSK name pages text" -Same as \fB.APP\fP, but the pagenr is incremented with \fIpages\fP. -This is used when diagrams or other non-formatted documents are -included as appendixes. -.TP -.B "AS [arg [indent]]" -Abstract start. Indent is specified in 'ens', but scaling is allowed. -Argument \fIarg\fP controls where the abstract is printed. -.in +.5i -.T2 Arg -Placement -.T2 0 -Abstract will be printed on page 1 and on the cover sheet if -used in the released-paper style (\fBMT 4\fP), otherwise -it will be printed on page 1 without a cover sheet. -.T2 1 -Abstract will only be printed on the cover sheet (\fBMT 4\fP only). -.T2 2 -Abstract will be printed only on the cover sheet (other than \fBMT 4\fP only). -The cover sheet is printed without need for \fBCS\fP. -.in -Abstract is not printed at all in external letters (\fBMT 5\fP). -The \fIindent\fP controls the indentation of both margins, otherwise -will normal text indent be used. -.TP -.B "AST [title]" -Abstract title. Default is \fBABSTRACT\fP. -Sets the text above the abstract text. -.TP -.B "AT title1 [title2 ...]" -Authors title. \fBAT\fP must appear just after each \fBAU\fP. -The title will show up after the name in the signature block. -.TP -.B "AU [name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]]" -Author information, specifies the author of the memo or paper, and -will be printed on the cover sheet and on other similar places. -\fBAU\fP must appear before \fBTL\fP. The author information -can contain intials, location, department, telephone extension, -room number or name and up to three extra arguments. -.TP -.B "AV [name [1]]" -Approval signature, generates an approval line with place for -signature and date. The string \fBAPPROVED:\fP can be changed -with variable \fBLetapp\fP, and the string \fBDate\fP in \fBLetdate\fP. -.TP -.B "AVL [name]" -Letter signature, generates a line with place for signature. -.TP -.B "B [bold-text [prev-font-tex [bold...]]]" -Begin boldface -No limit on the number of arguments. -All arguments will be concatenated to one word, the first, third and so -on will be printed in boldface. -.TP -.B B1 -Begin box (as the ms macro) -Draws a box around the text. The text will be indented one character, -and the right margin will be one character shorter. -.TP -.B B2 -End box. Finish the box started by \fBB1\fP. -.TP -.B BE -End bottom block, see \fBBS\fP. -.TP -.B "BI [bold-text [italic-text [bold-text [...]]]" -Bold-italic. -No limit on the number of arguments, see \fBB\fP. -.TP -.B "BL [text-indent [1]]" -Start bullet list, initialize a list with a bullet and a space -in the beginning of each list item (see \fBLI\fP). -\fIText-indent\fP -overrides the default indentation of the list items set by -number register \fBPi\fP. -A third argument will prohibit printing of a blank line before each -item. -.TP -.B "BR [bold-text [roman-text [bold-text [...]]]" -Bold-roman. -No limit on the number of arguments. -.TP -.B BS -Bottom block start. Begins the definition of a text block wich is -printed at the bottom of each page. Block ends with \fBBE\fP. -.TP -.B BVL -Start of -broken variable-item list. -Broken variable-item list has no fixed mark, it assumes that -every \fBLI\fP has a mark instead. -The text will always begin at the next line after the mark. -\fIText-indent\fP sets the indent to the text, and \fImark-indent\fP -the distance from the current indent to the mark. -A third argument will prohibit printing of a blank line before each -item. -.TP -.B "COVER [arg]" -\&\fBCOVER\fP begins a coversheet definition. It is important -that \fB.COVER\fP appears before any normal text. -\&\fB.COVER\fP uses \fIarg\fP to build the filename -@TMAC_MDIR@/\fIarg\fP.cov. Therefore it is possible to create unlimited -types of coversheets. -\fIms.cov\fP is supposed to look like the \fBms\fP coversheet. -\&\fB.COVER\fP requires a \fB.COVEND\fP at the end of the coverdefinition. -Always use this order of the covermacros: -.nf -\&.COVER -\&.TL -\&.AF -\&.AU -\&.AT -\&.AS -\&.AE -\&.COVEND -.fi -However, only \fB.TL\fP and \fB.AU\fP are required. -.TP -.B COVEND -This finish the cover description and prints the cover-page. -It is defined in the cover file. -.TP -.B DE -Display end. Ends a block of text, display, that begins -with \fBDS\fP or \fBDF\fP. -.TP -.B "DF [format [fill [rindent]]]" -Begin floating display (no nesting allowed). -A floating display is saved in a queue and is printed in the -order entered. \fIFormat\fP, \fIfill\fP and \fIrindent\fP is the same -as in \fBDS\fP. -Floating displays are controlled by the two number registers \fBDe\fP -and \fBDf\fP. -.sp -\fBDe register\fP -.in +.5i -.T2 0 -Nothing special, this is the default. -.T2 1 -A page eject will occur after each printed display, giving only -one display per page and no text following it. -.in -.sp -\fBDf register\fP -.in +.5i -.T2 0 -Displays are printed at the end of each section (when section-page -numbering is active) or at the end of the document. -.T2 1 -A new display will be printed on the current page is there is enough -space, otherwise it will be printed at the end of the document. -.T2 2 -One display will be printed at the top of each page or column -(in multi-column mode). -.T2 3 -Print one display if there is enough space for it, otherwise it will -be printed at the top of the next page or column. -.T2 4 -Print as many displays that will fit in a new page or column. -A page break will occur between each display if \fBDe\fP is not zero. -.T2 5 -Fill the current page with displays and the rest beginning at a new page -or column. (This is the default.) -A page break will occur between each display -if \fBDe\fP is not zero. -.in -.TP -.B "DL [text-indent [1]]" -Dash list start. Begins a list where each item is printed -after a dash. \fIText-indent\fP changes the default indentation -of the list items set by -number register \fBPi\fP. -A third argument will prohibit printing of a blank line before each -item. -A second argument prevents the empty line between each list item -to be printed. See \fBLI\fP. -.TP -.B "DS [format [fill [rindent]]]" -Static display start. -Begins collection of text until \fBDE\fP. -The text is printed together on the same page, unless it is longer -than the height of the page. -\fBDS\fP can be nested to a unlimited depth (reasonably :-). -.sp -\fBformat\fP -.in +.5i -.ds x " -.T2 """""" -No indentation. -.T2 none -No indentation. -.T2 L -No indentation. -.T2 I -Indent text with the value of number register \fBSi\fP. -.T2 C -Center each line -.T2 CB -Center the whole display as a block. -.T2 R -Right adjust the lines. -.T2 RB -Right adjust the whole display as a block -.in -.sp -L, I, C and CB can also be specified as 0, 1, 2 or 3 for compatibility -reasons. (Don't use it. :-) -.sp -\fBfill\fP -.in +.5i -.T2 """""" -Line-filling turned off. -.T2 none -Line-filling turned off. -.T2 N -Line-filling turned off. -.T2 F -Line-filling turned on. -.in -.sp -N and F can also be specified as 0 or 1. -An empty line will normally be printed before and after the -display. Setting number register \fBDs\fP to 0 will prevent this. -\fIRindent\fP shortens the line length by that amount. -.TP -.B "EC [title [override [flag [refname]]]]" -Equation title. -Sets a title for an equation. The \fIoverride\fP argument -change the numbering. -.sp -\fBflag\fP -.in +.5i -.T2 none -\fIoverride\fP is a prefix to the number. -.T2 0 -\fIoverride\fP is a prefix to the number. -.T2 1 -\fIoverride\fP is a suffix to the number. -.T2 2 -\fIoverride\fP replaces the number. -.in -\fBEC\fP uses the number register \fBEc\fP as counter. -It is possible to use \fB.af\fP to change the format of the number. -If number register \fBOf\fP is 1, then the format of title -will use a dash instead of a dot after the number. -.br -The string \fBLe\fP controls the title of the -List of Equations, default is \fILIST OF EQUATIONS\fP. -The List of Equations will only be printed if number register \fBLe\fP -is 1, default 0. -The string \fBLiec\fP contains the word \fIEquation\fP, wich -is printed before the number. -If \fIrefname\fP is used, then the equation number is saved with -\&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP. -.br -Special handling of the title will occur if -\fBEC\fP is used inside \fBDS\fP/\fBDE\fP, it will not be -affected by the format of \fBDS\fP. -.TP -.B "EF [arg]" -Even-page footer, printed just above the normal page footer -on even pages, see \fBPF\fP. -.TP -.B "EH [arg]" -Even-page header, printed just below the normal page header -on even pages, see \fBPH\fP. -.TP -.B EN -Equation end, see \fBEQ\fP. -.TP -.B EOP -End of page user-defined macro. This macro will be called -instead of the normal printing of the footer. The macro -will be executed in a separate environment, without any -trap active. See \fBTP\fP. -.sp -\fBStrings available to EOP\fP -.in +.5i -.T2 EOPf -Argument from \fBPF\fP. -.T2 EOPef -Argument from \fBEF\fP. -.T2 EOPof -Argument from \fBOF\fP. -.in -.TP -.B "EPIC width height [name]" -\fBEPIC\fP draws a box with the given \fIwidth\fP and \fIheight\fP, it will -also print the text \fIname\fP or a default string if -\fIname\fP is not specified.. -This is used to include external pictures, just give the size -of the picture. -See \fBPIC\fP -.TP -.B "EQ [label]" -Equation start. -\fBEQ\fP/\fBEN\fP are the delimiters for equations written for \fBeqn\fP. -\fBEQ\fP/\fBEN\fP must be inside a \fBDS\fP/\fBDE\fP-pair, except -when \fBEQ\fP is only used to set options in \fBeqn\fP. -The \fIlabel\fP will appear at the right margin of the equation, unless -number register \fBEq\fP is 1. Then the label will appear at the -left margin. -.TP -.B "EX [title [override [flag [refname]]]]" -Exhibit title, arguments are the same as for \fBEC\fP. -\fBEX\fP uses the number register \fBEx\fP as counter. -The string \fBLx\fP controls the title of the -List of Exhibits, default is \fILIST OF EXHIBITS\fP. -The List of Exhibits will only be printed if number register \fBLx\fP -is 1, default 1. -The string \fBLiex\fP contains the word \fIExhibit\fP, wich -is printed before the number. -If \fIrefname\fP is used, then the exhibit number is saved with -\&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP. -.br -Special handling of the title will occur if -\fBEX\fP is used inside \fBDS\fP/\fBDE\fP, it will not be -affected by the format of \fBDS\fP. -.TP -.B "FC [closing]" -Prints \fIYours\ very\ truly,\fP as a formal closing of a letter or -memorandum. The argument replaces the defualt string. -The default is stored in string variable \fBLetfc\fP. -.TP -.B "FD [arg [1]]" -Footnote default format. -Controls the hyphenation (hyphen), right margin justification (adjust), -indentation of footnote text (indent). It can also change the label -justification (ljust). -.sp -.ne 14v -.nf -.ta .5i +.8i +.8i +.8i +.8i -\fBarg hyphen adjust indent ljust\fP -0 no yes yes left -1 yes yes yes left -2 no no yes left -3 yes no yes left -4 no yes no left -5 yes yes no left -6 no no no left -7 yes no no left -8 no yes yes right -9 yes yes yes right -10 no no yes right -11 yes no yes right -.sp -.fi -.DT -Argument greater than or equal to 11 is considered as arg 0. -Default for m@TMAC_M@m is 10. -.TP -.B FE -Footnote end. -.TP -.B "FG [title [override [flag [refname]]]]" -Figure title, arguments are the same as for \fBEC\fP. -\fBFG\fP uses the number register \fBFg\fP as counter. -The string \fBLf\fP controls the title of the -List of Figures, default is \fILIST OF FIGURES\fP. -The List of Figures will only be printed if number register \fBLf\fP -is 1, default 1. -The string \fBLifg\fP contains the word \fIFigure\fP, wich -is printed before the number. -If \fIrefname\fP is used, then the figure number is saved with -\&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP. -.br -Special handling of the title will occur if -\fBFG\fP is used inside \fBDS\fP/\fBDE\fP, it will not be -affected by the format of \fBDS\fP. -.TP -.B "FS [label]" -Footnote start. -The footnote is ended by \fBFE\fP. Footnotes is normally automatically -numbered, the number is available in string \fBF\fP. -Just add \fB\e*F\fP in the text. By adding \fIlabel\fP, it is possible -to have other number or names on the footnotes. -Footnotes in displays is now possible. -An empty line separates footnotes, the height of the line -is controlled by number register \fBFs\fP, default value is 1. -.TP -.B "GETHN refname [varname]" -Includes the headernumber where the corresponding \fBSETR\fP \fIrefname\fP -was placed. Will be X.X.X. in pass 1. See \fBINITR\fP. -If varname is used, \fBGETHN\fP sets the stringvariable \fIvarname\fP to the -headernumber. -.TP -.B "GETPN refname [varname]" -Includes the pagenumber where the corresponding \fBSETR\fP \fIrefname\fP -was placed. Will be 9999 in pass 1. See \fBINITR\fP. -If varname is used, \fBGETPN\fP sets the stringvariable \fIvarname\fP -to the pagenumber. -.TP -.B "GETR refname" -Combines \fBGETHN\fP and \fBGETPN\fP with the text 'chapter' and ', page'. -The string \fIQrf\fP contains the text for reference: -.ti +.5i -\&.ds Qrf See chapter \e\e*[Qrfh], page \e\e*[Qrfp]. -.br -\fIQrf\fP may be changed to support other languages. -Strings \fIQrfh\fP and \fIQrfp\fP are set by \fBGETR\fP -and contains the page and headernumber. -.TP -.B "GETST refname [varname]" -Includes the string saved with the second argument to \fB.SETR\fP. -Will be dummystring in pass 1. -If varname is used, \fBGETST\fP sets the stringvariable \fIvarname\fP to the -saved string. See \fBINITR\fP. -.TP -.B "H level [heading-text [heading-suffix]]" -Numbered section heading. -Section headers can have a level between 1 and 7, level 1 is the -top level. The text is given in \fIheading-text\fP, and must be -surrounded by double quotes if it contains spaces. -\fBHeading-suffix\fP is added to the header in the text but not in -the table of contents. This is normally used for footnote marks -and similar things. Don't use \fB\e*F\fP in \fIheading-suffix\fP, it won't -work. A manual label must be used, see \fBFS\fP. -.sp -An eventual paragraph, \fBP\fP, directly after \fBH\fP will be -ignored, \fBH\fP is taking care of spacing and indentation. -.sp -\fBPage ejection before heading\fP -.br -Number register \fBEj\fP controls page ejection before the heading. -Normally, a level one heading gets two blank lines before it, higher levels -gets only one. A new page is ejected before each -first-level heading if number register \fBEj\fP is 1. -All levels below or equal the value of \fBEj\fP gets a new page. -Default value for \fBEj\fP is 0. -.sp -\fBHeading break level\fP -.br -A line break occurs after the heading if the heading level is less -or equal to number register \fBHb\fP. -Default value 2. -.sp -\fBHeading space level\fP -.br -A blank line is inserted after the heading if the heading level is less -or equal to number register \fBHs\fP. -Default value 2. -.sp -Text will follow the heading on the same line if the level is greater -than both \fBHb\fP and \fBHs\fP. -.sp -\fBPost-heading indent\fP -.br -Indentation of the text after the heading is controlled by number -register \fBHi\fP, default value 0. -\fBHi\fP -.in +.5i -.T2 0 -The text will be left-justified. -.T2 1 -Indentation of the text will follow the value of number register \fBPt\fP, -see \fBP\fP. -.T2 2 -The text will be lined up with the first word of the heading. -.in -.sp -\fBCentered section headings\fP -.br -All headings whose level is equal or below number register \fBHc\fP -and also less than or equal to \fBHb\fP or \fBHs\fP -is centerered. -.sp -\fBFont control of the heading\fP -.br -The font of each heading level is controlled by string \fBHF\fP. -It contains a fontnumber or fontnam for each level. Default -is \fB2\ 2\ 2\ 2\ 2\ 2\ 2\fP (all headings in italic). -Could also be written as \fBI\ I\ I\ I\ I\ I\ I\fP. -All omitted values are presumed to be a 1. -.sp -\fBPoint size control\fP. -.br -String \fBHP\fP controls the pointsize of each heading, in the -same way as \fBHF\fP controls the font. -A value of 0 selects the default point size. -Default value is \fB0\ 0\ 0\ 0\ 0\ 0\ 0\fP. Beware that only the -point size changes, not the vertical size. -That can be controlled by the user specified macro \fBHX\fP and/or -\fBHZ\fP. -.sp -\fBHeading counters\fP -.br -Seven number registers, named \fBH1\fP thru \fBH7\fP contains -the counter for each heading level. -The values are printed using arabic numerals, this can be changed -with the macro \fBHM\fP (see below). -All marks ar concatenated before printing. To avoid this, set -number register \fBHt\fP to 1. That will only print the current -heading counter at each heading. -.sp -\fBAutomatic table of contents\fP -.br -All headings whose level is equal or below number register \fBCl\fP -is saved to be printed in the table of contents. Default value is 2. -.sp -\fBSpecial control of the heading, user-defined macros\fP. -.br -These macros can be defined by the user to get a finer control -of vertical spacing, fonts or other features. -Argument \fIlevel\fP is the level-argument to \fBH\fP, but -0 for unnumbered headings (see \fBHU\fP). -Argument \fIrlevel\fP is the real level, it is -set to number register \fBHu\fP for unnumbered headings. -Argument \fIheading-text\fP is the text argument to \fBH\fP and \fBHU\fP. -.sp -\fBHX\ \fP\fIlevel\ rlevel\ heading-text\fP -.br -\fBHX\fP is called just before the printing of the heading. -The following register is available for \fBHX\fP. -\fBHX\fP may alter \fB}0\fP, \fB}2\fP and \fB;3\fP. -.in +.5i -.T3 "string }0" -Contains the heading mark plus two spaces if \fIrlevel\fP is non-zero, -otherwise empty. -.T3 "register ;0" -Contains the position of the text after the heading. -0 means that the text should follow the heading on the same line, 1 -means that a line break should occur before the text and -2 means that a blank line should separate the heading and the text. -.T3 "string }2" -Contains two spaces if register \fB;0\fP is 0. It is used to -separate the heading from the text. The string -is empty if \fB;0\fP is non-zero. -.T3 "register ;3" -Contains the needed space in units after the heading. -Default is 2v. - -Can be used to change things like numbering (\fB}0\fP), -vertical spacing (\fB}2\fP) -and the needed space after the heading. -.in -.sp -\fBHY\ \fP\fIdlevel\ rlevel\ heading-text\fP -.br -\fBHY\fP is called after size and font calculations and -might be used to change indentation. -.sp -\fBHZ\ \fP\fIdlevel\ rlevel\ heading-text\fP -\fBHZ\fP is called after the printing of the heading, just before -\fBH\fP or \fBHU\fP exits. -Could be used to change the page header according to the section heading. -.TP -.B "HC [hyphenation-character]" -Set hyphenation character. -Default value is \e%. -Resets to the default if called without argument. -Hyphenation can be turned by setting number -register \fBHy\fP to 0 in the beginning of the file. -.TP -.B "HM [arg1 [arg2 [... [arg7]]]]" -Heading mark style. -Controls the type of marking for printing of the heading counters. -Default is 1 for all levels. -.sp -\fBArgument\fP -.in +.5i -.T2 1 -Arabic numerals. -.T2 0001 -Arabic numerals with leading zeroes, one or more. -.T2 A -Upper-case alphabetic -.T2 a -Lower-case alphabetic -.T2 I -Upper-case roman numerals -.T2 i -lower-case roman numerals -.T2 \fIempty\fP -Arabic numerals. -.in -.TP -.B "HU heading-text" -Unnumbered section header. -\fBHU\fP behavies like \fBH\fP at the level in number register \fBHu\fP. -See \fBH\fP. -.TP -.B "HX dlevel rlevel heading-text" -Userdefined heading exit. -Called just before printing the header. -See \fBH\fP. -.TP -.B "HY dlevel rlevel heading-text" -Userdefined heading exit. -Called just before printing the header. -See \fBH\fP. -.TP -.B "HZ dlevel rlevel heading-text" -Userdefined heading exit. -Called just after printing the header. -See \fBH\fP. -.TP -.B "I [italic-text [prev-font-text [italic-text [...]]]" -Italic. -Changes the font to italic if called without arguments. -With one argument it will set the word in italic. -With two argument it will concatenate them and set the first -word in italic and the second in the previous font. -There is no limit on the number of argument, all will be concatenated. -.TP -.B "IA [addressee-name [title]] -Begins specification of the addressee and addressee's address in -letter style. -Several names can be specified with empty \fBIA\fP/\fBIE\fP-pairs, but -only one address. -See \fBLT\fP. -.TP -.B "IB [italic-text [bold-text [italic-text [...]]]" -Italic-bold -Even arguments is printed in italic, odd in boldface. -See \fBI\fP. -.TP -.B IE -Ends the address-specification after \fPIA\fP. -.TP -.B "INITI filename [type]" -Initialize the new index system, sets the filename to collect -index lines in with \fBIND\fP. Argument \fItype\fP selects -teh type of index, page number, header marks or both. -The default is \fIN\fP. -.sp -\fBtype\fP -.in +.5i -.T2 N -Page numbers -.T2 H -Header marks -.T2 B -Both page numbers and header marks, tab separated -.in -.TP -.B "IND arg1 [arg2 [...]]" -\fBIND\fP writes a line in the index file selected by \fBINITI\fP -with all arguments and the page number or header mark separated by tabs. -.in +.5i -\fBExamples\fP -.br -arg1\etpage number -.br -arg1\etarg2\etpage number -.br -arg1\etheader mark -.br -arg1\etpage number\etheader mark -.in -.TP -.B "INDP" -\fBINDP\fP prints the index by running the command specified -by string variable \fBIndcmd\fP, normally \fIsort\ -t\et\fP. -\fBINDP\fP reads the output from the command to form -the index, normally in two columns (can be changed by defining \fBTYIND\fP). -The index is printed with string variable \fBIndex\fP as header, -default is \fBINDEX\fP. One-column processing is -returned after the list. \fBINDP\fP will call the -user-defined macros \fBTXIND\fP, \fBTYIND\fP and \fBTZIND\fP if defined. -\fBTXIND\fP is called before printing \fBINDEX\fP, \fBTYIND\fP -is called instead of printing \fBINDEX\fP. \fBTZIND\fP is called -after the printing and should take care of restoring to normal -operation again. - -.TP -.B "INITR filename" -Initialize the refencemacros. References will be written to -\fIfilename.tmp\fP and \fIfilename.qrf\fP. Requires two passes with groff. -The first looks for references and the second includes them. -\fBINITR\fP can be used several times, but it is only the first -occurrence of \fBINITR\fP that is active. -Option \fB-U\fP might be needed if \fBunsafe\fP-errors occur. -See also \fBSETR\fP, \fBGETPN\fP and \fBGETHN\fP. -.TP -.B "IR [italic-text [roman-text [italic-text [...]]]" -Italic-roman -Even arguments is printed in italic, odd in roman. -See \fBI\fP. -.TP -.B "LB text-indent mark-indent pad type [mark [LI-space [LB-space]]]" -List begin macro. -This is the common macro used for all lists. -\fIText-indent\fP is the number of spaces to indent the text from the -current indent. -.sp -\fIPad\fP and \fImark-indent\fP controls where to put the mark. -The mark is placed within the mark area, and \fImark-indent\fP -sets the number of spaces before this area. It is normally 0. -The mark area ends where the text begins. The start of the text -is still controlled by \fItext-indent\fP. -.sp -The mark is left justified whitin the mark area if \fIpad\fP is 0. -If \fIpad\fP is greater than 0, then \fImark-indent\fP is ignored, and -the mark is placed \fIpad\fP spaces before the text. -This will right justify the mark. -.sp -If \fItype\fP is 0 the list will have either a hanging indent or, if -argument \fImark\fP is given, the string \fImark\fP as mark. -.sp -If \fItype\fP is greater than 0 automatic numbering will occur, arabic -if \fImark\fP is empty. \fIMark\fP can then be any of \fB1\fP, \fBA\fP, -\fBa\fP, \fBI\fP or \fBi\fP. -.sp -\fIType\fP selects one of six possible ways to display the mark. -.br -\fBtype\fP -.in +.6i -.T2 1 -x. -.T2 2 -x) -.T2 3 -(x) -.T2 4 -[x] -.T2 5 -<x> -.T2 6 -{x} -.in -.sp -Every item in the list will get \fILI-space\fP number of blank lines -before them. Default is 1. -.sp -\fBLB\fP itself will print \fILB-space\fP blank lines. Default is 0. -.TP -.B "LC [list-level]" -List-status clear -Terminates all current active lists down to \fIlist-level\fP, or 0 -if no argmuent is given. This is used by \fBH\fP to clear any -active list. -.TP -.B "LE [1]" -List end. -Terminate the current list. \fBLE\fP outputs a blank line -if an argument is given. -.TP -.B "LI [mark [1]]" -List item precedes every item in a list. Without argument \fBLS\fP -will print the mark determined by the current list type. By giving -\fBLI\fP one argument, it will use that as the mark instead. -Two arguments to \fBLI\fP will make \fImark\fP a prefix to -the current mark. -There will be no separating space between the prefix -and the mark if the second argument is \fB2\fP instead of \fB1\fP. -This behaviour can also be achieved by setting number register -\fBLimsp\fP to zero. -A zero length \fImark\fP will make a hanging -indent instead. -.sp -A blank line is normally printed before the list item. This behaviour -can be controlled by number register \fBLs\fP. Pre-spacing -will occur for each list-level less than or equal to \fBLs\fP. -Default value is 99. (Nesting of lists is unlimited. :-) -.sp -The indentation can be changed thru number register \fBLi\fP. -Default is 6. -.sp -All lists begins with a list initialization macro, \fBLB\fP. -There are, however, seven predefined listtypes to -make lists easier to use. They all call \fBLB\fP with different -default values. -.in +.5i -.T2 \fBAL\fP -Automatically Incremented List -.T2 \fBML\fP -Marked List -.T2 \fBVL\fP -Variable-Item List -.T2 \fBBL\fP -Bullet List -.T2 \fBDL\fP -Dash List -.T2 \fBRL\fP -Reference List -.T2 \fBBVL\fP -Broken Varable List. -.in -These lists are described at other places in this manual. See also \fBLB\fP. -.TP -.B "LT [arg]" -Formats a letter in one of four different styles depending -on the argument. -See also \fBINTERNALS\fP. -.in +.5i -.T2 \fBArg -Style\fP -.T2 BL -Blocked. Date line, return address, writer's address and closing -begins at the center of the line. All other lines begins at the left margin. -.T2 SB -Semi-blocked. Same as blocked, except that the first line in every -paragraph is indented five spaces. -.T2 FB -Full-blocked. All lines begin at the left margin. -.T2 SP -Simplified. Almost the same as the full-blocked style. Subject and -the writer'sidentification is printed in all-capital. -.in -.TP -.B "LO type [arg]" -Specify options in letter (see \fB.LT\fP). -This is a list of the standard options: -.in +.5i -.T2 CN -Confidential notation. Prints \fBRESTRICTED\fP on the second line -below the date line. Any argument replaces \fBRESTRICTED\fP. -See also string variable \fBLetCN\fP. -.T2 RN -Reference notation. Prints \fBIn reference to:\fP and the argument -two lines below the date line. -See also string variable \fBLetRN\fP. -.T2 AT -Attention. Prints \fBATTENTION:\fP and the argument below the inside address. -See also string variable \fBLetAT\fP. -.T2 SA -Salutation. Prints \fBTo Whom It May Concern:\fP or the argument if -it was present. The salutation is printed two lines below the inside address. -See also string variable \fBLetSA\fP. -.T2 SJ -Subject line. Prints the argument as subject prefixed with \fBSUBJECT:\fP -two lines below the inside address, except in letter type \fBSP\fP. -Then the subject is printed in all-captial without any prefix. -See also string variable \fBLetSJ\fP. -.in -.TP -.B "MC column-size [column-separation] " -Begin multiple columns. Return to normal with \fB1C\fP. -\fBMC\fP will create as many columns as the current line length permits. -\fIColumn-size\fP is the width of each column, and \fIcolumn-separation\fP -is the space between two columns. Default separation is the -column-size/15. -See also \fB1C\fP. -.TP -.B "ML mark [text-indent [1]]" -Marked list start. The \fImark\fP argument will be printed before -each list item. -\fIText-indent\fP sets the indent and overrides \fBLi\fP. -A third argument will prohibit printing of a blank line before each -item. -.TP -.B "MT [arg [addressee]]" -Memorandum type. -The \fIarg\fP is part of a filename in \fI@TMAC_MDIR@/*.MT\fP. -Memorandum type 0 thru 5 are supported, including \fI"string"\fP. -\fIAddresse\fP just sets a variable, used in the AT&T macros. -.br -\fBarg\fP -.in +.5i -.T2 0 -Normal memorandum, no type printed -.T2 1 -Memorandum with \fIMEMORANDUM FOR FILE\fP printed -.T2 2 -Memorandum with \fIPROGRAMMER'S NOTES\fP printed -.T2 3 -Memorandum with \fIENGINEER'S NOTES\fP printed -.T2 4 -Released paper style -.T2 5 -External letter style -.in -See also \fBCOVER\fP/\fBCOVEND\fP, a more flexible type of front page. -.TP -.B "MOVE y-pos [x-pos [line-length]]" -Move to a position, pageoffset set to \fIx-pos\fP. -If \fIline-length\fP is not given, the difference between -current and new pageoffset is used. -Use \fBPGFORM\fP without arguments to return to normal. -.TP -.B "MULB cw1 space1 [cw2 space2 [cw3 ...]]" -Begin a special multi-column mode. Every columns width must be specified. -Also the space between the columns must be specified. The last column -does not need any space-definition. MULB starts a diversion and MULE -ends the diversion and prints the columns. -The unit for width and space is 'n', but MULB accepts all -normal unitspecifications like 'c' and 'i'. -MULB operates in a separate environment. -.TP -.B "MULN" -Begin the next column. This is the only way to switch column. -.TP -.B "MULE" -End the multi-column mode and print the columns. -.TP -.B "nP [type]" -Print numbered paragraph with header level two. Se \fB.P\fP. -.TP -.B "NS [arg [1]]" -Prints different types of notations. The argument selects between -the predefined type of notations. If the second argument is available, -then the argument becomes the entire notation. -If the argument doesn't exist in the predefined, it will be -printed as \fBCopy (\fP\fIarg\fP\fB) to\fP. -It is possible to add more standard notations, see the string variable -\fBLetns\fP and \fBLetnsdef\fP. -.nf -.in +.5i -.T2 \fBArg -Notation\fP -.T2 \fInone\fP -Copy To -.T2 """"" -Copy To -.T2 1 -Copy To (with att.) to -.T2 2 -Copy To (without att.) to -.T2 3 -Att. -.T2 4 -Atts. -.T2 5 -Enc. -.T2 6 -Encs. -.T2 7 -Under separate cover -.T2 8 -Letter to -.T2 9 -Memorandum to -.T2 10 -Copy (with atts.) to -.T2 11 -Copy (without atts.) to -.T2 12 -Abstract Only to -.T2 13 -Complete Memorandum to -.T2 14 -CC -.in -.fi -.TP -.B "ND new-date" -New date. Override the current date. Date is not -printed if \fInew-date\fP is an empty string. -.TP -.B "OF [arg]" -Odd-page footer, a line printed just above the normal footer. -See \fBEF\fP and \fBPF\fP. -.TP -.B "OH [arg]" -Odd-page header, a line printed just below the normal header. -See \fBEH\fP and \fBPH\fP. -.TP -.B OP -Make sure that the following text is printed at the top -of an odd-numbered page. Will not output an empty page -if currently at the top of an odd page. -.TP -.B "P [type]" -Begin new paragraph. -\fBP\fP without argument will produce left justified text, even -the first line of the paragraph. This is the same as setting -\fItype\fP to 0. If the argument is 1, then the first line -of text following \fBP\fP will be indented by the number of -spaces in number register \fBPi\fP, normally 5. -.sp -Instead of giving 1 as argument to \fBP\fP it is possible to set the -paragraph type in number register \fBPt\fP. Using 0 and 1 -will be the same as adding that value to \fBP\fP. -A value of 2 will indent all paragraphs, except after -headings, lists and displays. -.sp -The space between two paragraphs is controlled by number register \fBPs\fP, -and is 1 by default (one blank line). -.TP -.B "PGFORM [linelength [pagelength [pageoffset [1]]]]" -Sets linelength, pagelength and/or pageoffset. -This macro can be used for special formatting, like letterheads -and other. -It is normally the first command in a file, though it's not necessary. -\fBPGFORM\fP can be used without arguments -to reset everything after a \fBMOVE\fP. -A line-break is done unless the fourth argument is given. -This can be used to avoid the pagenumber on the first page while setting -new width and length. -(It seems as if this macro sometimes doesn't work too well. -Use the command line arguments -to change linelength, pagelength and pageoffset instead. Sorry.) -.TP -.B PGNH -No header is printed on the next page. Used to get rid off -the header in letters or other special texts -This macro must be used before any text to inhibit the pageheader -on the first page. -.TP -.B PIC [-L] [-C] [-R] [-I n] filename [width [height]] -\fBPIC\fP includes a Postscript file in the document. -The macro depends on \fBmgm_ref\fP and \fBINITR\fP. -\fB-L\fP, \fB-C\fP, \fB-R\fP and \fB-I n\fP adjusts the picture -or indents it. The optionally \fIwidth\fP and \fIheight\fP -can also be given to resize the picture. -.TP -.B PE -Picture end. -Ends a picture for \fB@TMAC_M@pic\fP, see the manual for \fB@TMAC_M@pic\fP. -.TP -.B "PF [arg]" -Page footer. -\fBPF\fP sets the line to be printed at the bottom of each page. -Normally empty. See \fBPH\fP for the argument specification. -.TP -.B "PH [arg]" -Page header, a line printed at the top of each page. -The argument should be specified as "'left-part'center-part'right-part'", -where left-, center- and right-part is printed left-justified, centered -and right justified. The character \fB%\fP is changed to the current -page number. The default page-header is "''- % -''", the page -number between two dashes. -.TP -.B PS -Picture start (from pic). Begins a picture for \fB@TMAC@pic\fP, see -the manual. -.TP -.B PX -Page-header user-defined exit. -\fBPX\fP is called just after the printing of the page header -in \fIno-space\fP mode. -.TP -.B R -Roman. -Return to roman font, see also \fBI\fP. -.TP -.B "RB [roman-text [bold-text [roman-text [...]]]" -Roman-bold. -Even arguments is printed in roman, odd in boldface. -See \fBI\fP. -.TP -.B "RD [prompt [diversion [string]]]" -Read from standard input to diversion and/or string. -The text will be saved in a diversion named \fIdiversion\fP. -Recall the text by writing the name of the diversion after a dot -on an empty line. A string will also be defined if -\fIstring\fP is given. \fIDiversion\fP and/or \fIprompt\fP can -be empty (""). -.TP -.B RF -Reference end. Ends a reference definition and returns to normal -processing. See \fBRS\fP. -.TP -.B "RI [roman-text [italic-text [roman-text [...]]]" -Even arguments is printed in roman, odd in italic. -See \fBI\fP. -.TP -.B "RL [text-indent [1]]" -Reference list start -Begins a list where each item is preceded with a automatically -incremented number between -square brackets. -\fIText-indent\fP changes the default indentation -.TP -.B "RP [arg1 [arg2]]" -Produce reference page. -\fBRP\fP can be used if a reference page is wanted somewhere in the -document. It is not needed if \fBTC\fP is used to produce -a table of content. The reference page will then be printed automatically. -.sp -The reference counter will not be resetted if \fIarg1\fP is 1. -.sp -\fIArg2\fP tells \fBRP\fP whether to eject a page or not. -.br -\fBArg2\fP -.in +.5i -.T2 0 -The reference page will be printed on a separate page. -This is -the default. -.T2 1 -Do not eject page after the list. -.T2 2 -Do not eject page before the list. -.T2 3 -Do not eject page before and after the list. -.in -The reference items will be separated by a blank line. -Setting number register \fBLs\fP to 0 will suppress the line. -.sp -The string \fBRp\fP contains the reference page title and -is normally set to \fIREFERENCES\fP. -.TP -.B "RS [string-name]" -\fBRS\fP begins an automatically numbered reference definition. -Put the string \fB\e*(Rf\fP where the reference mark -should be and write the reference between \fBRS\fP/\fBRF\fP -at next new line after the reference mark. The reference number -is stored in number register \fB:R\fP. -If \fIstring-name\fP is given, a string with that name -will be defined and contain the current reference mark. -The string can be referenced as \fB\e*[\fIstring-name\fP]\fP later in -the text. -.TP -.B "S [size [spacing]]" -Set point size and vertical spacing. If any argument is equal 'P', then -the previous value is used. A 'C' means current value, and 'D' default value. -If '+' or '-' is used before the value, then increment or decrement of -the current value will be done. -.TP -.B "SA [arg]" -Set right-margin justification. -Justification is normally turned on. -No argumenent or \fB0\fP turns off justification, a \fB1\fP turns on -justification. -.TP -.B "SETR refname [string]" -Remember the current header and page-number as refname. -Saves \fIstring\fP if \fIstring\fP is defined. \fIstring\fP is retrieved -with \fB.GETST\fP. -See \fBINITR\fP. -.TP -.B "SG [arg [1]]" -Signature line. Prints the authors name(s) after the formal closing. -The argument will be appended to the reference data, printed -at either the first or last author. The reference data is the location, -department and initials specified with \fB.AU\fP. -It will be printed at the first author, otherwise at the last. -No reference data will be printed if the author(s) is specified -thru \fB.WA\fP/\fB.WE\fP. -See \fBLetter internals\fP. -.TP -.B "SK [pages]" -Skip pages. -If \fIpages\fP is \fB0\fP or omitted, a skip to the next page -will occur unless it is already at the top of a page. -Otherwise it will skip \fIpages\fP pages. -.TP -.B "SM string1 [string2 [string3]]" -Make a string smaller. -If \fIstring2\fP is given, \fIstring1\fP will be smaller and \fIstring2\fP -normal, concatenated with \fIstring1\fP. With three argument, all is -concatenated, but only \fIstring2\fP is made smaller. -.TP -.B "SP [lines]" -Space vertically. \fIlines\fP can have any scalingfactor, like \fI3i\fP or -\fI8v\fP. Several \fBSP\fP in a line will only produce the -maximum number of lines, not the sum. \fBSP\fP will also be ignored -until the first textline in a page. Add a \fB\e&\fP before \fBSP\fP -to avoid this. -.TP -.B TAB -reset tabs to every 5n. Normally used to reset any previous tabpositions. -.TP -.B "TB [title [override [flag [refname]]]]" -Table title, arguments are the same as for \fBEC\fP. -\fBTB\fP uses the number register \fBTb\fP as counter. -The string \fBLt\fP controls the title of the -List of Tables, default is \fILIST OF TABLES\fP. -The List of Tables will only be printed if number register \fBLt\fP -is 1, default 1. -The string \fBLitb\fP contains the word \fITABLE\fP, wich -is printed before the number. -.br -Special handling of the title will occur if -\fBTB\fP is used inside \fBDS\fP/\fBDE\fP, it will not be -affected by the format of \fBDS\fP. -.TP -.B "TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]" -Table of contents. -This macro is normally used at the last line of the document. -It generates a table of contents with headings up to the level -controlled by number register \fBCl\fP. Note that \fBCl\fP controls -the saving of headings, it has nothing to do with \fBTC\fP. -Headings with level less than or equal to \fIslevel\fP will get -\fIspacing\fP number of lines before them. -Headings with level less than or equal to \fItlevel\fP will have -their page numbers right justified with dots or spaces separating -the text and the page number. Spaces is used if \fItab\fP -is greater than zero, otherwise dots. -Other headings will have the -page number directly at the end of the heading text (\fIragged right\fP). -.sp -The rest of the arguments will be printed, centered, before the -table of contents. -.sp -The user-defined macros \fBTX\fP and \fBTY\fP are used if \fBTC\fP is called -with at most four arguments. \fBTX\fP is called before the printing -of \fICONTENTS\fP, and \fBTY\fP is called instead of printing \fICONTENTS\fP. -.sp -Equivalent macros can be defined for list of figures, tables, equations -and excibits by defining \fBTXxx\fP or \fBTYxx\fP, where \fBxx\fP -is \fBFg\fP, \fBTB\fP, \fBEC\fP or \fBEX\fP. -.sp -String \fBCi\fP can be set to control the indentations for each heading-level. -It must be scaled, like \fB.ds\ Ci\ .25i\ .5i\ .75i\ 1i\ 1i\fP. -The indentation is normally controlled by the maxlength of headings -in each level. -.sp -All texts can be redefined, new stringvariables -\fILifg\fP, \fILitb\fP, \fILiex\fP, \fILiec\fP and \fILicon\fP contains -"Figure", "TABLE", "Exhibit", "Equation" and "CONTENTS". -These can be redefined to other languages. -.TP -.B TE -Table end. See \fBTS\fP. -.TP -.B "TH [N]" -Table header. See \fBTS\fP. -\fBTH\fP ends the header of the table. This header will -be printed again if a page-break occurs. -Argument \fIN\fP isn't implemented yet. -.TP -.B TL [charging-case number(s) [filing-case number(s)] -Begin title of memorandum. -All text up to the next \fBAU\fP is included in the title. -\fICharging-case number\fP and \fIfiling-case\fP is saved -for use in the front page processing. -.TP -.B TM [num1 [num2 [...]]] -Technical memorandumnumbers used in \fB.MT\fP. Unlimited number -of arguments may be given. -.TP -.B TP -Top of page user-defined macro. -This macro is called instead of the normal page header. It is -possible to get complete control over the header. -Note that header and footer is printed in a separate environment. -Linelength is preserved though. -.TP -.B "TS [H]" -Table start. This is the start of a table specification -to \fB@TMAC@tbl\fP. See separate manual for \fB@TMAC@tbl\fP. -\fBTS\fP ends with \fBTE\fP. -Argument \fIH\fP tells \fBm@TMAC@m\fP that the table -has a header. See \fBTH\fP. -.TP -.B TX -Userdefined table of contents exit. -This macro is called just before \fBTC\fP prints the word \fICONTENTS\fP. -See \fBTC\fP. -.TP -.B TY -Userdefined table of contents exit (no "CONTENTS"). -This macro is called instead of printing \fICONTENTS\fP. -See \fBTC\fP. -.TP -.B VERBON [flag [pointsize [font]]] -Begin verbatim output using courier font. -Usually for printing programs. -All character has equal width. -The pointsize can be changed with -the second argument. By specifying the font-argument -it is possible to use another font instead of courier. -\fIflag\fP control several special features. -It contains the sum of all wanted features. -.in +.5i -.T2 Value -Description -.T2 1 -Disable the escape-character (\e). This is normally turned on during -verbose output. -.T2 2 -Add en empty line before the verbose text. -.T2 4 -Add en empty line after the verbose text. -.T2 8 -Print the verbose text with numbered lines. This adds four digitsized -spaces in the beginning of each line. Finer control is available with -the string-variable \fBVerbnm\fP. It contains all arguments to the -\fBtroff\fP-command \fB.nm\fP, normally '1'. -.T2 16 -Indent the verbose text with five 'n':s. This is controlled by the -number-variable \fBVerbin\fP (in units). -.in -.TP -.B VERBOFF -End verbatim output. -.TP -.B "VL text-indent [mark-indent [1]]" -Variable-item list has no fixed mark, it assumes that -every \fBLI\fP have a mark instead. -\fIText-indent\fP sets the indent to the text, and \fImark-indent\fP -the distance from the current indent to the mark. -A third argument will prohibit printing of a blank line before each -item. -.TP -.B "VM [top [bottom]]" -Vertical margin. -.TP -.B "WA [writer-name [title]] -Begins specification of the writer and writer's address. -Several names can be specified with empty \fBWA\fP/\fBWE\fP-pairs, but -only one address. -.TP -.B WE -Ends the address-specification after \fP.WA\fP. -.TP -.B "WC [format]" -Footnote and display width control. -.in +.5i -.T2 N -Set default mode, \fB-WF\fP, \fB-FF\fP, \fB-WD\fP and \fBFB\fP. -.T2 WF -Wide footnotes, wide also in two-column mode. -.T2 -WF -Normal footnote width, follow column mode. -.T2 FF -All footnotes gets the same width as the first footnote encountered. -.T2 -FF -Normal footnotes, width follows \fBWF\fP and \fB-WF\fP. -.T2 WD -Wide displays, wide also in two-column mode. -.T2 -WD -Normal display width, follow column mode. -.T2 FB -Floating displays generates a line break when printed on the current page. -.T2 -FB -Floating displays does not generate line break. -.in -.sp 3 -.LP -.\"######################################################################## -.LP -.B "Strings used in m@TMAC_M@:" -.TP -.B App -A string containing the word "APPENDIX". -.TP -.B Apptxt -.TP -The current appendix text. -.B "EM" -Em dash string -.TP -.B H1txt -Will be updated by \fB.H\fP and \fB.HU\fP to the current heading text. -Also updated in table of contents & friends. -.TP -.B HF -Fontlist for headings, normally "2 2 2 2 2 2 2". -Nonnumeric fontnames may also be used. -.TP -.B HP -Pointsize list for headings. Normally "0 0 0 0 0 0 0" which is the same as -"10 10 10 10 10 10 10". -.TP -.B Index -.TP -Contains \fIINDEX\fP. -.B Indcmd -.TP -Contains the index command, \fIsort\ -t\et\fP. -.B Lifg -String containing \fIFigure\fP. -.TP -.B Litb -String containing \fITABLE\fP. -.TP -.B Liex -String containing \fIExhibit\fP. -.TP -.B Liec -String containing \fIEquation\fP. -.TP -.B Licon -String containing \fICONTENTS\fP. -.TP -.B Lf -Contains "LIST OF FIGURES". -.TP -.B Lt -Contains "LIST OF TABLES". -.TP -.B Lx -Contains "LIST OF EXHIBITS". -.TP -.B Le -Contains "LIST OF EQUATIONS". -.TP -.B Letfc -Contains "Yours very truly,", used in \fB.FC\fP. -.TP -.B Letapp -Contains "APPROVED:", used in \fB.AV.\fP. -.TP -.B Letdate -Contains "Date", used in \fB.AV.\fP. -.TP -.B LetCN -Contains "CONFIDENTIAL", used in \fB.LO CN\fP. -.TP -.B LetSA -Contains "To Whom It May Concern:", used in \fB.LO SA\fP. -.TP -.B LetAT -Contains "ATTENTION:", used in \fB.LO AT\fP. -.TP -.B LetSJ -Contains "SUBJECT:", used in \fB.LO SJ\fP. -.TP -.B LetRN -Contains "In reference to:", used in \fB.LO RN\fP. -.TP -.B Letns -is an array containing the different strings used in \fB.NS\fP. -It is really a number of stringvariables prefixed with \fBLetns!\fP. -If the argument doesn't exist, it will be included -between \fB()\fP with \fBLetns!copy\fP as prefix and \fBLetns!to\fP as suffix. -Observe the space after \fBcopy\fP and before \fBto\fP. -.nf -.ta 1.5i -\fBName Value\fP -Letns!0 Copy to -Letns!1 Copy (with att.) to -Letns!2 Copy (without att.) to -Letns!3 Att. -Letns!4 Atts. -Letns!5 Enc. -Letns!6 Encs. -Letns!7 Under separate cover -Letns!8 Letter to -Letns!9 Memorandum to -Letns!10 Copy (with atts.) to -Letns!11 Copy (without atts.) to -Letns!12 Abstract Only to -Letns!13 Complete Memorandum to -Letns!14 CC -Letns!copy Copy " -Letns!to " to -.fi -.TP -.B Letnsdef -Defines the standard-notation used when no argument is given -to \fB.NS\fP. Default is \fB0\fP. -.TP -.B "MO1 - MO12" -Strings containing \fIJanuary\fP thru \fIDecember\fP. -.TP -.B Qrf -String containing "See chapter \e\e*[Qrfh], page \e\en[Qrfp].". -.TP -.B Rp -Contains "REFERENCES". -.TP -.B Tcst -Contains current status of table of contents and list of XXXX. -Empty outside \fB.TC\fP. -Useful in user-defined macros like \fB.TP\fP. -.nf -.ta 1.5i -\fBValue Meaning\fP -co Table of contents -fg List of figures -tb List of tables -ec List of equations -ex List of exhibits -ap Appendix -.fi -.ta -.TP -.B Tm -Contains \e(tm, trade mark. -.TP -.B Verbnm -Argument to \fB.nm\fP in \fB.VERBON\fP, default: \fB1\fP. -.\"----------------------------------- -.LP -.B "Number variables used in m@TMAC_M@:" -.TP -.B Aph -Print an appendix-page for every new appendix -if this numbervariable is non-zero. -No output will occur if \fBAph\fP is zero, but there will always -be an appendix-entry in the 'List of contents'. -.TP -.B Cl -Contents level [0:7], contents saved if heading level <= Cl, default 2. -.TP -.B Cp -Eject page between LIST OF XXXX if Cp == 0, default 0. -.TP -.B D -Debugflag, values >0 produces varying degree of debug. A value of 1 -gives information about the progress of formatting, default 0. -.TP -.B De -Eject after floating display is output [0:1], default 0. -.TP -.B Dsp -Controls the space output before and after static displays -if defined. Otherwise is the value of Lsp used. -.TP -.B Df -Floating keep output [0:5], default 5. -.TP -.B Ds -\fBLsp\fP space before and after display if == 1 [0:1], default 1. -.TP -.B Ej -Eject page, default 0. -.TP -.B Eq -Equation lable adjust 0=left, 1=right. Default 0. -.TP -.B Fs -Footnote spacing, default 1. -.TP -.B "H1-H7" -Heading counters -.TP -.B H1dot -Append a dot after the level one heading number if > 0. Default is 1. -.TP -.B H1h -.TP -Copy of number register \fBH1\fP, but it is incremented -just before the page break. Useful in user defined header macros. -.B Hb -Heading break level [0:7], default 2. -.TP -.B Hc -Heading centering level, [0:7]. Default 0. -.TP -.B Hi -Heading temporary indent [0:2], default 1. -.br -0\ ->\ 0 indent, left margin -.br -1\ ->\ indent to right , like .P 1 -.br -2\ ->\ indent to line up with text part of preceding heading -.TP -.B Hps -Numbervariable with the heading pre-space level. If the heading-level -is less than or equal to \fBHps\fP, then two lines will precede the -section heading instead of one. Default is first level only. -The real amount of lines is controlled by the variables \fBHps1\fP and -\fBHps2\fP. -.TP -.B Hps1 -This is the number of lines preceding \fB.H\fP when the heading-level -is greater than \fBHps\fP. Value is in units, normally 0.5. -.TP -.B Hps2 -This is the number of lines preceding \fB.H\fP when the heading-level -is less than or equal to \fBHps\fP. Value is in units, normally 1. -.TP -.B Hs -Heading space level [0:7], default 2. -.TP -.B Hss -This is the number of lines that follows \fB.H\fP when the heading-level -is less than or equal to \fBHs\fP. Value is in units, normally 1. -.TP -.B Ht -Heading numbering type, default 0. -0 -> multiple (1.1.1 ...) -.br -1 -> single -.TP -.B Hu -Unnumbered heading level, default 2. -.TP -.B Hy -Hyphenation in body, default 1. -.br -0\ ->\ no hyphenation -.br -1\ ->\ hyphenation 14 on -.TP -.B Letwam -Max lines in return-address, used in \fB.WA\fP/\fB.WE\fP. Default 14. -.TP -.B "Lf, Lt, Lx, Le" -Enables (1) or disables (0) the printing of List of figures, -List of tables, List of exhibits and List of equations. -Default: Lf=1, Lt=1, Lx=1, Le=0. -.TP -.B Li -List indent, used by .AL, default 6. -.TP -.B Limsp -Flag for space between prefix and mark in automatic lists (.AL). -.br -0\ ==\ no space -.br -1\ ==\ space -.TP -.B Ls -List space, if current listlevel > Ls then no spacing will occur around lists. -Default 99. -.TP -.B Lsp -.TP -The size of an empty line. Normally 0.5v, but it is 1v -if \fBn\fP is set (\fB.nroff\fP). -.TP -.B N -Numbering style [0:5], default 0. -.br -0\ ==\ (default) normal header for all pages. -.br -1\ ==\ header replaces footer on first page, header is empty. -.br -2\ ==\ page header is removed on the first page. -.br -3\ ==\ "section-page" numbering enabled. -.br -4\ ==\ page header is removed on the first page. -.br -5\ ==\ "section-page" and "section-figure" numbering enabled. -Se also the number-register Sectf and Sectp. -.TP -.B Np -Numbered paragraphs, default 0. -.br -0\ ==\ not numbered -.br -1\ ==\ numbered in first level headings. -.TP -.B Of -Format of figure,table,exhibit,equation titles, default 0. -.br -0\ =\ ". " -.br -1\ =\ " - " -.TP -.B P -Current page-number, normally the same as % unless "section-page" numbering -is enabled. -.TP -.B Pi -paragraph indent, default 5. -.TP -.B Pgps -Controls whether header and footer pointsize should follow the current -setting or just change when the header and footer is defined. -.in +.5i -.ti -.5i -.T2 Value -Description -.T2 0 -Pointsize will only change to the current setting when \fB.PH\fP, \fB.PF\fP, -\&\fB.OH\fP, \fP.EH\fP, \fB.OF\fP or \fB.OE\fP is executed. -.T2 1 -Pointsize will change after every \fB.S\fP. This is the default. -.in -.TP -.B Ps -paragraph spacing, default 1. -.TP -.B Pt -Paragraph type, default 0. -.br -0\ ==\ left-justified -.br -1\ ==\ indented .P -.br -2\ ==\ indented .P except after .H, .DE or .LE. -.TP -.B Sectf -Flag controlling "section-figures". A non-zero value enables this. -Se also register N. -.TP -.B Sectp -Flag controlling "section-page-numbers". A non-zero value enables this. -Se also register N. -.TP -.B Si -Display indent, default 5. -.TP -.B Verbin -Indent for \fB.VERBON\fP, default 5n. -.TP -.B .mgm -Always 1. -.LP -.SH INTERNALS -The letter macros is using different submacros depending on -the letter type. The name of the submacro has the letter type -as suffix. It is therefore possible to define other letter types, either -in the national macro-file, or as local additions. -\&\fB.LT\fP will set the number variables \fBPt\fP and \fBPi\fP to 5 and 0. -The following strings and macros must be defined for a new letter type: -.TP -\fBlet@init_\fP\fItype\fP -This macro is called directly by \fB.LT\fP. It is supposed to initialize -variables and other stuff. -.TP -\fBlet@head_\fP\fItype\fP -This macro prints the letter head, and is called instead of the -normal page header. It is supposed to remove the alias \fBlet@header\fP, -otherwise it will be called for all pages. -.TP -\fBlet@sg_\fP\fItype\ name\ title\ n\ flag\ [arg1\ [arg2\ [...]]]\fP -\&\fB.SG\fP is calling this macro only for letters, memorandums has -its own processing. \fIname\fP and \fItitle\fP is specified -thru \fB.WA\fP/\fB.WB\fP. \fIn\fP is the counter, 1-max, and -\fIflag\fP is true for the last name. Any other argument to \fB.SG\fP -is appended. -.TP -\fBlet@fc_\fP\fItype\ closing\fP -This macro is called by \fB.FC\fP, and has the -formal closing as argument. -.LP -\&\fB.LO\fP is implemented as a general option-macro. \fB.LO\fP demands -that a string named \fBLet\fP\fItype\fP is defined, where \fItype\fP -is the letter type. -\&\fB.LO\fP will then assign the argument to the string -variable \fBlet*lo-\fP\fItype\fP. -.LP -.\".SH BUGS -.SH AUTHOR -Jörgen Hägg, Lund, Sweden <jh@axis.se>. -.SH FILES -.TP -.B @MACRODIR@/tmac.@TMAC_M@ -.TP -.B @TMAC_MDIR@/*.cov -.TP -.B @TMAC_MDIR@/*.MT -.TP -.B @TMAC_MDIR@/locale -.SH "SEE ALSO" -.BR groff (@MAN1EXT@), -.BR @g@troff (@MAN1EXT@), -.BR @g@tbl (@MAN1EXT@), -.BR @g@pic (@MAN1EXT@), -.BR @g@eqn (@MAN1EXT@) -.br -.BR mm (@MAN7EXT@) -.BR m@TMAC_M@se (@MAN7EXT@) diff --git a/gnu/usr.bin/groff/mm/groff_mmse.7_in b/gnu/usr.bin/groff/mm/groff_mmse.7_in deleted file mode 100644 index ab5830766fa..00000000000 --- a/gnu/usr.bin/groff/mm/groff_mmse.7_in +++ /dev/null @@ -1,82 +0,0 @@ -.\" -.\" $Id: groff_mmse.7_in,v 1.1 2000/04/09 08:25:19 millert Exp $ -.\" Skrivet av Jörgen Hägg, Lund, Sverige -.\" -.TH GROFF_MMSE @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" -.SH NAMN -groff_mmse \- svenska mm makro för groff -.SH SYNTAX -.B groff -.B \-m@TMAC_M@se -[ -.IR flaggor .\|.\|. -] -[ -.IR filer .\|.\|. -] -.SH BESKRIVNING -\fBm@TMAC_M@se\fP är en svensk variant av \fBm@TMAC_M@\fP. Alla texter -är översatta. En A4 sida får text som är 13 cm bred, 3.5 cm indragning -samt är 28.5 cm hög. -Det finns stöd för brevuppställning enligt svensk standard -för vänster och högerjusterad text. -.LP -\fBCOVER\fP kan använda \fIse_ms\fP som argument. Detta ger ett -svenskt försättsblad. -Se \fBgroff_mm(@MAN7EXT@)\fP för övriga detaljer. -.SH BREV -Tillgängliga brevtyper: -.TP -.B ".LT SVV" -Vänsterställd löptext med adressat i position T0 (vänsterställt). -.TP -.B ".LT SVH" -Högerställd löptext med adressat i position T4 (passar -fönsterkuvert). -.LP -Följande extra LO-variabler används. -.TP -.B ".LO DNAMN\fI namn\fP" -Anger dokumentets namn. -.TP -.br -.B ".LO MDAT\fI datum\fP" -Mottagarens datum, anges under \fBErt datum:\fP (\fBLetMDAT\fP). -.TP -.br -.B ".LO BIL\fI sträng\fP" -Anger bilaga, nummer eller sträng med \fBBilaga\fP (\fBLetBIL\fP) -som prefix. -.TP -.br -.B ".LO KOMP\fI text\fP" -Anger kompletteringsuppgift. -.TP -.br -.B ".LO DBET\fI beteckning\fP" -Anger dokumentbeteckning eller dokumentnummer. -.TP -.br -.B ".LO BET\fI beteckning\fP" -Anger beteckning (ärendebeteckning i form av diarienummer eller liknande). -.TP -.br -.B ".LO SIDOR\fI antal\fP" -Anger totala antalet sidor och skrivs ut efter sidnumret inom -parenteser. -.LP -Om makrot \fB.TP\fP är definierat anropas det efter utskrift av brevhuvudet. -Där lägger man lämpligen in postadress och annat som brevfot. -.SH "SKRIVET AV" -Jörgen Hägg, Lund, Sweden <Jorgen.Hagg@axis.se> -.SH FILER -.B @MACRODIR@/tmac.@TMAC_M@se -.B @TMAC_MDIR@/se_*.cov -.SH "SE OCKSÅ" -.BR groff (@MAN1EXT@), -.BR @g@troff (@MAN1EXT@), -.BR @g@tbl (@MAN1EXT@), -.BR @g@pic (@MAN1EXT@), -.BR @g@eqn (@MAN1EXT@) -.br -.BR m@TMAC_M@ (@MAN7EXT@) diff --git a/gnu/usr.bin/groff/mm/mm/0.MT b/gnu/usr.bin/groff/mm/mm/0.MT deleted file mode 100644 index a8564a0d826..00000000000 --- a/gnu/usr.bin/groff/mm/mm/0.MT +++ /dev/null @@ -1,146 +0,0 @@ -.\"------------ -.\" $Id: 0.MT,v 1.4 2000/04/09 08:25:19 millert Exp $ -.\" Cover sheet. Memorandum type 0-3 and "string". -.\"------------ -.if !r Au .nr Au 1 -.nr cov*mt0-ind 1.1c -.de cov@print-title -.MOVE 4.8c 1.5c -.S 8 -subject: -.sp -1.1 -.S -.PGFORM -.ft \\*[@sdf_font] -.ll 9c -.fi -.cov*title -.ft -.ll -.nf -.if d cov*title-charge-case \fBCharge Case \\*[cov*title-charge-case]\fP -.if d cov*title-file-case \fBFile Case \\*[cov*title-file-case]\fP -.fi -.. -.\"------------ -.de cov@print-authors -.MOVE 5.7c 13.3c -.nf -.S 8 -\\$1: -.br -.S -.sp -1 -.in 0.8c -.ft \\*[@sdf_font] -.nr cov*i 0 1 -.while \\n+[cov*i]<=\\n[cov*au] \{\ -. cov@print-au1 \\n[cov*i] 1 -. if \\n[Au] \{\ -. cov@print-au2 \\n[cov*i] 3 4 -. cov@print-au2 \\n[cov*i] 6 5 -. cov@print-au1 \\n[cov*i] 7 -. cov@print-au1 \\n[cov*i] 8 -. cov@print-au1 \\n[cov*i] 9 -. \} -. if \\n[cov*i]<\\n[cov*au] .SP 1 -.\} -.ft -.if r cov*mt-tm-max \{\ -. SP 1 -. nr cov*i 0 1 -. ft \\*[@sdf_font] -TM -. in 1.5c -. sp -1 -. while \\n+[cov*i]<\\n[cov*mt-tm-max] \\*[cov*mt-tm!\\n[cov*i]] -. in -. ft -.\} -.fi -.PGFORM -.. -.\"------------ -.\" index arg1 -.de cov@print-au1 -.if d cov*au!\\$1!\\$2 \\*[cov*au!\\$1!\\$2] -.. -.\"------------ -.de cov@print-au2 -.\" index arg1 arg2 -.if d cov*au!\\$1!\\$2 \\*[cov*au!\\$1!\\$2] \c -.if \\$3=5 .if d cov*au!\\$1!\\$3 x\c -.if d cov*au!\\$1!\\$3 \\*[cov*au!\\$1!\\$3]\c -.br -.. -.\"------------ -.de cov@print-date -.MOVE 4.8c 13.3c -.S 8 -.nf -\\$1: -.br -.S -.sp -1 -.in 0.8c -\f[\\*[@sdf_font]]\\*[cov*new-date]\fP -.br -.fi -.PGFORM -.. -.\"------------ -.de cov@print-firm -.if d cov*firm \{\ -. MOVE 2.8c 0 17.7c -. S 18 -. rj 1 -\fB\\*[cov*firm]\fP -. S -. PGFORM -.\} -.. -.\"------------ -.de cov@print-abstract -.SP 3 -.if d cov*abstract \{\ -. misc@ev-keep cov*ev -. if \\n[cov*abs-ind]>0 \{\ -. in +\\n[cov*abs-ind]u -. ll -\\n[cov*abs-ind]u -. \} -. ce -\fI\\$1\fP -. SP 1.5 -. fi -. cov*abstract -. br -. ev -.\} -.. -.\"----------------- -.ds cov*mt0-txt!1 MEMORANDUM FOR FILE -.ds cov*mt0-txt!2 PROGRAMMER'S NOTES -.ds cov*mt0-txt!3 ENGINEER'S NOTES -.if d cov*default-firm .if !d cov*firm .ds cov*firm \\*[cov*default-firm] -.\" -.if !d cov*mt-printed \{\ -. cov@print-firm -. cov@print-title subject -. cov@print-date date -. cov@print-authors from -. cov@print-abstract \\*[cov*abs-name] -. SP 3 -. if (\*[cov*mt-type]>=1)&(\*[cov*mt-type]<=3) \{\ -. ce -\fI\*[cov*mt0-txt!\*[cov*mt-type]]\fP -. SP 1.5 -. \} -. if \*[cov*mt-type]=6 \{\ -. ce -\fI\*[cov*mt-type-text]\fP -. SP 1.5 -. \} -. pg@enable-top-trap -. pg@enable-trap -. ds cov*mt-printed -.\} diff --git a/gnu/usr.bin/groff/mm/mm/4.MT b/gnu/usr.bin/groff/mm/mm/4.MT deleted file mode 100644 index 73f6a534ade..00000000000 --- a/gnu/usr.bin/groff/mm/mm/4.MT +++ /dev/null @@ -1,79 +0,0 @@ -.\"------------ -.\" $Id: 4.MT,v 1.4 2000/04/09 08:25:19 millert Exp $ -.\" Cover sheet. Memorandum type 4 -.\"------------ -.de cov@print-title -.if !d cov*title .@error title (.TL) not defined! -.MOVE 2.4c -.S +4 -.ad c -.fi -.B -.cov*title -.br -.S -.R -.ad b -.PGFORM -.. -.\"------------ -.de cov@print-authors -.SP 0.5 -.I -.nr cov*i 0 1 -.while \\n+[cov*i]<=\\n[cov*au] \{\ -.ce -\\*[cov*au!\\n[cov*i]!1] -.br -.\} -.R -.PGFORM -.. -.\"------------ -.de cov@print-firm -.if !d cov*firm .@error firm (.AF) not defined! -.SP 0.5 -.ce -\\*[cov*firm] -.. -.\"------------ -.de cov@print-abstract -.SP 2 -.if d cov*abstract \{\ -. misc@ev-keep cov*ev -. init@reset -. if \\n[cov*abs-ind]>0 \{\ -. in +\\n[cov*abs-ind]u -. ll -\\n[cov*abs-ind]u -. \} -. ce -\fI\\*[cov*abs-name]\fP -. SP 2 -. fi -. cov*abstract -. br -. ev -.\} -.. -.\"----------------- -.if d cov*default-firm .if !d cov*firm .ds cov*firm \\*[cov*default-firm] -.if !d cov*mt-printed \{\ -. cov@print-title -. cov@print-authors -. cov@print-firm -. if !\n[cov*abs-arg] .cov@print-abstract -. SP 3 -. nr hd*cur-bline \n[nl] -. ds cov*mt-printed -. pg@enable-top-trap -. pg@enable-trap -.\} -.de CS -.pg@disable-top-trap -.SK -.cov@print-title -.cov@print-authors -.cov@print-firm -.cov@print-abstract -.. - diff --git a/gnu/usr.bin/groff/mm/mm/5.MT b/gnu/usr.bin/groff/mm/mm/5.MT deleted file mode 100644 index 7bc565a5e94..00000000000 --- a/gnu/usr.bin/groff/mm/mm/5.MT +++ /dev/null @@ -1,34 +0,0 @@ -.\"------------ -.\" $Id: 5.MT,v 1.4 2000/04/09 08:25:20 millert Exp $ -.\" Cover sheet. Memorandum type 5 -.\"------------ -.nr cov*mt0-ind 1.1c -.de cov@print-title -.B -.ll 9c -.fi -.cov*title -.R -.ll -.nf -.if d cov*title-charge-case \fBCharge Case \\*[cov*title-charge-case]\fP -.if d cov*title-file-case \fBFile Case \\*[cov*title-file-case]\fP -.fi -.. -.\"------------ -.de cov@print-date -.rj 1 -\f[\\*[@sdf_font]]\\*[cov*new-date]\fP -.br -.. -.\"------------ -.if !d cov*mt-printed \{\ -. SP 1.9c -. cov@print-title -. SP 1.2c -. cov@print-date -. SP 3 -. pg@enable-top-trap -. pg@enable-trap -. ds cov*mt-printed -.\} diff --git a/gnu/usr.bin/groff/mm/mm/ms.cov b/gnu/usr.bin/groff/mm/mm/ms.cov deleted file mode 100644 index 2e0f21baff4..00000000000 --- a/gnu/usr.bin/groff/mm/mm/ms.cov +++ /dev/null @@ -1,84 +0,0 @@ -.\"------------ -.\" $Id: ms.cov,v 1.4 2000/04/09 08:25:20 millert Exp $ -.\" Cover sheet. Mostly like ms cover. -.\"------------ -.de cov@print-title -.in 0 -.misc@ev-keep cov*ev -.init@reset -.ad c -.hy 0 -.fi -.B -.cov*title -.br -.ad b -.R -.ev -.. -.\"------------ -.de cov@print-authors -.SP -.nr cov*i 0 1 -.while \\n+[cov*i]<=\\n[cov*au] \{\ -. ce -\fI\\*[cov*au!\\n[cov*i]!1]\fP -. nr cov*j 0 1 -. while \\n+[cov*j]<=9 \{\ -. if d cov*at!\\n[cov*i]!\\n[cov*j] \{\ -. if \w'\\*[cov*at!\\n[cov*i]!\\n[cov*j]]' \{\ -. ce -\s-1\\*[cov*at!\\n[cov*i]!\\n[cov*j]]\s0 -. .\} -. \} -. \} -.\} -.. -.\"------------ -.de cov@print-firm -.SP .5 -.ce -\\*[cov*firm] -.. -.\"------------ -.de cov@print-abstract -.SP 2 -.if d cov*abstract \{\ -. misc@ev-keep cov*ev -. init@reset -. if \\n[cov*abs-ind]>0 \{\ -. in +\\n[cov*abs-ind]u -. ll -\\n[cov*abs-ind]u -. \} -. ce -\fI\\$1\fP -. SP 1.5 -. fi -. cov*abstract -. br -. ev -.\} -.. -.\"------------ -.de cov@print-date -.SP 2 -\f[\\*[@sdf_font]]\\*[cov*new-date]\fP -.. -.\"----------------- -.de COVEND -.br -.if d cov*default-firm .if !d cov*firm .ds cov*firm \\*[cov*default-firm] -.sp |4.2c -.cov@print-title -.cov@print-authors -.cov@print-firm -.cov@print-abstract \\*[cov*abs-name] -.cov@print-date -.pg@enable-top-trap -.bp 1 -.pg@enable-trap -.if d cov*abs-arg .if \\n[cov*abs-arg] \{\ -. cov@print-abstract ABSTRACT -. SP 2 -.\} -.. diff --git a/gnu/usr.bin/groff/mm/mm/se_ms.cov b/gnu/usr.bin/groff/mm/mm/se_ms.cov deleted file mode 100644 index d472d101117..00000000000 --- a/gnu/usr.bin/groff/mm/mm/se_ms.cov +++ /dev/null @@ -1,3 +0,0 @@ -.\" $Id: se_ms.cov,v 1.4 2000/04/09 08:25:20 millert Exp $ -.mso mm/ms.cov -.nr cur*abstract-ll 11c diff --git a/gnu/usr.bin/groff/mm/tmac.m b/gnu/usr.bin/groff/mm/tmac.m deleted file mode 100644 index 3cbba6e0610..00000000000 --- a/gnu/usr.bin/groff/mm/tmac.m +++ /dev/null @@ -1,3431 +0,0 @@ -.\" -.de @revision -.ds RE \\$2 -.. -.\" -.\" $Id: tmac.m,v 1.5 2000/04/09 08:25:19 millert Exp $ -.@revision $Revision: 1.5 $ -.ig - -Copyright (C) 1991-1998 Free Software Foundation, Inc. -mgm is written by Jörgen Hägg <jh@axis.se> - -mgm 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. - -mgm 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, 675 Mass Ave, Cambridge, MA 02139, USA. - -Please send bugreports with examples to jh@axis.com. - -Naming convention stolen from mgs. -Local names module*name -Extern names module@name -Env.var environ:name -Index array!index -.. -.if !\n(.g .ab These mm macros require groff. -.if \n(.C .ab The groff mm macros do not work in compatibility mode. -.warn -.\" ######## init ####### -.\" Contents level [0:7], contents saved if heading level <= Cl -.nr Cl 2 -.\" Eject page between LIST OF XXXX if Cp == 0 -.nr Cp 0 -.\" Debugflag -.if !r D .nr D 0 -.\" Eject after floating display is output [0:1] -.nr De 0 -.\" Floating keep output [0;5] -.nr Df 5 -.\" space before and after display if == 1 [0:1] -.nr Ds 1 -.\" Eject page -.nr Ej 0 -.\" Equation label adjust 0=left, 1=right -.nr Eq 0 -.\" Em dash string -.ie n .ds EM " -- -.el .ds EM \(em -.\" Footnote spacing -.nr Fs 1 -.\" H1-H7 heading counters -.nr H1 0 1 -.nr H2 0 1 -.nr H3 0 1 -.nr H4 0 1 -.nr H5 0 1 -.nr H6 0 1 -.nr H7 0 1 -.\" Heading break level [0:7] -.nr Hb 2 -.\" heading centering level, [0:7] -.nr Hc 0 -.\" header format -.ds HF 2 2 2 2 2 2 2 -.\" heading temp. indent [0:2] -.\" 0 -> 0 indent, left margin -.\" 1 -> indent to right , like .P 1 -.\" 2 -> indent to line up with text part of preceding heading -.nr Hi 1 -.\" header pointsize -.ds HP 0 0 0 0 0 0 0 -.\" heading space level [0:7] -.nr Hs 2 -.\" heading numbering type -.\" 0 -> multiple (1.1.1 ...) -.\" 1 -> single -.nr Ht 0 -.\" Unnumbered heading level -.nr Hu 2 -.\" hyphenation in body -.\" 0 -> no hyphenation -.\" 1 -> hyphenation 14 on -.nr Hy 0 -.\" text for toc, selfexplanatory. Look in the new variable section -.ds Lf LIST OF FIGURES -.nr Lf 1 -.ds Lt LIST OF TABLES -.nr Lt 1 -.ds Lx LIST OF EXHIBITS -.nr Lx 1 -.ds Le LIST OF EQUATIONS -.nr Le 0 -.\" List indent, used by .AL -.nr Li 6 -.\" List space, if listlevel > Ls then no spacing will occur around lists. -.nr Ls 99 -.\" Numbering style [0:5] -.if !r N .nr N 0 -.\" numbered paragraphs -.\" 0 == not numbered -.\" 1 == numbered in first level headings. -.nr Np 0 -.\" Format of figure,table,exhibit,equation titles. -.\" 0= ". ", 1=" - " -.nr Of 0 -.\" Table of contents page numbering style -.nr Oc 0 -.\" Page-number, normally same as %. -.nr P 0 -.\" paragraph indent -.nr Pi 5 -.\" paragraph spacing -.nr Ps 1 -.\" paragraph type -.\" 0 == left-justified -.\" 1 == indented .P -.\" 2 == indented .P except after .H, .DE or .LE. -.nr Pt 0 -.\" Reference title -.ds Rp REFERENCES -.\" Display indent -.nr Si 5 -.\" -.\" Current state of TOC, empty outside TC, inside -.\" it will be set to co,fg,tb,ec,ex or ap. -.ds Tcst -.\" -.ds Tm \(tm -.\" -.\"--------------------------------------------- -.\" Internal global variables -.\" -.\" This is for cover macro .MT -.\" .ds @language -.\" -.nr @copy_type 0 -.if r C .nr @copy_type \n[C] -.\" >0 if Subject/Date/From should be bold, roman otherwise -.ie n .ds @sdf_font R -.el .ds @sdf_font B -.if \n[@copy_type]=4 \{\ -. ls 2 -. nr Pi 10 -. nr Pt 1 -.\} -.\" -.\" -.if r E \{\ -. ie \n[E] .ds @sdf_font B -. el .ds @sdf_font R -.\} -.\" -.\" Current pointsize and vertical space, always in points. -.if !r S .nr S 10 -.ps \n[S] -.vs \n[S]+2 -.\" -.nr @ps \n[.ps] -.nr @vs \n[.v] -.if \n[D]>1 .tm @ps=\n[@ps], @vs=\n[@vs] -.\" -.\" Page length -.if r L \{\ -. ie n .pl \n[L]u -. el .pl \n[L]u -.\} -.nr @pl \n[.p] -.\" -.\" page width -.ie r W \{\ -. ie n .ll \n[W]u -. el .ll \n[W]u -.\} -.el .ll 6i -.nr @ll \n[.l] -.nr @cur-ll \n[@ll] -.lt \n[@ll]u -.\" -.\" page offset -.ie r O .po \n[O] -.el \{\ -. ie n .po .75i -. el .po .963i -.\} -.\" -.nr @po \n[.o] -.\" -.\" non-zero if escape mechanism is turned off. Used by VERBON/OFF -.nr @verbose-flag 0 -.\"--------------------------------------------- -.\" New variables -.\" -.\" Appendix name -.ds App APPENDIX -.\" print appendixheader, 0 == don't -.nr Aph 1 -.\" -.\" Current appendix text -.ds Apptext -.\" Controls the space before and after static displays if defined. -.\" Lsp is used otherwise -.\" .nr Dsp 1v -.\" -.\" Add a dot after level one heading number if >0 -.nr H1dot 1 -.\" -.\" header prespace level. If level <= Hps, then two lines will be printed -.\" before the header instead of one. -.nr Hps 1 -.\" -.\" These variables controls the number of lines preceding .H. -.\" Hps1 is the number of lines when level > Hps -.nr Hps1 0.5 -.if n .nr Hps1 1 -.\" -.\" Hps2 is the number of lines when level <= Hps -.nr Hps2 1 -.if n .nr Hps2 2 -.\" -.\" Hss is the number of lines (Lsp) after the header. -.nr Hss 1 -.\" -.\" H1txt will be updated by .H and .HU, containing the heading text. -.\" Will also be updated in table of contents & friends -.\" -.ds H1txt -.\" -.\" header text for the index -.ds Index INDEX -.\" command to sort the index -.ds Indcmd sort -.\" -.\" flag for mkindex -.if !r Idxf .nr Idxf 0 -.\" Change these in the national configuration file -.ds Lifg Figure -.ds Litb TABLE -.ds Liex Exhibit -.ds Liec Equation -.ds Licon CONTENTS -.\" Flag for space between mark and prefix 1==space, 0==no space -.\" Can also be controlled by using '.LI mark 2' -.nr Limsp 1 -.\" -.\" Lsp controls the height of an empty line. Normally 0.5v -.\" Normally used for nroff compatibility. -.nr Lsp 0.5v -.if n .nr Lsp 1v -.ds MO1 January -.ds MO2 February -.ds MO3 March -.ds MO4 April -.ds MO5 May -.ds MO6 June -.ds MO7 July -.ds MO8 August -.ds MO9 September -.ds MO10 October -.ds MO11 November -.ds MO12 December -.\" for GETR -.ds Qrf See chapter \\*[Qrfh], page \\*[Qrfp]. -.\" -.\" header- and footer-size will only change to the current -.\" if Pgps is > 0. -.nr Pgps 1 -.\" -.\" section-page if Sectp > 0 -.nr Sectp 0 -.if (\n[N]=3):(\n[N]=5) \{\ -. nr Sectp 1 -. nr Ej 1 -.\} -.\" section-figure if Sectf > 0 -.nr Sectf 0 -.if \n[N]=5 .nr Sectf 1 -.\" -.\" argument to .nm in .VERBON. -.ds Verbnm "1 -.\" indent for VERBON -.nr Verbin 5n -.\" -.\" Letter section -.\" Formal closing (.FC) -.ds Letfc Yours very truly, -.\" -.\" Approval line -.ds Letapp APPROVED: -.\" Approval date-string -.ds Letdate Date -.\" -.ds LetCN CONFIDENTIAL\" Confidential default -.ds LetSA To Whom It May Concern:\" Salutation default -.ds LetAT ATTENTION:\" Attention string -.ds LetSJ SUBJECT:\" Subject string -.ds LetRN In reference to:\" Reference string -.\" -.\" Copy to (.NS) -.ds Letnsdef 0 -.ds Letns!copy Copy \" space! -.ds Letns!to " to -.ds Letns!0 Copy to -.ds Letns!1 Copy (with att.) to -.ds Letns!2 Copy (without att.) to -.ds Letns!3 Att. -.ds Letns!4 Atts. -.ds Letns!5 Enc. -.ds Letns!6 Encs. -.ds Letns!7 Under separate cover -.ds Letns!8 Letter to -.ds Letns!9 Memorandum to -.ds Letns!10 Copy (with atts.) to -.ds Letns!11 Copy (without atts.) to -.ds Letns!12 Abstract Only to -.ds Letns!13 Complete Memorandum to -.ds Letns!14 CC: -.\" -.\" Text printed below the footer. Controlled by @copy_type (C). -.ds Pg_type!0 -.ds Pg_type!1 OFFICIAL FILE COPY -.ds Pg_type!2 DATE FILE COPY -.ds Pg_type!3 D\ R\ A\ F\ T -.ds Pg_type!4 D\ R\ A\ F\ T -.\" Max lines in return address -.nr Letwam 14 -.\"-------------------------- -.\" test for mgm macro. This can be used if the text must test -.\" what macros is used. -.nr .mgm 1 -.\" -.\" Due to security problems with groff I had to rewrite -.\" the reference system. It's not as elegant as before, you -.\" have to run groff with '-z -rRef=1' and put stderr into the filename -.\" for .INITR -.\" -.\" Output references to stderr if non-zero -.ie !r Ref \{\ -. nr Ref 0 -.\} -.el .warn 0 -.\" -.\"--------------------------------------------- -.\" set local variables. -.ie d @language .mso mm/\*[@language]_locale -.el .mso mm/locale -.\"--------------------------------------------- -.if \n[D] .tm Groff mm, version \*[RE]. -.\" ####### module init ###### -.\" reset all things -.de init@reset -.ie \\n[misc@adjust] 'ad -.el 'na -.ie \\n[Hy] 'hy 14 -.el 'nh -'in 0 -'ti 0 -.ps \\n[@ps]u -.vs \\n[@vs]u -.. -.de @warning -'tm WARNING:(\\n[.F]) input line \\n[.c]:\\$* -.if \\n[D] .backtrace -.. -.de @error -'tm ****************** -'tm ERROR:(\\n[.F]) input line \\n[.c]:\\$* -.if \\n[D] .backtrace -'tm ****************** -.ab "Input aborted, syntax error" -.. -.de misc@toupper -.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ -.br -\\$1 -.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz -.br -.. -.\" ####### module debug ################################# -.de debug -'tm \\$1:\\n[.F]:\\n[c.] ll=\\n[.l] vs=\\n[.v] ps=\\n[.s],\\n[.ps] \ -in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] -.. -.de debug-all -.nr debug*n 1n -.nr debug*m 1m -'tm \\$1:\\n[.F]:\\n[c.] ll=\\n[.l] vs=\\n[.v] ps=\\n[.s] in=\\n[.i]\ - ad=\\n[.j] fi=\\n[.u] pl=\\n[.p] page=\\n[%] .o=\\n[.o] -'tm _______ .d=\\n[.d] .f=\\n[.f] .h=\\n[.h] .k=\\n[.k] .n=\\n[.n]\ - .p=\\n[.p] .t=\\n[.t] .z=\\n[.z] nl=\\n[nl] dn=\\n[dn] n=\\n[debug*n] -.. -.\" ####### module par ################################# -.nr par@ind-flag 1 \" indent on following P if Pt=2 -.nr hd*last-pos -1 -.nr hd*last-hpos -1 -.nr par*number 0 1 -.af par*number 01 -.nr par*number2 0 1 -.af par*number2 01 -.nr par*num-count 0 1 -.af par*num-count 01 -.\" reset numbered paragraphs, arg1 = headerlevel -.de par@reset-num -.if \\$1<3 .nr par*num-count 0 -.if (\\$1=1)&(\\n[Np]=1) .nr par*number 0 -.. -.\"------------ -.\" paragraph -.de P -.\" skip P if previous heading -.ie !((\\n[nl]=\\n[hd*last-pos]):(\\n[nl]=(\\n[hd*last-pos]-.5v))) \{\ -. if \\n[D]>2 .tm Paragraph nl=\\n[nl] -. par@doit \\$* -. if \\n[Np] \\n[H1].\\n+[par*number]\ \ \c -.\} -.el .if !(\\n[hd*last-hpos]=\\n[.k]) \{\ -. if \\n[D]>2 .tm Paragraph nl=\\n[nl] -. par@doit \\$* -. if \\n[Np] \\n[H1].\\n+[par*number]\ \ \c -.\} -.nr par@ind-flag 1 -.. -.\"------------ -.de nP -.\" skip P if previous heading -.ie !((\\n[nl]=\\n[hd*last-pos]):(\\n[nl]=(\\n[hd*last-pos]-.5v))) \{\ -. if \\n[D]>2 .tm Paragraph nl=\\n[nl] -. par@doit \\$* -\\n[H2].\\n+[par*number2]\ \ \c -.\} -.el .if !(\\n[hd*last-hpos]=\\n[.k]) \{\ -. if \\n[D]>2 .tm Paragraph nl=\\n[nl] -. par@doit \\$* -\\n[H2].\\n+[par*number2]\ \ \c -.\} -.nr par@ind-flag 1 -.. -.\"------------ -.de par@doit -.SP (u;\\n[Ps]*\\n[Lsp]) -.ie \\n[.$] \{\ -. if \\$1=1 .ti +\\n[Pi]n -.\} -.el \{\ -. if \\n[Pt]=1 .ti +\\n[Pi]n -. if (\\n[Pt]=2)&\\n[par@ind-flag] .ti +\\n[Pi]n -.\} -.. -.\" ####### module line ####################################### -.de SP -.br -.if !r line*lp\\n[.z] .nr line*lp\\n[.z] 0 -.if !r line*ac\\n[.z] .nr line*ac\\n[.z] 0 -.ie \\n[.$] .nr line*temp (v;\\$1) -.el .nr line*temp 1v -.\" -.ie \\n[line*lp\\n[.z]]=\\n[.d] \{\ -. \" go here if no output since the last .SP -. nr line*output \\n[line*temp]-\\n[line*ac\\n[.z]] -. if \\n[line*output]<0 .nr line*output 0 -. nr line*ac\\n[.z] +\\n[line*output] -.\} -.el \{\ -. nr line*ac\\n[.z] \\n[line*temp] -. nr line*output \\n[line*temp] -. \" no extra space in the beginning of a page -. if (\\n[.d]<0):(\\n[pg*head-mark]=\\n[.d]) .nr line*output 0 -.\} -.if \\n[line*output] .sp \\n[line*output]u -.nr line*lp\\n[.z] \\n[.d] -.. -.\" ######## module misc ############### -.nr misc@adjust 14 -.de SA -.if \\n[.$] \{\ -. if \\$1-1 .@error "SA: bad arg: \\$1" -. nr misc@adjust 0\\$1 -.\} -.ie \\n[misc@adjust] 'ad -.el 'na -.. -.\"------------- -.\" switch environment, keep all important settings. -.de misc@ev-keep -.nr misc*ll \\n[.l] -.ev \\$1 -.ll \\n[misc*ll]u -.lt \\n[misc*ll]u -.. -.\"------------- -.\" .misc@push stackname value -.de misc@push -.ie d misc*st-\\$1 .ds misc*st-\\$1 \\$2 \\*[misc*st-\\$1] -.el .ds misc*st-\\$1 \\$2 -.. -.\"------------- -.\" .misc@pop stackname -.\" value returned in the string misc*pop -.de misc@pop -.misc@pop-set misc*st-\\$1 \\*[misc*st-\\$1] -.. -.\"------------- -.de misc@pop-set -.ds misc*st-name \\$1 -.shift -.if \\n[.$]<1 .@error "stack \\*[misc*st-name] empty" -.ds misc*pop \\$1 -.shift -.ds \\*[misc*st-name] \\$* -.. -.\"------------- -.\" .misc@pop-nr stackname varname -.de misc@pop-nr -.misc@pop \\$1 -.nr \\$2 \\*[misc*pop] -.. -.\"------------- -.\" .misc@pop-ds stackname varname -.de misc@pop-ds -.misc@pop \\$1 -.ds \\$2 \\*[misc*pop] -.. -.\"----------- -.\" reset tabs -.de TAB -.ta T 5n -.. -.\"------------- -.\" .PGFORM linelength [ pagelength [ pageoffset [1]]] -.de PGFORM -.\" Break here to avoid problems with new linesetting of the previous line. -.\" Hope this doesn't break anything else :-) -.\" Don't break if arg_4 is a '1'. -.if ''\\$4' .br -.ie !''\\$1' \{\ -. ll \\$1 -. nr @ll \n[.l] -. nr @cur-ll \\n[@ll] -. lt \\n[@ll]u -.\} -.el \{\ -. ll \\n[@ll]u -. lt \\n[@ll]u -.\} -.\" -.ie !''\\$2' \{\ -. pl \\$2 -. nr @pl \n[.p] -.\} -.el .pl \\n[@pl]u -.\" -.ie !''\\$3' \{\ -. po \\$3 -. nr @po \n[.o] -.\} -.el .po \\n[@po]u -'in 0 -.pg@move-trap -.. -.\"------------- -.\" .MOVE y [[x] linelength] -.\" move to line y, indent to x -.de MOVE -.if !\\n[.$] .@error "MOVE y [x]: no arguments" -.if \\n[nl]<0 \c -.\" move to Y-pos -.sp |(v;\\$1) -.\" calc linelength -.ie \\n[.$]>2 .nr pg*i (n;\\$3) -.el \{\ -. ie \\n[.$]>1 .nr pg*i (n;\\n[@ll]u-\\$2) -. el .nr pg*i \\n[@ll]u -.\} -.\" move to X-pos, if any -.if !''\\$2' .po \\$2 -.\" set linelength -.ll \\n[pg*i]u -.. -.\"------------- -.de SM -.if !\\n[.$] .@error "SM: no arguments" -.if \\n[.$]=1 \s-1\\$1\s0 -.if \\n[.$]=2 \s-1\\$1\s0\\$2 -.if \\n[.$]=3 \\$1\s-1\\$2\s0\\$3 -.. -.\"------------- -.nr misc*S-ps \n[@ps] -.nr misc*S-vs \n[@vs] -.nr misc*S-ps1 \n[@ps] -.nr misc*S-vs1 \n[@vs] -.ds misc*a -.ds misc*b -.de S -.ie !\\n[.$] \{\ -. ds misc*a P -. ds misc*b P -.\} -.el \{\ -. ie \\n[.$]=1 .ds misc*b D -. el \{\ -. ie \w@\\$2@=0 .ds misc*b C -. el .ds misc*b \\$2 -. \} -. ie \w@\\$1@=0 .ds misc*a C -. el .ds misc*a \\$1 -.\} -.\" -.\" set point size -.if !'\\*[misc*a]'C' \{\ -. ie '\\*[misc*a]'P' .ps \\n[misc*S-ps]u -. el \{\ -. ie '\\*[misc*a]'D' .ps \\n[@ps]u -. el .ps \\*[misc*a] -. if \\n[D]>2 .tm S: .ps \\*[misc*a] -. \} -.\} -.\" -.\" set vertical spacing -.if !'\\*[misc*b]'C' \{\ -. ie '\\*[misc*b]'P' .vs \\n[misc*S-vs]u -. el \{\ -. ie '\\*[misc*b]'D' .vs \\n[.ps]u+2p -. el .vs \\*[misc*b] -. if \\n[D]>2 .tm S: .vs \\*[misc*b] -. \} -.\} -.nr @ps \\n[.ps] -.nr @vs \\n[.v] -.\" -.if \\n[D]>1 .tm S(\\$*): ma:\\*[misc*a], mb:\\*[misc*b] => ps:\\n[@ps]u, vs:\\n[@vs]u -.nr misc*S-ps \\n[misc*S-ps1] -.nr misc*S-vs \\n[misc*S-vs1] -.nr misc*S-ps1 \\n[@ps] -.nr misc*S-vs1 \\n[@vs] -.pg@move-trap -.. -.\"------------ -.de HC -.ev 0 -.hc \\$1 -.ev -.ev 1 -.hc \\$1 -.ev -.ev 2 -.hc \\$1 -.ev -.. -.\"------------ -.de RD -.di misc*rd -'fl -.rd \\$1\t -.br -.di -.ie !''\\$3' \{\ -. di misc*rd2 -. ds \\$3 "\\*[misc*rd] -. br -. di -.\} -.if !''\\$2' .rn misc*rd \\$2 -.rm misc*rd misc*rd2 -.. -.\"------------ -.\" VERBON [flag [pointsize [font]]] -.\" flag -.\" bit function -.\" 0 escape on -.\" 1 add an empty line before verbose text -.\" 2 add an empty line after verbose text -.\" 3 numbered lines (controlled by the string Verbnm) -.\" 4 indent text by the numbervariable Verbin. -.de VERBON -.br -.nr misc*verb 0\\$1 -.if (0\\n[misc*verb]%4)/2 .SP \\n[Lsp]u -.misc@ev-keep misc*verb-ev -.nf -.if (0\\n[misc*verb]%16)/8 .nm \\*[Verbnm] -.ie !'\\$3'' .ft \\$3 -.el .ft CR -.ie 0\\$2 \{\ -. ss \\$2 -. ps \\$2 -. vs \\$2 -.\} -.el .ss 12 -.ta T 8u*\w@n@u -.if (0\\n[misc*verb]%32)/16 .in +\\n[Verbin]u -.if 0\\n[misc*verb]%2 \{\ -. eo -. nr @verbose-flag 1 \" tell pageheader to set ec/eo -.\} -.. -.de VERBOFF -.ec -.br -.if (0\\n[misc*verb]%8)/4 .SP \\n[Lsp]u -.if (0\\n[misc*verb]%16)/8 .nm -.if (0\\n[misc*verb]%32)/16 .in -.ev -.nr @verbose-flag 0 -.. -.\" ######## module pict ################# -.nr pict*width 0 -.nr pict*height 0 -.nr pict*mode 0 -.nr pict*ind 0 -.nr pict*id 0 1 -.\" I assume that the number variable pict*id is the same -.\" between two runs. -.de PIC -.br -.nr pict*ind 0 -.nr pict*box 0 -.while \\n[.$]>0 \{\ -. if '-B'\\$1' \{\ -. nr pict*box 1 -. shift -. continue -. \} -. if '-L'\\$1' \{\ -. nr pict*mode 0 -. shift -. continue -. \} -. if '-R'\\$1' \{\ -. nr pict*mode 1 -. shift -. continue -. \} -. if '-I'\\$1' \{\ -. nr pict*ind (m;\\$2) -. nr pict*mode 2 -. shift 2 -. continue -. \} -. if '-C'\\$1' \{\ -. nr pict*mode 3 -. shift -. continue -. \} -. ds pict*f \\$1 -. nr pict*id +1 -. shift -. if \\n[.$]>0 \{\ -. nr pict*width (i;\\$1) -. shift -. \} -. if \\n[.$]>0 \{\ -. nr pict*height (i;\\$1) -. shift -. \} -.\} -.if \\n[Ref]>0 \{\ -. tm .\\\\" PIC id \\n[pict*id] -. tm .\\\\" PIC file \\*[pict*f] -.\} -.if d pict*file!\\n[pict*id] \{\ -. ds pict*f \\*[pict*file!\\n[pict*id]] -. nr pict*llx \\n[pict*llx!\\n[pict*id]] -. nr pict*lly \\n[pict*lly!\\n[pict*id]] -. nr pict*urx \\n[pict*urx!\\n[pict*id]] -. nr pict*ury \\n[pict*ury!\\n[pict*id]] -. \" -. nr pict*w (p;\\n[pict*urx]-\\n[pict*llx]) -. if \\n[pict*w]<0 .nr pict*w 0-\\n[pict*w] -. nr pict*h (p;\\n[pict*ury]-\\n[pict*lly]) -. if \\n[pict*h]<0 .nr pict*h 0-\\n[pict*h] -. if \\n[pict*width]>0 \{\ -. nr pict*rs (u;1000*\\n[pict*width]/\\n[pict*w]) -. nr pict*w (u;\\n[pict*w]*\\n[pict*rs]/1000) -. nr pict*h (u;\\n[pict*h]*\\n[pict*rs]/1000) -. \} -. if \\n[pict*height]>0 \{\ -. nr pict*rs (u;1000*\\n[pict*height]/\\n[pict*h]) -. nr pict*h (u;\\n[pict*h]*\\n[pict*rs]/1000) -. \} -. if '0'\\n[pict*mode]' \{\ -. nr pict*in \\n[.i]u -. \} -. if '1'\\n[pict*mode]' \{\ -. nr pict*in (u;\\n[.l]-\\n[.i]-\\n[pict*w]) -. \} -. if '2'\\n[pict*mode]' \{\ -. nr pict*in \\n[pict*ind]u -. \} -. if '3'\\n[pict*mode]' \{\ -. nr pict*in (u;(\\n[.l]-\\n[.i]-\\n[pict*w])/2) -. \} -. ds pict*h " -. if \\n[pict*h]>0 .ds pict*h \\n[pict*h] -. \" -. ne \\n[pict*h]u -. \" -. \" these lines are copied and modified from tmac.pspic. -. \" Originally written by James Clark -. br -. ie \\n[pict*box]>0 \{\ -\h'\\n[pict*in]u'\ -\Z'\D'p 0 \\n[pict*h]u \\n[pict*w]u 0 0 -\\n[pict*h]u''\ -\v'\\n[pict*h]u'\X'ps: import \\*[pict*f] \ -\\n[pict*llx] \\n[pict*lly] \\n[pict*urx] \\n[pict*ury] \\n[pict*w] \\n[pict*h]' -.\} -. el \{\ -\h'\\n[pict*in]u'\ -\X'ps: invis'\ -\Z'\D'p 0 \\n[pict*h]u \\n[pict*w]u 0 0 -\\n[pict*h]u''\ -\X'ps: endinvis'\ -\v'\\n[pict*h]u'\X'ps: import \\*[pict*f] \ -\\n[pict*llx] \\n[pict*lly] \\n[pict*urx] \\n[pict*ury] \\n[pict*w] \\n[pict*h]' -. \} -. br -. sp \\n[pict*h]u -.\} -.. -.\" external picture -.de EPIC -.if \\n[.$]< 2 .@error "EPIC: Not enough arguments" -.nr pict*w \\$1 -.nr pict*h \\$2 -.ds pict*name "External picture -.if !''$3' .ds pict*name \\$3 -\& -.br -.ne \\n[pict*h]u -.sp \\n[pict*h]u -.nr pict*ind (u;(\\n[.l]-\\n[.i]-\\n[pict*w])/2) -.in +\\n[pict*ind]u -\D'l \\n[pict*w]u 0'\ -\D'l 0 -\\n[pict*h]u'\ -\D'l -\\n[pict*w]u 0'\ -\D'l 0 \\n[pict*h]u'\ -\v'-(u;\\n[pict*h]/2)'\ -\h'(u;(\\n[pict*w]-\w'\\*[pict*name]'/2))'\\*[pict*name] -.in -.. -.\" ######## module acc ################# -.\"----------- -.\" accents. These are copied from mgs, written by James Clark. -.de acc@over-def -.ds \\$1 \Z'\v'(u;\w'x'*0+\En[rst]-\En[.cht])'\ -\h'(u;-\En[skw]+(-\En[.w]-\w'\\$2'/2)+\En[.csk])'\\$2' -.. -.de acc@under-def -.ds \\$1 \Z'\v'\En[.cdp]u'\h'(u;-\En[.w]-\w'\\$2'/2)'\\$2' -.. -.acc@over-def ` \` -.acc@over-def ' \' -.acc@over-def ^ ^ -.acc@over-def ~ ~ -.acc@over-def : \(ad -.acc@over-def ; \(ad -.acc@under-def , \(ac -.\" ######## module uni ################# -.\" unimplemented macros -.de OK -'tm "OK: not implemented" -.. -.de PM -'tm "PM: not implemented" -.. -.\" ######## module hd ################# -.\" support for usermacro -.nr hd*h1-page 1 \" last page-number for level 1 header. -.nr hd*htype 0 -.ds hd*sect-pg -.ds hd*mark -.ds hd*suf-space -.nr hd*need 0 -.aln ;0 hd*htype -.als }0 hd*mark -.als }2 hd*suf-space -.aln ;3 hd*need -.\"------------- -.\" .hd@split varable index name val1 val2 ... -.de hd@split -.if \\$2>(\\n[.$]-3) .@error "\\$3 must have at least \\$2 values (\\*[\\$3]). -.nr hd*sp-tmp \\$2+3 -.ds \\$1 \\$[\\n[hd*sp-tmp]] -.. -.de HU -.H 0 "\\$1" -.. -.\"------------- -.de H -.if !r hd*cur-bline .nr hd*cur-bline \\n[nl] -.br -.df@print-float 2\" $$$ could be wrong... -.\" terminate all lists -.LC -.init@reset -.nr hd*level 0\\$1 -.nr hd*arg1 0\\$1 -.if !\\n[hd*level] .nr hd*level \\n[Hu] -.\" -.\" clear lower counters -.nr hd*i 1 1 -.while \\n+[hd*i]<8 .if \\n[hd*level]<\\n[hd*i] .nr H\\n[hd*i] 0 1 -.\" -.\" save last text for use in TP -.if \\n[hd*level]=1 .ds H1txt \\$2\\$3 -.\" -.\" This is a little fix to be able to get correct H1 heading number -.\" in page headers. -.nr H1h \\n[H1] 1 -.if \\n[hd*level]=1 .nr H1h +1 -.\" -.\" Check if it's time for new page. Only if text has -.\" appeared before. -.if \\n[Ej]&(\\n[Ej]>=\\n[hd*level])&(\\n[nl]>\\n[hd*cur-bline]) .pg@next-page -.\" -.\" increment current counter -.nr H\\n[hd*level] +1 -.\" -.\" update pagenumber if section-page is used -.if (\\n[hd*level]=1)&(\\n[Sectp]>0) .hd@set-page 1 -.\" -.\" hd*mark is the text written to the left of the header. -.ds hd*mark \\n[H1]. -.\" -.if \\n[hd*level]>1 .as hd*mark \\n[H2] -.\" -.nr hd*i 2 1 -.while \\n+[hd*i]<8 .if \\n[hd*level]>(\\n[hd*i]-1) .as hd*mark .\\n[H\\n[hd*i]] -.if \\n[Ht] .ds hd*mark \\n[H\\n[hd*level]]. -.\" -.\" special case, no dot after level one heading if not H1dot true -.if (\\n[hd*level]=1)&(\\n[H1dot]=0) .ds hd*mark \\n[H1] -.\" -.as hd*mark \ \ \" add spaces between mark and heading -.if !\\n[hd*arg1] .ds hd*mark\" no mark for unnumbered -.\" -.if \\n[D]>1 .tm At header \\*[hd*mark] "\\$2" -.nr hd*htype 0 \" hd*htype = check break and space -. \" 0 = run-in, 1 = break only, 2 = space -.if \\n[hd*level]<=\\n[Hb] .nr hd*htype 1 -.if \\n[hd*level]<=\\n[Hs] .nr hd*htype 2 -. \" two spaces if hd*htype == 0 -.ie (\\n[hd*htype]=0)&(\w@\\$2@) .ds hd*suf-space " \" -.el .ds hd*suf-space -.nr hd*need 2v \" hd*need = header need space -.\"---------- user macro HX ------------ -.\" User exit macro to override numbering. -.\" May change hd*mark (}0), hd*suf-space (}2) and hd*need (;3) -.\" Can also change Hps1/2. -.if d HX .HX \\n[hd*level] \\n[hd*arg1] "\\$2\\$3" -.\"-------------------------------------- -.\" pre-space -.ie \\n[hd*level]<=\\n[Hps] .SP (u;\\n[Hps2]) -.el .SP (u;\\n[Hps1]) -.\" -.par@reset-num \\n[hd*level]\" reset numbered paragraph -.\" start diversion to measure size of header -.di hd*div -\\*[hd*mark]\\$2\\$3\\*[hd*suf-space] -.br -.di -.rm hd*div -.if \\n[hd*htype] .na \" no adjust if run-in -.if \\n[hd*htype]<2 .nr hd*need +\\n[Lsp]u \" add some extra space -.ne \\n[hd*need]u+\\n[dn]u+.5p-1v \" this is the needed space for a header -.\" -.\" size and font calculations -.hd@split hd*font \\n[hd*level] HF \\*[HF]\" get font for this level -.ft \\*[hd*font]\" set new font -.hd@split hd*new-ps \\n[hd*level] HP \\*[HP]\" get point size -.ie (\\*[hd*new-ps]=0):(\w@\\*[hd*new-ps]@=0) \{\ -. if \\n[hd*htype] \{\ -. if '\\*[hd*font]'3' \{\ -. ps -1 -. vs -1 -. \} -. if '\\*[hd*font]'B' \{\ -. ps -1 -. vs -1 -. \} -. \} -.\} -.el \{\ -. ps \\*[hd*new-ps] -. vs \\*[hd*new-ps]+2 -.\} -.\" -.\"---------- user macro HY ------------- -.\" user macro to reset indents -.if d HY .HY \\n[hd*level] \\n[hd*arg1] "\\$2\\$3" -.\"-------------------------------------- -.nr hd*mark-size \w@\\*[hd*mark]@ -.if (\\n[hd*level]<=\\n[Hc])&\\n[hd*htype] .ce\" center if level<=Hc -.\" -.\" finally, output the header -\\*[hd*mark]\&\c -.\" and the rest of the header -.ie \\n[hd*htype] \{\ -\\$2\\$3 -. br -.\} -.el \\$2\\$3\\*[hd*suf-space]\&\c -.ft 1 -.\" restore pointsize and vertical size. -.ps \\n[@ps]u -.vs \\n[@vs]u -.\" -.\" table of contents -.if (\\n[hd*level]<=\\n[Cl])&\w@\\$2@ .toc@entry \\n[hd*level] "\\$2" -.\" set adjust to previous value -.SA -.\" do break or space -.if \\n[hd*htype] .br -.if \\n[hd*htype]>1 .SP (u;\\n[Lsp]*\\n[Hss]) -.if \\n[hd*htype] \{\ -. \" indent if Hi=1 and Pt=1 -. if (\\n[Hi]=1)&(\\n[Pt]=1) .ti +\\n[Pi]n -. \" indent size of mark if Hi=2 -. if \\n[hd*htype]&(\\n[Hi]>1) .ti +\\n[hd*mark-size]u -.\} -.nr par@ind-flag 0 \" no indent on .P if Pt=2 -.\" -.\" check if it is time to reset footnotes -.if (\\n[hd*level]=1)&\\n[ft*clear-at-header] .nr ft*nr 0 1 -.\" -.\" check if it is time to reset indexes -.if (\\n[hd*level]=1)&\\n[Sectf] \{\ -. nr lix*fg-nr 0 1 -. nr lix*tb-nr 0 1 -. nr lix*ec-nr 0 1 -. nr lix*ex-nr 0 1 -.\} -.\"---------- user macro HZ ---------- -.if d HZ .HZ \\n[hd*level] \\n[hd*arg1] "\\$2\\$3" -.nr hd*last-pos \\n[nl] -.nr hd*last-hpos \\n[.k] -.nr par@ind-flag 0 -.. -.\"-------- -.de HM -.nr hd*i 0 1 -.while \\n+[hd*i]<8 .af H\\n[hd*i] \\$[\\n[hd*i]] 1 -.. -.\"---------------------- -.\" set page-nr, called from header -.\" -.de hd@set-page -.\" -.ie \\n[.$]>0 .nr P \\$1 -.el .nr P +1 -.\" Set section-page-string -.ds hd*sect-pg \\n[H1]-\\n[P] -.if \\n[Sectp]>1 .if '\\n[H1]'0' .ds hd*sect-pg " -.. -.\"########### module pg #################### -.\" set end of text trap -.wh 0 pg@header -.em pg@end-of-text -.\" -.ds pg*header ''- \\nP -'' -.ds pg*footer -.if \n[N]=4 .ds pg*header '''' -.if (\n[N]=3):(\n[N]=5) \{\ -. ds pg*header '''' -. ds pg*footer ''\\*[hd*sect-pg]'' -.\} -.ds pg*even-footer -.ds pg*odd-footer -.ds pg*even-header -.ds pg*odd-header -.\" -.nr pg*top-margin 0 -.nr pg*foot-margin 0 -.nr pg*block-size 0 -.nr pg*footer-size 5\" 1v+footer+even/odd footer+2v -.nr pg*header-size 7\" 3v+header+even/odd header+2v -.nr pg*extra-footer-size 0 -.nr pg*extra-header-size 0 -.nr ft*note-size 0 -.nr pg*cur-column 0 -.nr pg*cols-per-page 1 -.nr pg*cur-po \n[@po] -.nr pg*head-mark 0 -.\" -.nr pg*ps \n[@ps] -.nr pg*vs \n[@vs] -.\"------------------------- -.\" footer TRAPS: set, enable and disable -.de pg@set-new-trap -.nr pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u) -.\" -.if \\n[D]>2 .tm pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u) = \\n[pg*foot-trap] -.\" -.\" last-pos points to the position of the footer and bottom -.\" block below foot-notes. -.nr pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v) -.if \\n[D]>2 .tm pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v) = \\n[pg*last-pos] -.. -.de pg@enable-trap -.wh \\n[pg*foot-trap]u pg@footer -.if \\n[D]>2 .tm pg@enable-trap .t=\\n[.t] nl=\\n[nl] -.. -.de pg@disable-trap -.ch pg@footer -.. -.\" move to new trap (if changed). -.de pg@move-trap -.pg@disable-trap -.pg@set-new-trap -.pg@enable-trap -.. -.de pg@enable-top-trap -.\" set trap for pageheader. -.nr pg*top-enabled 1 -.. -.de pg@disable-top-trap -.\" remove trap for pageheader. -.nr pg*top-enabled 0 -.. -.\" no header on the next page -.de PGNH -.nr pg*top-enabled (-1) -.. -.\" set first trap for pagefooter -.pg@enable-top-trap -.pg@set-new-trap -.pg@enable-trap -.\"------------------------- -.\" stop output and begin on next page. Fix footnotes and all that. -.de pg@next-page -.\".debug next-page -.ne 999i \" activate trap -.\" .pg@footer -.. -.\"------------------------- -.\" support for PX, TP and EOP. -.als }t pg*header -.als }e pg*even-header -.als }o pg*odd-header -.als TPh pg*header -.als TPeh pg*even-header -.als TPoh pg*odd-header -.\" -.als EOPf pg*footer -.als EOPef pg*even-footer -.als EOPof pg*odd-footer -.\"------------------------------------------------------------ -.\" HEADER -.de pg@header -.if \\n[D]>1 .tm Page# \\n[%] (\\n[.F]:\\n[c.]) -.if \\n[Idxf] \{\ -.tl '<pagenr\ \\n[%]>''' -.\} -.\" assign current page-number to P -.hd@set-page -.\" reset spacing -.nr line*lp\\n[.z] 0 -.nr line*ac\\n[.z] 0 -.\" -.\" suppress pageheader if pagenumber == 1 and N == [124] -.if \\n[pg*top-enabled] \{\ -.\" must be fixed!! -.\". pg@disable-top-trap -. if \\n[pg*extra-header-size] 'sp \\n[pg*extra-header-size]u -. if \\n[pg*top-margin] 'sp \\n[pg*top-margin]u -. ev pg*tl-ev -. pg@set-env -. ie d let@header .let@header -. el \{\ -. ie d TP .TP -. el \{\ -' sp 3 -. ie ((\\n[%]=1)&((\\n[N]=1):(\\n[N]=2))) .sp -. el .tl \\*[pg*header] -. ie o .tl \\*[pg*odd-header] -. el .tl \\*[pg*even-header] -' sp 2 -. \} -. \} -. ev -. \" why no-space?? -. if d PX \{\ -. ns -. PX -. rs -. \} -. \" check for pending footnotes -. ft@check-old -. \" -. \" back to normal text processing -. pg@enable-trap -. \" mark for multicolumn -. nr pg*head-mark \\n[nl]u -. \" reset NCOL pointer at each new page. -. nr pg*last-ncol 0 -. \" set multicolumn -. \" -. pg@set-po -. \" print floating displays -. df@print-float 4 -. tbl@top-hook -. ns -.\} -.if \\n[pg*top-enabled]<0 .nr pg*top-enabled 1 -.nr hd*cur-bline \\n[nl] \" .H needs to know if output has occured -.. -.\"--------------------------------------------------------- -.\" FOOTER -.de pg@footer -.ec -.if \\n[D]>2 .tm Footer# \\n[%] (\\n[.F]:\\n[c.]) -.pg@disable-trap -.\".debug footer -.tbl@bottom-hook -.\" increment pageoffset for MC -.\" move to the exact start of footer. -'sp |\\n[pg*foot-trap]u+1v -.\" -.if \\n[D]>3 .tm FOOTER after .sp -.\" print footnotes -.if d ft*div .ft@print -.\" -.pg@inc-po -.if !\\n[pg*cur-column] .pg@print-footer -.\" next column -.pg@set-po -.pg@enable-trap -.if \\n[@verbose-flag] .eo \" to help VERBON/VERBOFF -.. -.\"------------------------- -.de pg@print-footer -.\" jump to the position just below the foot-notes. -'sp |\\n[pg*last-pos]u+1v -.\" check if there are any bottom block -.if d pg*block-div .pg@block -.\" -.\" print the footer and eject new page -.ev pg*tl-ev -.pg@set-env -.\" user defined end-of-page macro -.ie d EOP .EOP -.el \{\ -. ie o .tl \\*[pg*odd-footer] -. el .tl \\*[pg*even-footer] -. ie (\\n[%]=1)&(\\n[N]=1) .tl \\*[pg*header] -. el .tl \\*[pg*footer] -. tl ''\\*[Pg_type!\\n[@copy_type]]'' -.\} -.ev -.\" be sure that floating displays and footnotes will be -.\" printed at the end of the document. -.ie (\\n[df*fnr]>=\\n[df*o-fnr]):\\n[ft*exist] \{\ -. ev ne -' bp -. ev -.\} -.el 'bp -.. -.\"------------------------- -.\" -.\" Initialize the title environment -.de pg@set-env -'na -'nh -'in 0 -'ti 0 -.ie \\n[Pgps] \{\ -. ps \\n[@ps]u -. vs \\n[@vs]u -.\} -.el \{\ -. ps \\n[pg*ps]u -. vs \\n[pg*vs]u -.\} -.lt \\n[@ll]u -.. -.\"------------------------- -.de PH -.ds pg*header "\\$1 -.pg@set-new-size -.. -.de PF -.ds pg*footer "\\$1 -.pg@set-new-size -.. -.de OH -.ds pg*odd-header "\\$1 -.pg@set-new-size -.. -.de EH -.ds pg*even-header "\\$1 -.pg@set-new-size -.. -.de OF -.ds pg*odd-footer "\\$1 -.pg@set-new-size -.. -.de EF -.ds pg*even-footer "\\$1 -.pg@set-new-size -.. -.de pg@clear-hd -.ds pg*even-header -.ds pg*odd-header -.ds pg*header -.. -.de pg@clear-ft -.ds pg*even-footer -.ds pg*odd-footer -.ds pg*footer -.. -.de pg@set-new-size -.nr pg*ps \\n[@ps] -.nr pg*vs \\n[@vs] -.pg@move-trap -.. -.\"------------------------- -.\" end of page processing -.de pg@footnotes -.\".debug footnotes -.\" output footnotes. set trap for block -.\" -.. -.\"------------------------- -.\" print bottom block -.de pg@block -.ev pg*block-ev -'nf -'in 0 -.ll 100i -.pg*block-div -.br -.ev -.. -.\"------------------------- -.\" define bottom block -.de BS -.misc@ev-keep pg*block-ev -.init@reset -.br -.di pg*block-div -.. -.\"------------------------- -.de BE -.br -.di -.nr pg*block-size \\n[dn]u -.ev -.pg@move-trap -.. -.\"------------------------- -.\" print out all pending text -.de pg@end-of-text -.if \\n[D]>2 .tm ---------- End of text processing ---------------- -.df@eot-print -.ref@eot-print -.. -.\"------------------------- -.\" set top and bottom margins -.de VM -.if \\n[.$]=0 \{\ -. nr pg*extra-footer-size 0 -. nr pg*extra-header-size 0 -.\} -.if \\n[.$]>0 .nr pg*extra-header-size (v;\\$1) -.if \\n[.$]>1 .nr pg*extra-footer-size (v;\\$2) -.if \\n[D]>2 \{\ -. tm extra top \\n[pg*extra-footer-size] -. tm extra bottom \\n[pg*extra-header-size] -.\} -.pg@move-trap -.. -.\"--------------------- -.\" multicolumn output. -.de pg@set-po -.if \\n[pg*cols-per-page]>1 \{\ -. ll \\n[pg*column-size]u -.\} -.. -.de pg@inc-po -.if \\n[pg*cols-per-page]>1 \{\ -. ie \\n+[pg*cur-column]>=\\n[pg*cols-per-page] \{\ -. nr pg*cur-column 0 1 -. nr pg*cur-po \\n[@po]u -. po \\n[@po]u -. ll \\n[@ll]u -. \} -. el \{\ -. nr pg*cur-po +(\\n[pg*column-size]u+\\n[pg*column-sep]u) -. po \\n[pg*cur-po]u -' sp |\\n[pg*head-mark]u -. tbl@top-hook -. \} -.\} -.. -.\" An argument disables the page-break. -.de 1C -.br -.if \\n[pg*cols-per-page]<=1 .@error "1C: multicolumn mode not active" -.nr pg*cols-per-page 1 -.nr pg*column-sep 0 -.nr pg*column-size \\n[@ll] -.nr pg*ncol-i \\n[pg*cur-column]\" temp variable -.nr pg*cur-column 0 1 -.nr pg*cur-po \\n[@po]u -.PGFORM -.ie !'\\$1'1' .SK -.el \{\ -. if d ft*div \{\ -. if \\n[pg*ncol-i]>0 \{\ -. @warning 1C: footnotes will be messy -. \} -. \} -. if \\n[pg*last-ncol]>0 \{\ -. sp |\\n[pg*last-ncol]u -. nr pg*last-ncol 0 -. \} -.\} -.. -.de 2C -.br -.nr pg*head-mark \\n[nl]u -.if \\n[pg*cols-per-page]>1 .@error "2C: multicolumn mode already active" -.nr pg*cols-per-page 2 -.nr pg*column-sep \\n[@ll]/15 -.nr pg*column-size (\\n[@ll]u*7)/15 -.nr pg*cur-column 0 1 -.nr pg*cur-po \\n[@po]u -.ll \\n[pg*column-size]u -.\" .lt \\n[pg*column-size]u -.. -.\" MC column-size [ column-separation ] -.de MC -.br -.nr pg*head-mark \\n[nl]u -.if \\n[pg*cols-per-page]>1 .@error "MC: multicolumn mode already active" -.ie ''\\$1' .nr pg*column-size \\n[.l] -.el .nr pg*column-size (n;\\$1) -.ie ''\\$2' .nr pg*column-sep \\n[pg*column-size]/15 -.el .nr pg*column-sep (n;\\$2) -.\" -.nr pg*cols-per-page (u;\\n[.l]/(\\n[pg*column-size]+\\n[pg*column-sep]+1)) -.nr pg*cur-column 0 1 -.nr pg*cur-po \\n[@po]u -.ll \\n[pg*column-size]u -.\" .lt \\n[pg*column-size]u -.. -.\" begin a new column -.de NCOL -.br -.if \\n[nl]>\\n[pg*last-ncol] .nr pg*last-ncol \\n[nl] -.pg@footer -.. -.\" skip pages -.de SK -.br -.bp -.nr pg*i 0 1 -.\" force new page by writing something invisible. -.while \\n+[pg*i]<=(0\\$1) \{\ -\& -. bp -.\} -.. -.\"------------------------------- -.\" MULB width1 space1 width2 space2 width3 space3 ... -.de MULB -.br -.nr pg*i 0 1 -.nr pg*mul-x 0 1 -.nr pg*mul-ind 0 -.nr pg*mul-last 0 -.while \\n[.$] \{\ -. nr pg*mul!\\n+[pg*i] (n;0\\$1) -. nr pg*muls!\\n[pg*i] (n;0\\$2) -. shift 2 -.\} -.nr pg*mul-max-col \\n[pg*i] -.ds pg*mul-fam \\n[.fam] -.nr pg*mul-font \\n[.f] -.ev pg*mul-ev -.ps \\n[@ps]u -.vs \\n[@vs]u -.fam \\*[pg*mul-fam] -.ft \\n[pg*mul-font] -.fi -.hy 14 -.di pg*mul-div -.MULN -.. -.\"----------- -.de MULN -.if \\n[pg*mul-x]>=\\n[pg*mul-max-col] .@error "MULN: Undefined columnwidth" -.br -.if \\n[.d]>\\n[pg*mul-last] .nr pg*mul-last \\n[.d] -.rt +0 -.in \\n[pg*mul-ind]u -.ll (u;\\n[.i]+\\n[pg*mul!\\n+[pg*mul-x]])u -.nr pg*mul-ind +(u;\\n[pg*mul!\\n[pg*mul-x]]+\\n[pg*muls!\\n[pg*mul-x]]) -.. -.\"----------- -.\" MULE -.de MULE -.br -.if \\n[.d]>\\n[pg*mul-last] .nr pg*mul-last \\n[.d] -.di -.ev -.ne \\n[pg*mul-last]u -.nf -.mk -.pg*mul-div -.rt -.sp \\n[pg*mul-last]u -.fi -.. -.\"----------- -.de OP -.br -.ie o .if !\\n[pg*head-mark]=\\n[nl] \{\ -. bp +1 -. bp +1 -.\} -.el .bp -.. -.\"########### module footnotes ################### -.nr ft*note-size 0 -.nr ft*busy 0 -.nr ft*nr 0 1 -.nr ft*wide 0 -.nr ft*hyphen 0\" hyphenation value -.nr ft*adjust 1\" >0 if adjust true -.nr ft*indent 1\" >0 if text indent true (not imp. $$$) -.nr ft*just 0\" 0=left justification, 1=right (not imp. $$$) -.nr ft*exist 0\" not zero if there are any footnotes to be printed -.nr ft*clear-at-header 0\" >0 if footnotes should be reset at first level head. -.\" -.ds F \v'-.4m'\s-3\\n+[ft*nr]\s0\v'.4m' -.\" -.\"----------------- -.\" init footnote environment -.de ft@init -.\" indentcontrol not implemented $$$ -.\" label justification not implemented $$$ -'in 0 -'fi -.ie \\n[ft*adjust] 'ad -.el 'na -.ie \\n[ft*hyphen] 'hy 14 -.el 'hy 0 -.ll \\n[@cur-ll]u -.lt \\n[@cur-ll]u -.ps (p;\\n[@ps]u-2) -.vs (p;\\n[@vs]u-1) -.. -.\"----------------- -.\" set footnote format -.\" no support for two column processing (yet). $$$ -.de FD -.if \\n[.$]=0 .@error "FD: bad arg \\$1" -.ie \\n[.$]=2 .nr ft*clear-at-header 1 -.el .nr ft*clear-at-header 0 -.\" -.if !'\\$1'' \{\ -. ie \\$1>11 .nr ft*format 0 -. el .nr ft*format \\$1 -. \" -. nr ft*hyphen (\\n[ft*format]%2)*14 -. nr ft*format \\n[ft*format]/2 -. \" -. nr ft*adjust 1-(\\n[ft*format]%2) -. nr ft*format \\n[ft*format]/2 -. \" -. nr ft*indent 1-(\\n[ft*format]%2) -. nr ft*format \\n[ft*format]/2 -. \" -. nr ft*just \\n[ft*format]%2 -.\} -.. -.\"--------------- -.\" Footnote and display width control $$$ -.de WC -.nr ft*i 0 1 -.while \\n+[ft*i]<=\\n[.$] \{\ -. ds ft*x \\$[\\n[ft*i]] -. if '\\*[ft*x]'N' \{\ -. nr ft*wide 0 -. nr ft*first-fn 0 -. nr ds*wide 0 -. nr ds*float-break 1 -. \} -. if '\\*[ft*x]'-WF' .nr ft*wide 0 -. if '\\*[ft*x]'WF' .nr ft*wide 1 -. if '\\*[ft*x]'-FF' .nr ft*first-fn 0 -. if '\\*[ft*x]'FF' .nr ft*first-fn 1 -. if '\\*[ft*x]'-WD' \{\ -. nr ds*wide 0 -. if r ft*df-save \{\ -. nr Df \\n[ft*df-save] -. rm ft*df-save -. \} -. \} -. if '\\*[ft*x]'WD' \{\ -. nr ds*wide 1 -. nr ft*df-save \\n[Df] -. nr Df 4 -. \} -. if '\\*[ft*x]'-FB' .nr ds*float-break 0 -. if '\\*[ft*x]'FB' .nr ds*float-break 1 -. if \\n[D]>1 .tm WC WF=\\n[ft*wide] WD=\\n[ds*wide] -.\} -.. -.\"----------------- -.\" begin footnote -.\" Change environment, switch to diversion and print the foot-note mark. -.de FS -.if \\n[ft*busy] .@error "FS: missing FE" -.nr ft*busy 1 -.ev ft*ev -.ft@init -.if !\\n[ft*wide] .pg@set-po -.di ft*tmp-div -.nr ft*space (u;\\n[Fs]*\\n[Lsp]) -.sp \\n[ft*space]u -.\" print mark -.ie \\n[.$] .ds ft*mark \\$1 -.el .ds ft*mark \\n[ft*nr]. -\\*[ft*mark] -.in +.75c -.sp -1 -.nr ft*exist 1 -.. -.\"----------------- -.\" init footnote diversion -.de ft@init-footnote -.di ft*div -\l'20n' -.br -.di -.nr ft*note-size \\n[dn] -.. -.\"----------------- -.\" end footnote -.\" End the diversion, back to previous environment, and adjust -.\" the trap to the new foot-note size. -.de FE -.nr ft*busy 0 -.br -.di -'in 0 -'nf -.if \\n[@pl]u<\\n[dn]u .@error "FE: too big footnote" -.if !d ft*div .nr dn +1v -.if \\n[D]>3 .tm FE: foot-trap=\\n[pg*foot-trap] .d=\\n[.d] dn=\\n[dn] -.ie (\\n[pg*foot-trap]u-\\n[.d]u)<\\n[dn]u \{\ -. da ft*next-div -. ft*tmp-div -. br -. di -.\} -.el \{\ -. if !d ft*div .ft@init-footnote -. da ft*div -. ft*tmp-div -. di -. nr ft*note-size +\\n[dn] -.\} -.rm ft*tmp-div -.ev -.pg@move-trap -.. -.\"----------------- -.\" print footnotes, see pg@footer -.de ft@print -.ev ft*print-ev -'nf -'in 0 -.ll 100i -.ft*div -.br -.ev -.rm ft*div -.nr ft*note-size 0 -.pg@move-trap -.. -.\"----------------- -.\" check if any pending footnotes, see pg@header -.de ft@check-old -.if d ft*next-div \{\ -. ev ft*ev -. ft@init -. ft@init-footnote -. nf -. in 0 -. da ft*div -. ft*next-div -. di -. nr ft*note-size +\\n[dn] -. rm ft*next-div -. ev -. nr ft*exist 0 -. pg@move-trap -.\} -.. -.\"########### module display ################### -.nr ds*wide 0\" >0 if wide displays wanted -.nr df*fnr 0 1\" floating display counter -.nr df*o-fnr 1\" floating display counter, already printed -.nr ds*snr 0 1\" static display counter -.nr ds*lvl 0 1\" display level -.nr ds*float-busy 0\" >0 if printing float -.nr df*float 0 >0 if previous display was floating -.\"-------------------------------------------- -.de DE -.ie \\n[df*float] .df@end \\$@ -.el .ds@end \\$@ -.. -.\"-------------------------------------------- -.\" floating display start -.\" nested DF/DE is not allowed. -.de DF -.if \\n[df*float] .@error "DF:nested floating is not allowed. Use DS." -.ds@set-format \\$@ -.\" -.nr df*old-ll \\n[.l] -.nr ds*ftmp \\n[.f] -.misc@ev-keep df*ev -.ft \\n[ds*ftmp] -.\" -.init@reset -.di df*div -'in 0 -.\" -.ds@set-new-ev \\n[df*old-ll] -.SP \\n[Lsp]u -.nr df*float 1 -.. -.\"-------------------------------------------- -.de df@end -.br -.SP \\n[Lsp]u -.di -.nr df*width!\\n+[df*fnr] \\n[dl] -.nr df*height!\\n[df*fnr] \\n[dn] -.nr df*wide!\\n[df*fnr] \\n[ds*wide] -.nr df*format!\\n[df*fnr] \\n[ds*format] -.ev -.if \\n[D]>2 .tm DF:fnr=\\n[df*fnr] w=\\n[dl] h=\\n[dn] wide=\\n[ds*wide] \ - form=\\n[ds*format] -.\" move div to the floating display list -.rn df*div df*fdiv!\\n[df*fnr] -.\" -.nr par@ind-flag 0 -.\" print float if queue is empty and the display fits into -.\" the current page -.if ((\\n[df*fnr]>=\\n[df*o-fnr])&(\\n[dn]<\\n[.t])) .df@print-float 1 -.nr df*float 0 -.. -.\"------------- -.\" called by end-of-text -.de df@eot-print -.br -.if \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>2 .tm Print remaining displays. -.\" still some floats left, make non-empty environment -. misc@ev-keep ne -. init@reset -\c -. df@print-float 3 -. ev -.\} -.. -.\"--------------- -.\" print according to Df and De. -.\" .df@print-float type -.\" type called from -.\" 1 .DE -.\" 2 end of section -.\" 3 end of document -.\" 4 beginning of new page -.\" -.de df@print-float -.if \\n[Df]>5 .@error "Df=\\n[Df], max value is 5" -.if !\\n[ds*float-busy] \{\ -. nr ds*float-busy 1 -.\" at .DE -. if \\n[D]>3 .tm print-float: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. \" Df = 1 or 5 -. if (\\$1=1)&((\\n[Df]=1):(\\n[Df]=5)) \{\ -. if \\n[.t]>\\n[df*height!\\n[df*o-fnr]] \{\ -. \" Print only new displays. -. if \\n[df*o-fnr]=\\n[df*fnr] \{\ -. br -. ds@print-one-float -. \} -. \} -. \} -. \" Df = 3 -. if (\\$1=1)&(\\n[Df]=3) \{\ -. if \\n[.t]>\\n[df*height!\\n[df*o-fnr]] \{\ -. br -. ds@print-one-float -. \} -. \} -.\" print all if Df<2 and end of section -. if (\\$1=2)&(\\n[Sectp]>0)&(\\n[Df]<2) \{\ -. br -. ds@print-all-floats -. \} -.\" print all if end of document. Where should they go instead? -. if \\$1=3 \{\ -. br -. ds@print-all-floats -.\} -.\" new page -. if (\\$1=4)&(\\n[Df]>1) \{\ -. if \\n[Df]=2 .ds@print-one-float -. if \\n[Df]=3 .ds@print-one-float -. if \\n[Df]>3 \{\ -. ie \\n[De] .ds@print-all-floats -. el .ds@print-this-page -. \} -. \} -. nr ds*float-busy 0 -.\} -.. -.\"--------------- -.\" DF out -.\" print a floating diversion -.de ds@output-float -.nr df*old-ll \\n[.l] -.nr df*old-in \\n[.i] -.ev ds*fev -.nf -.nr df*i \\n[df*o-fnr] -.nr df*f \\n[df*format!\\n[df*i]] -.\" -.in \\n[df*old-in]u -.if \\n[df*f]=1 'in +\\n[Si]n -.if \\n[df*f]>=2 'in 0 -.if \\n[df*f]=2 'ce 9999 -.if \\n[df*f]=3 'in (u;(\\n[.l]-\\n[df*width!\\n[df*i]])/2) -.if \\n[df*f]=4 'rj 9999 -.if \\n[df*f]=5 'in (u;\\n[.l]-\\n[df*width!\\n[df*i]]) -.\" -.\" -.df*fdiv!\\n[df*o-fnr] -.\" -.if \\n[df*f]=2 'ce 0 -.if \\n[df*f]=4 'rj 0 -.ev -.rm df*fdiv!\\n[df*i] -.rm df*height!\\n[df*i] -.rm df*format!\\n[df*i] -.if \\n[df*wide!\\n[df*i]] .nr pg*head-mark \\n[nl]u -.nr df*o-fnr +1 -.. -.\"--------------- -.\" print one floating display if there is one. -.de ds@print-one-float -.if \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>3 .tm print-one-float: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .pg@next-page -. ds@output-float -. if \\n[De] .pg@next-page -.\} -.. -.\"--------------- -.\" print all queued floats. -.\" if De>0 do a page eject between the floats. -.de ds@print-all-floats -.while \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>3 .tm print-all-floats: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .pg@next-page -. br -\c -. ds@output-float -. if \\n[De] .pg@next-page -.\} -.. -.\"--------------- -.\" print as many floats as will fit on the current page -.de ds@print-this-page -.while \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>3 .tm print-this-page: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .break -. ds@output-float -.\} -.. -.\"--------------------------------------------------- -.\" get format of the display -.de ds@set-format -.ie \\n[.$] \{\ -. ie r ds*format!\\$1 .nr ds*format \\n[ds*format!\\$1] -. el .@error "DS/DF:wrong format:\\$1" -.\} -.el .nr ds*format 0 -.if \\n[D]>2 .tm set format=\\n[ds*format] -.\" fill or not to fill, that is the... -.nr ds*fill 0 -.ie \\n[.$]>1 \{\ -. ie r ds*fill!\\$2 .nr ds*fill \\n[ds*fill!\\$2] -. el .@error "\\*[ds*type]:wrong fill:\\$2" -.\} -.if \\n[D]>2 .tm set fill=\\n[ds*fill] -.nr ds*rindent 0 -.if \\n[.$]>2 .nr ds*rindent \\$3 -.if \\n[D]>2 .tm set indent=\\n[ds*rindent] -.. -.\"----------------------------- -.\" .ds@set-new-ev previous-line-length -.de ds@set-new-ev -.ll \\$1u -.lt \\$1u -.if \\n[ds*rindent] \{\ -. ll -\\n[ds*rindent]n -. lt -\\n[ds*rindent]n -.\} -.if \\n[ds*wide] \{\ -. ll \\n[@ll]u -. lt \\n[@ll]u -.\} -.\" -.ie \\n[ds*fill] 'fi -.el 'nf -.. -.\"-------------------------------------------------------- -.nr ds*format 0\" dummy value for .En/.EQ -.nr ds*format! 0\" no indent -.nr ds*format!0 0\" no indent -.nr ds*format!L 0\" no indent -.nr ds*format!I 1\" indent -.nr ds*format!1 1\" indent -.nr ds*format!C 2\" center each line -.nr ds*format!2 2\" center each line -.nr ds*format!CB 3\" center as block -.nr ds*format!3 3\" center as block -.nr ds*format!R 4\" right justify each line -.nr ds*format!4 4\" right justify each line -.nr ds*format!RB 5\" right justify as block -.nr ds*format!5 5\" right justify as block -.\"--------------- -.nr ds*fill! 0\" no fill -.nr ds*fill!N 0\" no fill -.nr ds*fill!0 0\" no fill -.nr ds*fill!F 1\" fill on -.nr ds*fill!1 1\" fill on -.\"-------------------------------------------- -.\" static display start -.\" nested DS/DE is allowed. No limit on depth. -.de DS -.br -.nr ds*lvl +1 -.ds@set-format \\$@ -.\" -.nr ds*old-ll \\n[.l] -.nr ds*old-in \\n[.i] -.misc@push ds-ll \\n[.l] -.misc@push ds-form \\n[ds*format] -.nr ds*i \\n[.i] -.nr ds*ftmp \\n[.f] -.misc@ev-keep ds*ev!\\n+[ds*snr] -.ft \\n[ds*ftmp] -.\" -.init@reset -.\" indent in a diversion doesn't seem like a good idea. -'in 0 -.di ds*div!\\n[ds*snr] -.\" -.ds@set-new-ev \\n[ds*old-ll] -.nr df*float 0 -.. -.\"-------------------------------------------- -.de ds@end -.if \\n-[ds*lvl]<0 .@error "DE: no corresponding DS" -.br -.di -.\" ********** -.nr ds*width \\n[dl] -.nr ds*height \\n[dn] -.misc@pop-nr ds-ll ds*old-ll -.misc@pop-nr ds-form ds*format -.\" -.\" ********** -'nf -.\" calculate needed space -.nr ds*need \\n[ds*height] -.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]v-\\n[pg*extra-header-size]v -.if (\\n[ds*height]>\\n[ds*i])&(\\n[.t]<(\\n[ds*i]/2)) .nr ds*need \\n[.t]u+1v -.if (\\n[ds*height]<\\n[ds*i])&(\\n[.t]<(\\n[ds*height])) .nr ds*need \\n[.t]u+1v -.\" Eject page if display will fit one page and -.\" there are less than half of the page left. -.if \\n[ds*need] .ne \\n[ds*need]u -.\" -.\" check if pending equation label -.eq@check \\n[ds*need] -'in \\n[ds*old-in]u -.if \\n[ds*format]=1 'in \\n[ds*old-in]u+\\n[Si]n -.if \\n[ds*format]>=2 'in 0 -.if \\n[ds*format]=2 'ce 9999 -.if \\n[ds*format]=3 'in (u;(\\n[.l]-\\n[ds*width])/2) -.if \\n[ds*format]=4 'rj 9999 -.if \\n[ds*format]=5 'in (u;\\n[.l]-\\n[ds*width]) -.\" ********** -.\" -.\" Print static display -.nr ds*i \\n[Lsp] -.if r Dsp .nr ds*i \\n[Dsp] -.\" -.if \\n[Ds] .SP \\n[ds*i]u -.ds*div!\\n[ds*snr] -.if \\n[Ds] .SP \\n[ds*i]u -.\" -.if \\n[ds*format]=2 'ce 0 -.if \\n[ds*format]=4 'rj 0 -.rm ds*div!\\n[ds*snr] -.nr ds*snr -1 -.nr par@ind-flag 0 -.ev -.. -.\"########### module list ################### -.\" .LI text-indent mark-indent pad type [mark [LI-space [LB-space] ] ] -.\" -.nr li*tind 0 -.nr li*mind 0 -.nr li*pad 0 -.nr li*type 0 -.ds li*mark 0 -.nr li*li-spc 0 -.nr li*lvl 0 1 -.aln :g li*lvl -.nr li*cur-vpos 0 -.\"-------------------------- -.\" the major list-begin macro. -.\" If type == -1 a 'break' will occur. -.de LB -.if \\n[.$]<4 .@error "LB: not enough arguments, min 4" -.misc@push cind \\n[.i] -.misc@push tind \\n[li*tind] -.misc@push mind \\n[li*mind] -.misc@push pad \\n[li*pad] -.misc@push type \\n[li*type] -.misc@push li-spc \\n[li*li-spc] -.ds li*mark-list!\\n[li*lvl] \\*[li*mark] -.nr li*lvl +1 -.\" -.nr li*tind (n;0\\$1)\" text-indent -.nr li*mind (n;0\\$2)\" mark-indent -.nr li*pad (n;0\\$3)\" pad -.nr li*type 0\\$4\" type -.ds li*mark \\$5\" mark -.ie !'\\$6'' .nr li*li-spc \\$6\" LI-space -.el .nr li*li-spc 1 -.ie !'\\$7'' .nr li*lb-spc \\$6\" LB-space -.el .nr li*lb-spc 0 -.\" init listcounter -.nr li*cnt!\\n[li*lvl] 0 1 -.\" assign format -.af li*cnt!\\n[li*lvl] 1 -.if \\n[li*type] .if !'\\*[li*mark]'' .af li*cnt!\\n[li*lvl] \\*[li*mark] -.\" -.if \\n[li*lb-spc] .SP (u;\\n[li*lb-spc]*\\n[Lsp]) -.in +\\n[li*tind]u -.. -.\"--------------- -.de LI -.if \\n[li*lvl]<1 .@error "LI:no lists active" -.if \\n[li*li-spc]&(\\n[Ls]>=\\n[li*lvl]) .SP (u;\\n[li*li-spc]*\\n[Lsp]) -.ne 2v -.\" -.ds li*c-mark \\*[li*mark] -.nr li*cnt!\\n[li*lvl] +1 -.if \\n[li*type]=1 .ds li*c-mark \\n[li*cnt!\\n[li*lvl]]. -.if \\n[li*type]=2 .ds li*c-mark \\n[li*cnt!\\n[li*lvl]]) -.if \\n[li*type]=3 .ds li*c-mark (\\n[li*cnt!\\n[li*lvl]]) -.if \\n[li*type]=4 .ds li*c-mark [\\n[li*cnt!\\n[li*lvl]]] -.if \\n[li*type]=5 .ds li*c-mark <\\n[li*cnt!\\n[li*lvl]]> -.if \\n[li*type]=6 .ds li*c-mark {\\n[li*cnt!\\n[li*lvl]]} -.if \\n[.$]=1 .ds li*c-mark \\$1 -.ie \\n[.$]=2 \{\ -. ie (\\$2=2):(\\n[Limsp]=0) .ds li*c-mark \\$1\\*[li*c-mark] -. el .ds li*c-mark \\$1\ \\*[li*c-mark] -.\} -.\" -.\" determine where the text begins -.nr li*text-begin \\n[li*tind]>?\w@\\*[li*c-mark]\ @ -.nr x \w@\\*[li*c-mark]\ @ -.\" -.\" determine where the mark begin -.ie !\\n[li*pad] .nr li*in \\n[li*mind] -.el .nr li*in \\n[li*text-begin]-\\n[li*pad]-\w@\\*[li*c-mark]@ -.if !\\n[li*in] .nr li*in 0 -.\" -.ti -\\n[li*tind]u -.\" no indentation if hanging indent -.if (\w@\\*[li*c-mark]@=0)&((\\n[.$]=0):(\w@\\$1@=0)) .nr li*text-begin 0 -\Z'\&\h'\\n[li*in]u'\\*[li*c-mark]'\h'\\n[li*text-begin]u'\&\c -.if \\n[li*type]=-1 .br -.. -.\" -.\"------------- -.de li@pop -.nr li*lvl -1 -.misc@pop-nr cind li*tmp -.in \\n[li*tmp]u -.misc@pop-nr tind li*tind -.misc@pop-nr mind li*mind -.misc@pop-nr pad li*pad -.misc@pop-nr type li*type -.misc@pop-nr li-spc li*li-spc -.ds li*mark \\*[li*mark-list!\\n[li*lvl]] -.. -.de LE -.if \\n[li*lvl]<1 .@error "LE:mismatched" -.li@pop -.if '\\$1'1' .SP \\n[Lsp]u -.. -.\"------------- -.\" list status clear. -.\" terminate all lists to level i -.de LC -.ie \\n[.$]<1 .nr li*i 0 -.el .nr li*i \\$1 -.if \\n[li*i]>\\n[li*lvl] .@error "LC: incorrect argument: \\n[li*i] (too big)" -.while \\n[li*lvl]>\\n[li*i] .li@pop -.nr par@ind-flag 0 -.. -.\"------------- -.de AL -.if \\n[.$]>3 .@error "AL: too many arguments" -.if \\n[D]>2 .tm AL $* -.ie \\n[.$]<=1 .LB \\n[Li] 0 2 1 "\\$1" -.el \{\ -. ie \\n[.$]=2 .LB 0\\$2 0 2 1 "\\$1" -. el \{\ -. ie !'\\$2'' .LB \\$2 0 2 1 "\\$1" 0 1 -. el .LB \\n[Li] 0 2 1 "\\$1" 0 1 -. \} -.\} -.. -.de ML -.if \\n[.$]>3 .@error "ML: too many arguments" -.if \\n[D]>2 .tm ML $* -.nr li*ml-width \w@\\$1@u+1n -.if \\n[.$]<2 .LB \\n[li*ml-width]u 0 1 0 "\\$1" -.if \\n[.$]=2 .LB 0\\$2 0 1 0 "\\$1" -.if \\n[.$]=3 \{\ -. ie '\\$2'' .LB \\n[li*ml-width]u 0 1 0 "\\$1" 0 1 -. el .LB \\n[Li] 0 1 0 "\\$1" 0 1 -.\} -.. -.de VL -.if \\n[D]>2 .tm VL $* -.if \\n[.$]>3 .@error "VL: too many arguments" -.if \\n[.$]<1 .@error "VL: missing text-indent" -.ie \\n[.$]<3 .LB 0\\$1 0\\$2 0 0 -.el .LB 0\\$1 0\\$2 0 0 \& 0 1 -.. -.\" Bullet (for .BL) -.de BL -.if \\n[D]>2 .tm BL $* -.ds BU \s-2\(bu\s0 -.if \\n[.$]>2 .@error "BL: too many arguments" -.if \\n[.$]<1 .LB \\n[Pi] 0 1 0 \\*[BU] -.if \\n[.$]=1 .LB 0\\$1 0 1 0 \\*[BU] -.if \\n[.$]=2 \{\ -. ie '\\$1'' .LB \\n[Pi] 0 1 0 \\*[BU] 0 1 -. el .LB 0\\$1 0 1 0 \\*[BU] 0 1 -.\} -.. -.de DL -.if \\n[D]>2 .tm DL $* -.if \\n[.$]>2 .@error "DL: too many arguments" -.if \\n[.$]<1 .LB \\n[Pi] 0 1 0 \(em -.if \\n[.$]=1 .LB 0\\$1 0 1 0 \(em -.if \\n[.$]=2 \{\ -. ie '\\$1'' .LB \\n[Pi] 0 1 0 \(em 0 1 -. el .LB 0\\$1 0 1 0 \(em 0 1 -.\} -.. -.de RL -.if \\n[D]>2 .tm RL $* -.if \\n[.$]>2 .@error "RL: too many arguments" -.if \\n[.$]<1 .LB 6 0 2 4 -.if \\n[.$]=1 .LB 0\\$1 0 2 4 -.if \\n[.$]=2 \{\ -. ie '\\$1'' .LB 6 0 2 4 1 0 1 -. el .LB 0\\$1 0 2 4 1 0 1 -.\} -.. -.\" Broken Variable List. As .VL but text begin on the next line -.de BVL -.if \\n[D]>2 .tm BVL $* -.if \\n[.$]>3 .@error "BVL: too many arguments" -.if \\n[.$]<1 .@error "BVL: missing text-indent" -.ie \\n[.$]<3 .LB 0\\$1 0\\$2 0 -1 -.el .LB 0\\$1 0\\$2 0 -1 \& 0 1 -.. -.\" ####### module tbl ####################################### -.\" This module is copied from groff_ms and modified for mgm. -.\" Yes, it does not resemble the original anymore :-). -.\" Don't know if I missed something important. -.\" Groff_ms is written by James Clark. -.nr tbl*have-header 0 -.nr tbl*header-written 0 -.de TS -.br -.if ''\\n[.z]' .SP -.if '\\$1'H' .di tbl*header-div -.. -.de tbl@top-hook -.if \\n[tbl*have-header] \{\ -. ie \\n[.t]-\\n[tbl*header-ht]-1v .tbl@print-header -. el .sp \\n[.t]u -.\} -.. -.de tbl@bottom-hook -.if \\n[tbl*have-header] \{\ -. nr T. 1 -.\" draw bottom and side lines of boxed tables. -. T# -.\} -.nr tbl*header-written 0 -.. -.de tbl@print-header -.ev tbl*ev -'nf -.tbl*header-div -.ev -.mk #T -.nr tbl*header-written 1 -.. -.de TH -.if '\\$1'N' @error TH: N not implemented yet. Sorry. -.ie '\\n[.z]'tbl*header-div' \{\ -. nr T. 0 -. T# -. br -. di -. nr tbl*header-ht \\n[dn] -. ne \\n[dn]u+1v -. nr tbl*have-header 1 -. ie '\\$1'N' .if !\\n[tbl*header-written] .tbl@print-header -. el .tbl@print-header -.\} -.el .@error ".TH without .TS H" -.. -.de TE -.ie '\\n(.z'tbl*header-div' .@error ".TS H but no .TH before .TE" -.el \{\ -. nr tbl*have-header 0 -.\} -.\" reset tabs -.TAB -.. -.de T& -.. -.\" ####### module pic ####################################### -.de PS -.nr pic*in 0 -.br -.SP .5 -.ie \\n[.$]<2 .@error "PS: bad arguments. Probably not processed with pic." -.el \{\ -. if !\\n[ds*lvl] .ne (u;\\$1)+1v -.\" should be contained between .DS/.DE -.if r ds*format \{\ -. if \\n[ds*lvl]&((\\n[ds*format]=2):(\\n[ds*format]=3)) \{\ -. nr pic*in \\n[.i] -.\" . in +(u;\\n[.l]-\\n[.i]-\\$2/2) -. \} -. \} -.\} -.. -.de PE -.init@reset -.SP .5 -.. -.\" ####### module eq ####################################### -.\" -.nr eq*number 0 1 -.ds eq*label -.de EQ -.ds eq*label "\\$1 -.. -.de eq@check -.if !'\\*[eq*label]'' \{\ -. mk -' sp (u;\\$1/2-.45v) -. ie (\\n[Eq]%2) \{\ -. \" label to the left -\h'|0'\\*[eq*label]\c -. \} -. el \{\ -. \" label to the right -\h'|\\n[.l]u'\\*[eq*label] -. \} -. rt -.\} -.ds eq*label -.. -.de EN -.. -.\"########### module toc ################### -.\" table of contents -.nr toc*slevel 1 -.nr toc*spacing \n[Lsp]u -.nr toc*tlevel 2 -.nr toc*tab 0 -.\"----------- -.\" Table of contents with friends (module lix) -.de TC -.br -.\" print any pending displays and references -.df@print-float 3 -.if \\n[ref*flag] .RP 0 1 -.\" -.if \w@\\$1@>0 .nr toc*slevel \\$1 -.if \w@\\$2@>0 .nr toc*spacing (u;\\$2*\\n[Lsp]) -.if \w@\\$3@>0 .nr toc*tlevel \\$3 -.if \w@\\$4@>0 .nr toc*tab \\$4 -.if \\n[pg*cols-per-page]>1 .1C -.ds H1txt \\*[Licon] -.ds Tcst co -.pg@clear-hd -.EF "" -.OF "" -.pg@next-page -.\"------------- -.if d Ci .toc@read-Ci \\*[Ci] -.nf -.in 0 -.ie \\n[Oc] .hd@set-page 1 -.el \{\ -. nr toc*pn 1 1 -. af toc*pn i -. aln ;g toc*pn -. PF "''\\\\\\\\n[toc*pn]''" -. am pg@header -. nr toc*pn +1 -\\.. -.\} -.nr toc*i 4 1 -.while \\n+[toc*i]<10 \{\ -. if !'\\$\\n[toc*i]'' \{\ -. ce -\\$\\n[toc*i] -. br -. \} -.\} -.if \\n[.$]<=4 .if d TX .TX -.ie d TY .if \\n[.$]<=4 .TY -.el \{\ -. ce -\\*[Licon] -. br -. SP 3 -.\} -.if d toc*list .toc*list -.br -.\" print LIST OF XXX -.if d lix*dsfg .lix@print-ds fg FG "\\*[Lf]" \\n[.$] -.if d lix*dstb .lix@print-ds tb TB "\\*[Lt]" \\n[.$] -.if d lix*dsec .lix@print-ds ec EC "\\*[Le]" \\n[.$] -.if d lix*dsex .lix@print-ds ex EX "\\*[Lx]" \\n[.$] -.. -.\"----------- -.\" .toc@read-Ci lev1 lev2 lev3 lev4 ... lev7 -.de toc@read-Ci -.nr toc*i 0 1 -.while \\n+[toc*i]<8 \{\ -. nr toc*hl!\\n[toc*i] \\$\\n[toc*i] -.\} -.. -.\"----------- -.de toc@entry -.ie \\n[Sectp] \{\ -. toc@save \\$1 "\\*[hd*mark]" "\\$2" \\*[hd*sect-pg] -.\} -.el .toc@save \\$1 "\\*[hd*mark]" "\\$2" \\n[%] -.. -.als )E toc@entry -.\"----------- -.de toc@save -.\" collect maxsize of mark if string Ci don't exist. -.if !d Ci \{\ -. if !r toc*hl!\\$1 .nr toc*hl!\\$1 0 -. if \\n[toc*hl!\\$1]<=\w@\\$2@ \{\ -. nr toc*hl!\\$1 \w@\\$2@u -. \} -.\} -.am toc*list -.\" .toc@set level headernumber text pagenr -.toc@set \\$1 "\\$2" "\\$3" \\$4 -\\.. -.. -.\"----------- -.\" level mark text pagenumber -.de toc@set -.if \\$1<=\\n[toc*slevel] .SP \\n[toc*spacing]u -.na -.fi -.nr toc*ind 0 -.nr toc*i 0 1 -.ie d Ci \{\ -. nr toc*ind +\\n[toc*hl!\\$1]u -.\} -.el \{\ -. while \\n+[toc*i]<\\$1 \{\ -. nr toc*ind +\\n[toc*hl!\\n[toc*i]]u -. \} -.\} -.nr toc*text \\n[toc*ind]u+\\n[toc*hl!\\$1]u -.in \\n[toc*text]u -.ti -\\n[toc*hl!\\$1]u -.\" -.\" length of headernum space -.nr toc*i \\n[toc*hl!\\$1]-\w@\\$2@ -.\" -.ll \\n[@ll]u-\w@\\$4@u-2m -.ne 2v -.\" ragged right --------------------------------- -.ie \\$1>\\n[toc*tlevel] \{\ -\\$2 -. sp -1 -\\$3\ \ \ \\$4 -. br -.\} -.el \{\ -. \" unnumbered heading -------------------- -. ie '\\$2'' \{\ -. in \\n[toc*ind]u -\\$3\h'1m' -. \} -. \" normal heading ------------------------ -. el \{\ -\\$2 -. sp -1 -\\$3\h'1m' -. \} -. ll \\n[@ll]u -. sp -1 -. nr toc*sep (u;\\n[.l]-\\n[.n]-\\n[.i]-\w@\\$4@)-1m -\h'|\\n[.n]u'\l'\\n[toc*sep]u.'\h'1m'\\$4 -.\} -.ll \\n[@ll]u -.. -.\"########################### module lix ############################ -.\" LIST OF figures, tables, exhibits and equations -.nr lix*fg-nr 0 1 -.nr lix*tb-nr 0 1 -.nr lix*ec-nr 0 1 -.nr lix*ex-nr 0 1 -.aln Fg lix*fg-nr -.aln Tb lix*tb-nr -.aln Ec lix*ec-nr -.aln Ex lix*ex-nr -.\"------------ -.de FG -.lix@print-line fg Lf \\n+[lix*fg-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.de TB -.lix@print-line tb Lt \\n+[lix*tb-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.de EC -.lix@print-line ec Le \\n+[lix*ec-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.de EX -.lix@print-line ex Lx \\n+[lix*ex-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.\"------------ -.\" print line with 'figure' in the text -.\" type stringvar number text override flag refname -.de lix@print-line -.ds lix*text "\\$4 -.\" -.ie \\n[Sectf] .ds lix*numb \\n[H1]-\\$3 -.el .ds lix*numb \\$3 -.\" -.ie !\\n[Of] .ds lix*ds-form .\ \ \" -.el .ds lix*ds-form "\ \(em\ \" -.nr lix*in \\n[.i] -.ds lix*label \\*[Li\\$1]\ \\*[lix*numb]\\*[lix*ds-form] -.if !'\\$5'' \{\ -. if !0\\$6 .ds lix*label \\*[Li\\$1]\ \\$5\\*[lix*numb]\\*[lix*ds-form] -. if 0\\$6=1 .ds lix*label \\*[Li\\$1]\ \\*[lix*numb]\\$5\\*[lix*ds-form] -. if 0\\$6=2 .ds lix*label \\*[Li\\$1]\ \\$5\\*[lix*ds-form] -.\} -.\" print line if not between DS/DE -.ie \\n[ds*lvl]<1&\\n[df*float]=0 \{\ -. lix@print-text "\\*[lix*label]" "\\*[lix*text]" \\$1 \\$2 \\$7 -.\} -.el \{\ -. lix@embedded-text "\\*[lix*label]" "\\*[lix*text]" \\$1 \\$2 \\$7 -.\} -.\" -.. -.\"----------- -.\" label text type stringvar refname -.de lix@print-text -.ie \\n[Sectp] .ds lix*pgnr \\*[hd*sect-pg] -.el .ds lix*pgnr \\n[%] -.SP \\n[Lsp]u -.misc@ev-keep lix -.init@reset -.br -.ie (\w@\\$1\\$2@)>(\\n[.l]-\\n[.i]) \{\ -. in +\w@\\$1@u -. ti 0 -.\} -.el .ce 1 -\fB\\$1\fP\\$2 -.br -.ev -.\" save line for LIST OF XXX, wth is the width of the label -.if !r lix*wth\\$3 .nr lix*wth\\$3 0 -.\" find the maximum width -.if \w@\\*[lix*label]@>\\n[lix*wth\\$3] .nr lix*wth\\$3 \w@\\*[lix*label]@ -.if \\n[\\$4] .lix@ds-save \\$3 \\*[lix*pgnr] "\\*[lix*text]" "\\*[lix*label]" -.\" save reference to the figure -.if !'\\$5'' .SETR \\$5 \\*[lix*numb] -.. -.\" hide printout until diversion is evaluated -.de lix@embedded-text -\!.ie \\\\n[Sectp] .ds lix*pgnr \\\\*[hd*sect-pg] -\!.el .ds lix*pgnr \\\\n[%] -\!.SP \\\\n[Lsp]u -\!.misc@ev-keep lix -\!.ll \\n[.l]u -\!.init@reset -\!.fi -\!.ie (\w@\\$1\\$2@)>(\\\\n[.l]-\\\\n[.i]) \{\ -. in +\w@\\$1@u -\!. ti 0 -\!\fB\\$1\fP\\$2 -\!.\} -\!.el \{\ -. ce 1 -\!\fB\\$1\fP\\$2 -\!.\} -\!.br -\!.ev -.\" save line for LIST OF XXX, wth is the width of the label -\!.if !r lix*wth\\$3 .nr lix*wth\\$3 0 -.\" find the maximum width -\!.if \w@\\*[lix*label]@>\\\\n[lix*wth\\$3] .nr lix*wth\\$3 \w@\\*[lix*label]@ -\!.if \\\\n[\\$4] .lix@ds-save \\$3 \\\\*[lix*pgnr] "\\*[lix*text]" "\\*[lix*label]" -.\" save reference to the figure -\!.if !'\\$5'' .SETR \\$5 \\*[lix*numb] -.. -.\"------------ -.\" print complete list of XXXX -.de lix@print-ds -.\" arg: fg,tb,ec,ex text -.ds H1txt \\$3 -.ds Tcst \\$1 -.if !\\n[Cp] .pg@next-page -.\" print LIST OF XXXX -.\" execute user-defined macros -.if \\$4<=4 .if d TX\\$2 .TX\\$2 -.ie d TY\\$2 .if \\$4<=4 .TY\\$2 -.el \{\ -. ce -\\$3 -. SP 3 -.\} -.in \\n[lix*wth\\$1]u -.fi -.lix*ds\\$1 -.. -.\"------------ -.\" save line of list in macro -.de lix@ds-save -.\" type pagenumber text -.am lix*ds\\$1 -.lix@dsln \\$1 \\$2 "\\$3" "\\$4" \\$5 -\\.. -.. -.\"------------ -.\" print appended macro -.\" lix@dsln type pagenumber text headernr -.de lix@dsln -.nr lix*i \\n[lix*wth\\$1]-\w@\\$4@ -.ne 4v -.ll \\n[@ll]u-\w@\\$4@u-\w@\\$2@u-2m -.ti -\\n[lix*wth\\$1]u -\\$4 -.sp -1 -\\$3\h'1m' -.sp -1 -.ll -.nr lix*sep (u;\\n[.l]-\\n[.n]-\\n[.i]-\w@\\$2@)-1m -\h'|\\n[.n]u'\l'\\n[lix*sep]u.'\h'1m'\\$2 -.SP \\n[toc*spacing]u -.. -.\"########################### module fnt ############################ -.\" some font macros. -.de R -.ft R -.ul 0 -.. -.\"----------- -.de fnt@switch -.ul 0 -.ds fnt*tmp -.nr fnt*prev \\n[.f] -.nr fnt*i 2 1 -.while \\n+[fnt*i]<=\\n[.$] \{\ -. if \\n[fnt*i]>3 .as fnt*tmp \, -. ie (\\n[fnt*i]%2)=1 .as fnt*tmp \\$1\\$[\\n[fnt*i]] -. el .as fnt*tmp \\$2\\$[\\n[fnt*i]] -. if \\n[fnt*i]<\\n[.$] .as fnt*tmp \/ -.\} -\&\\*[fnt*tmp]\f[\\n[fnt*prev]] -.. -.\"----------- -.de B -.ie \\n[.$] .fnt@switch \fB \f[\\n[.f]] \\$@ -.el .ft B -.. -.de I -.ie \\n[.$] .fnt@switch \fI \f[\\n[.f]] \\$@ -.el .ft I -.. -.de IB -.if \\n[.$] .fnt@switch \fI \fB \\$@ -.. -.de BI -.if \\n[.$] .fnt@switch \fB \fI \\$@ -.. -.de IR -.if \\n[.$] .fnt@switch \fI \fR \\$@ -.. -.de RI -.if \\n[.$] .fnt@switch \fR \fI \\$@ -.. -.de RB -.if \\n[.$] .fnt@switch \fR \fB \\$@ -.. -.de BR -.if \\n[.$] .fnt@switch \fB \fR \\$@ -.. -.\"########################### module box ############################ -.\" draw a box around some text. Text will be kept on the same page. -.\" -.nr box*ll 0 -.\" .B1 and .B2 works like .DS -.de B1 -.if \\n[box*ll] .@error "B1: missing B2" -.nr box*ll \\n[.l] -.nr box*ind \\n[.i] -.nr box*hyp \\n[.hy] -.nr box*wid \\n[.l]-\\n[.i] -.\" -.\" jump to new environment. -.ev box*ev -.di box*div -.ps \\n[@ps]u -.vs \\n[@vs]u -.in 1n -.ll (u;\\n[box*wid]-1n) -.hy \\n[.hy] -.. -.de B2 -.if !\\n[box*ll] .@error "B2: missing B1" -.br -.di -.nr box*height \\n[dn] -.ne \\n[dn]u+1v -.ll \\n[box*ll]u -.in \\n[box*ind]u -.nr box*y-pos \\n[.d]u -.nf -.box*div -.fi -\v'-1v+.25m'\ -\D'l \\n[box*wid]u 0'\ -\D'l 0 -\\n[box*height]u'\ -\D'l -\\n[box*wid]u 0'\ -\D'l 0 \\n[box*height]u' -.br -.sp -1 -.ev -.sp .20v -.in \\n[box*ind]u -.ll \\n[box*ll]u -.rm box*div -.nr box*ll 0 -.. -.\"########################### module ref ############################ -.nr ref*nr 0 1 -.aln :R ref*nr -.nr ref*nr-width 5n -.nr ref*flag 0 \" for end-of-text -.ds Rf \v'-.4m'\s-3[\\n+[ref*nr]]\s0\v'.4m' -.\" -.\" start reference -.\"------------ -.de RS -.if !''\\$1' .ds \\$1 \v'-.4m'\s-3[\\n[ref*nr]]\s0\v'.4m' -.nr ref*flag 1 -.am ref*mac -.ref@start-print \\n[ref*nr] -\\.. -.eo -.am ref*mac RF -.. -.\"------------ -.de RF -.ec -.am ref*mac -.ref@stop-print -\\.. -.. -.\"------------ -.de ref@start-print -.di ref*div -.in \\n[ref*nr-width]u -.ti -(\w@\\$1.@u+1n) -\\$1. -.sp -1 -.. -.de ref@stop-print -.br -.di -.ne \\n[dn]u -.ev ref*ev2 -.nf -.ref*div -.ev -.rm ref*div -.if \\n[Ls] .SP \\n[Lsp]u -.. -.\"----------- -.de RP -.if !d ref*mac .@error "RP: No references!" -.nr ref*i 0\\$2 -.if \\n[ref*i]<2 .SK -.SP 2 -.ref@print-refs -.if 0\\$1<1 .nr ref*nr 0 1 -.if ((\\n[ref*i]=0):(\\n[ref*i]=2)) .SK -.. -.\"----------- -.\" called by end-of-text! -.de ref@eot-print -.\".if \\n[ref*flag] \{ -.if d ref*mac \{\ -. if \\n[D]>2 .tm Print references, called by eot -. nr ref*flag 0 -. br -. misc@ev-keep ne -. init@reset -\c -' bp -. ev -. ref@print-refs -.\} -.. -.\"----------- -.\" prints the references -.de ref@print-refs -.toc@save 1 "" "\\*[Rp]" \\n[%] -.ce -\fI\\*[Rp]\fP -.sp -.nr ref*ll \\n[.l] -.misc@ev-keep ref*ev -.ll \\n[ref*ll]u -.in 0 -.ref*mac -.in -.rm ref*mac -.ev -.nr ref*flag 0 1 -.. -.\"########################### module app ############################ -.\" -.nr app*nr 0 1 -.af app*nr A -.nr app*dnr 0 1 -.nr app*flag 0 -.\"------------ -.\" .APP name text -.\" name == "" -> autonumber -.de APP -.\" .if \\n[.$]<2 .@error "APP: too few arguments" -.app@set-ind "\\$1" -.\" -.ds Tcst ap -.ds Apptxt \\$2 -.\" -.ie \\n[Aph] .app@header \\*[app*ind] "\\$2" -.el .bp -.app@index "\\*[app*ind]" "\\$2" -.. -.\"------------ -.\" .APPSK name pages text -.\" name == "" -> autonumber -.de APPSK -.if \\n[.$]<2 .@error "APPSK: too few arguments" -.app@set-ind "\\$1" -.\" -.ds Tcst ap -.ds Apptxt \\$3 -.\" -.ie \\n[Aph] .app@header \\*[app*ind] "\\$3" -.el .bp -.app@index "\\*[app*ind]" "\\$3" -.pn +\\$2 -.. -.\"------------ -.de app@set-ind -.ie \w@\\$1@ .ds app*ind \\$1 -.el \{\ -. if !\\n[app*flag] \{\ -. nr H1 0 1 -. af H1 A -. af H1h A -. nr app*flag 1 -. \} -. ds app*ind \\n+[app*nr] -. nr H1 \\n+[app*dnr] -. nr H1h \\n[app*dnr] -.\} -.\" clear lower counters -.nr app*i 1 1 -.while \\n+[app*i]<8 .nr H\\n[app*i] 0 1 -.. -.\"------------ -.de app@index -.toc@save 1 "" "\\*[App] \\$1: \\$2" \\n[%] -.. -.\"------------ -.\" app@heaer name text -.de app@header -.bp -.SP (u;\\n[Lsp]*4) -.ce 1 -\s+4\fB\\*[App]\ \\$1\fP\s0 -.SP (u;\\n[Lsp]*2) -.if \w@\\$2@<\\n[.l] .ce 1 -\fB\s+2\\$2\s0\fP -.SP (u;\\n[Lsp]*4) -.. -.als APPX app@header -.\"########################### module cov ############################ -.\" title stored in diversion cov*title -.\" abstract stored in diversion cov*abstract -.\" arg to abstract stored in cov*abs-arg -.\" indent stored in cov*abs-ind -.\" number of authors stored in cov*au -.\" author(s) stored in cov*au!x!y -.\" author(s) title stored in cov*at!x!y -.\" x is the author-index [1-cov*au], y is the argument-index [1-9]. -.\" author(s) firm stored in cov*firm -.\" new date (if .ND exists) is stored in cov*new-date -.\" -.\" -.ds cov*abs-name ABSTRACT -.\" -.nr cov*au 0 -.de TL -.rm IA IE WA WE LO LT -.if \\n[.$]>0 .ds cov*title-charge-case \\$1 -.if \\n[.$]>1 .ds cov*title-file-case \\$2 -.pg@disable-top-trap -.eo -.de cov*title AU -.. -.\"------------------- -.de cov@title-end -.ec -.. -.\"------------------- -.\" .AU name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]] -.de AU -.cov@title-end -.pg@disable-top-trap -.nr cov*au +1 -.nr cov*i 0 1 -.ds cov*au!\\n[cov*au]!1 -.while \\n[.$]>=\\n+[cov*i] \{\ -. ds cov*au!\\n[cov*au]!\\n[cov*i] "\\$[\\n[cov*i]] -.\} -.if (\\n[.$]>=3)&(\w@\\$3@) \{\ -. if d cov*location-\\$3] \{\ -. ds cov*au!3!\\n[cov*au] \\*[cov*location-\\$3] -. \} -.\} -.. -.\"------------------- -.\" .AT title1 [title2 [... [title9] ]]]] -.\" Well, thats all that COVEND look for. -.\" Must appear directly after .AU -.de AT -.if \\n[.$]<1 .@error "AT: no arguments" -.nr cov*i 0 1 -.while \\n[.$]>=\\n+[cov*i] \{\ -. ds cov*at!\\n[cov*au]!\\n[cov*i] "\\$[\\n[cov*i]] -.\} -.. -.\"------------------- -.de AF -.cov@title-end -.ds cov*firm \\$1 -.. -.de AST -.ds cov*abs-name \\$1 -.. -.de AS -.pg@disable-top-trap -.if d cov*abstract .@error "AS: only one abstract allowed" -.if !''\\n[.z]' .@error "AS: no diversion allowed (previous .AS?)" -.nr cov*abs-arg 0\\$1 -.nr cov*abs-ind (n;0\\$2) -.de cov*abstract AE -.. -.de AE -.. -.\" I am planning to use mgm for some time :-) -.nr cov*year 1900+\n[yr] -.ds cov*new-date \*[MO\n[mo]] \n[dy], \n[cov*year] -.als DT cov*new-date -.de ND -.ds cov*new-date \\$1 -.. -.\"------------------- -.\" save technical numbers. -.de TM -.nr cov*i 0 1 -.while \\n[.$]>=\\n+[cov*i] .ds cov*mt-tm!\\n[cov*i] \\$[\\n[cov*i]] -.nr cov*mt-tm-max \\n[.$] -.. -.\"----------------------- -.\" cover sheet -.\" the file must have the following last lines (somewhere): -.\" .pg@enable-top-trap -.\" .bp 1 -.\" .pg@enable-trap -.ds cov*mt-file!0 0.MT -.ds cov*mt-file!1 0.MT -.ds cov*mt-file!2 0.MT -.ds cov*mt-file!3 0.MT -.ds cov*mt-file!4 4.MT -.ds cov*mt-file!5 5.MT -.ds cov*mt-file!6 0.MT -.\"------------ -.de MT -.ie \\n[.$] \{\ -. ie d cov*mt-file!\\$1 .ds cov*mt-type \\$1 -. el .ds cov*mt-type 6 -.\} -.el .ds cov*mt-type 1 -.ds cov*mt-addresse "\\$2 -.ds cov*mt-type-text "\\$1 -.ie d @language .ds cov*str mm/\\*[@language]_ -.el .ds cov*str mm/ -.mso \\*[cov*str]\\*[cov*mt-file!\\*[cov*mt-type]] -.. -.de COVER -.ie !\\n[.$] .ds cov*cov-type ms -.el .ds cov*cov-type \\$1 -.pg@disable-top-trap -.ie d @language .ds cov*str mm/\\*[@language]_\\*[cov*cov-type].cov -.el .ds cov*str mm/\\*[cov*cov-type].cov -.mso \\*[cov*str] -.. -.\"########################### module qrf ############################ -.\" forward and backward reference thru special files. -.\" -.\" check if stderr-method is wanted -.\" This was needed when I discovered that groff was considered unsafe -.\" and groff -U didn't work. It's a workaround like the original -.\" index method, but not in my view elegant enough. -.\" -.\" init reference system -.de INITR -.ds qrf*file \\$1 -.nr qrf*pass 2 -.if \\n[D]>1 .tm INITR: source \\*[qrf*file] -.if \\n[Ref] \{\ -. tm .\\\\" Filename: \\$1 -.\} -'so \\*[qrf*file] -.\} -.. -.\"--------------- -.\" set a reference. -.de SETR -.if \\n[.$]<1 .@error "SETR:reference name missing" -.ie !r qrf*pass .tm "SETR: No .INITR in this file" -.el \{\ -. ds qrf*name qrf*ref-\\$1 -. if \\n[D]>2 .tm SETR: ref \\*[qrf*name]=\\*[hd*mark],\\n[%] -. \" heading-number -. ds \\*[qrf*name]-hn \\*[hd*mark] -. \" page-number -. ds \\*[qrf*name]-pn \\n[%] -. \" -. if \\n[Ref] \{\ -. tm .ds \\*[qrf*name]-hn \\*[hd*mark] -. tm .ds \\*[qrf*name]-pn \\n[%] -. if !'\\$2'' .tm .ds \\*[qrf*name]-xx \\$2 -. \} -.\} -.. -.\"--------------- -.\" get misc-string, output <->42<-> in pass 1 -.\" If two arg -> set var. arg to misc-string. -.de GETST -.if \\n[.$]<1 .@error "GETST:reference name missing" -.if !r qrf*pass .tm "GETST: No .INITR in this file" -.ds qrf*name qrf*ref-\\$1 -. if d \\*[qrf*name]-xx \{\ -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-xx] -. el \\*[\\*[qrf*name]-xx]\c -. \} -.\} -.. -.\"--------------- -.\" get header-number, output X.X.X. in pass 1 -.\" If two arg -> set var. arg to header-number. -.de GETHN -.if \\n[.$]<1 .@error "GETHN:reference name missing" -.if !r qrf*pass .tm "GETHN: No .INITR in this file" -.ds qrf*name qrf*ref-\\$1 -.if d \\*[qrf*name]-hn \{\ -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-hn] -. el \\*[\\*[qrf*name]-hn]\c -.\} -.. -.\"--------------- -.\" get page-number, output 9999 in pass 1 -.\" If two arg -> set var. arg to page-number. -.de GETPN -.if \\n[.$]<1 .@error "GETPN:reference name missing" -.if !r qrf*pass .tm "GETPN: No .INITR in this file" -.ds qrf*name qrf*ref-\\$1 -.if d \\*[qrf*name]-pn -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-pn] -. el \\*[\\*[qrf*name]-pn]\c -.\} -.. -.\"---------- -.de GETR -.if \\n[.$]<1 .@error "GETR:reference name missing" -.ie !r qrf*pass \{\ -. tm "GETR: No .INITR in this file" -.\} -.el \{\ -. GETHN \\$1 Qrfh -. GETPN \\$1 Qrfp -\\*[Qrf] -.\} -.. -.\"########################### module ind ############################ -.\" Support for mgs-style indexing, borrowed from mgs. -.de IX -.tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n[%] -.. -.\"-------------------- -.\" Another type of index system -.\" INITI filename [type] -.de INITI -.if \\n[.$]<1 .@error "INITI:filename missing" -.\" ignore if INITI has already been used -.if r ind*pass .@error "INITI:already initialyzed" -.nr ind*pass 1 -.ds ind*file \\$1.ind -.ie \\n[.$]<2 .ds ind*type N -.el .ds ind*type \\$2 -.. -.\"--------------- -.de IND -.if !r ind*pass .@error "IND: No .INITI in this file" -.if '\\*[ind*type]'N' .ds ind*ref \\n[%] -.if '\\*[ind*type]'H' .ds ind*ref \\*[hd*mark] -.if '\\*[ind*type]'B' .ds ind*ref \\*[hd*mark]\t\\n[%] -.\" -.if \\n[.$] .ds ind*line \\$1 -.while \\n[.$]>0 \{\ -. shift -. as ind*line \t\\$1 -.\} -.as ind*line \\*[ind*ref] -.tm \\*[ind*line] -.. -.\" print index -.de INDP -.\" sort the index -.if !\\n[Cp] .pg@next-page -.\" print INDEX -.\" execute user-defined macros -.if d TXIND .TXIND -.ie d TYIND .TYIND -.el \{\ -. SK -. ce -\\*[Index] -. SP 3 -. 2C -. nf -.\} -.pso \\*[Indcmd] \\*[ind*file] -.ie d TZIND .TZIND -.el \{\ -. fi -. 1C -.\} -.. -.\"########################### module let ############################ -.\" Letter macros -.\"------------------------ -.\" Formal closing -.de FC -.df@print-float 3 -.ie \\n[.$] .ds let*i \\$1 -.el .ds let*i \\*[Letfc] -.ie d let*type .let@fc_\\*[let*type] "\\*[let*i]" \\$@ -.el .let@mt-closing "\\*[let*i]" \\$@ -.. -.\"------- -.de let@mt-closing -.ne 5v -.in (u;\\n[.l]/2) -.sp -\\$1 -.in -.. -.\"------------------------ -.\" Signature line -.de SG -.ie d let*type .let*lt-sign \\$@ -.el .let*mt-sign \\$@ -.. -.\"------------------------ -.de let*lt-sign -.if !d let@sg_\\*[let*type] .@error "SG: letter type \\*[let*type] undefined" -.df@print-float 3 -.nr let*i 0 1 -.nr let*j 0 -.while \\n+[let*i]<=\\n[let*wa-n] \{\ -.if \\n[let*i]=\\n[let*wa-n] .nr let*j 1 -.let@sg_\\*[let*type] "\\*[let*wa-name!\\n[let*i]]" "\\*[let*wa-title!\\n[let*i]]" \\n[let*i] \\n[let*j] \\$@ -.\} -.. -.\"------------------------ -.\" Memorandum signature -.de let*mt-sign -.df@print-float 3 -.ne \\n[cov*au]u*4v -.ie \\n[.$]>1 .nr let*k 1 -.el .nr let*k \\n[cov*au] -.ds let*tmp \\*[cov*au!\\n[let*k]!3]-\\*[cov*au!\\n[let*k]!4]- -.nr let*i 0 1 -.while \\n+[let*i]<=\\n[cov*au] \{\ -. if \\n[let*i]>1 .as let*tmp / -. as let*tmp \\*[cov*au!\\n[let*k]!2] -.\} -.if !''\\$1' .as let*tmp -\\$1 -.in (u;\\n[.l]/2) -.nf -.nr let*i 0 1 -.while \\n+[let*i]<=\\n[cov*au] \{\ -. SP 3v -. if \\n[let*i]=\\n[let*k] \{\ -\Z'\h'-(u;\\n[.l]/2)'\\*[let*tmp]'\c -. \} -\\*[cov*au!\\n[let*i]!1] -.\} -.fi -.in -.. -.\"------------------------ -.\" Approval signature -.de AV -.ne 6v -.nf -.sp -.ie \\n[.$]<2 \\*[Letapp] -.el .sp -.sp 2 -.ie n ______________________________ ______________ -.el \D'l 25m 0'\h'4m'\D'l 12m 0' -\Z'\\$1'\h'29m'\f[\\*[@sdf_font]]\\*[Letdate]\fP -.fi -.. -.\"------------------------ -.\" Letter signature -.de AVL -.ne 6v -.nf -.sp 3 -.ie n ______________________________ -.el \D'l 25m 0' -\Z'\\$1' -.fi -.. -.\"------------------------ -.\" Letter type -.\" let@header is called from the header. It is supposed -.\" to remove the alias itself. -.de LT -.rm AF AS AE AT AU CS OK TL MT -.ds let*type BL -.nr Pi 5 -.nr Pt 0 -.if !''\\$1' .ds let*type \\$1 -.if !d let@head_\\*[let*type] .@error "LT: unknown letter type \\$1" -.shift -.als let@header let@head_\\*[let*type] -.let@init_\\*[let*type] \\$@ -.if \n[D]>1 .tm Letter type \\*[let*type] -.. -.\"----------- -.\" Blocked letter -.de let@init_BL -.. -.de let@head_BL -.rm let@header -.let@print-head 1 -.. -.de let@sg_BL -.ne 5v -.nf -.in (u;\\n[.l]/2) -.sp 3v -\\$1 -\\$2 -.in -.if \\$4 .sp -.if \w'\\$5'&\\$4 \\$5 -.fi -.. -.als let@fc_BL let@mt-closing -.\"----------- -.\" Semiblocked letter -.de let@init_SB -.nr Pt 1 -.. -.de let@head_SB -.rm let@header -.let@print-head 1 -.. -.als let@sg_SB let@sg_BL -.als let@fc_SB let@mt-closing -.\"----------- -.\" Full-blocked letter -.de let@init_FB -.. -.de let@head_FB -.rm let@header -.let@print-head -.. -.de let@sg_FB -.ne 5v -.nf -.sp 3v -\\$1 -\\$2 -.if \\$4 .sp -.if \w'\\$5'&\\$4 \\$5 -.fi -.. -.de let@fc_FB -.ne 5v -.sp -\\$1 -.. -.\"----------- -.\" Simplified letter -.de let@init_SP -.. -.de let@head_SP -.rm let@header -.let@print-head -.. -.de let@sg_SP -.nf -.if \\$3=1 .sp -.sp -.misc@toupper "\\$1, \\$2" -.if \\$4 .sp -.if \w'\\$5'&\\$4 \\$5 -.fi -.. -.de let@fc_SP -.sp 2 -.. -.\"-------------------------------------- -.\" Print the letter-head -.de let@print-head -.nf -.sp |11 -.if '1'\\$1' .in (u;\\n[.l]/2) -.\" ---- WA -.ie d let@wa-div .let@wa-div -.el .sp 3 -.\" ---- datum -\\*[cov*new-date] -.sp -.if '1'\\$1' .if !d let*lo-CN .if !d let*lo-RN .sp 2 -.\" ---- Confidential -.if d let*lo-CN \{\ -. ti 0 -. ie !''\\*[let*lo-CN]' \\*[let*lo-CN] -. el \\*[LetCN] -. sp -.\} -.\" ---- Reference -.if d let*lo-RN \{\ -\\*[LetRN] \\*[let*lo-RN] -. sp -.\} -.\" ---- IA -.sp -.in 0 -.nr let*i 0 1 -.while \\n+[let*i]<=\\n[let*ia-n] \{\ -\\*[let*ia-name!\\n[let*i]] -\\*[let*ia-title!\\n[let*i]] -.\} -.if d let@ia-div .let@ia-div -.\" ---- Attention -.if d let*lo-AT \{\ -. sp -\\*[LetAT] \\*[let*lo-AT] -.\} -.\" ---- Salutation -.if !'\\*[let*type]'SP' .if d let*lo-SA \{\ -. sp -. ti 0 -. ie !''\\*[let*lo-SA]' \\*[let*lo-SA] -. el \\*[LetSA] -.\} -.\" ---- Subject -.if d let*lo-SJ \{\ -. ie '\\*[let*type]'SP' \{\ -. sp 2 -. misc@toupper \\*[let*lo-SJ] -. sp -. \} -. el \{\ -. sp -. if '\\*[let*type]'SB' .ti +5m -\\*[LetSJ] \f[\\*[@sdf_font]]\\*[let*lo-SJ]\fP -. \} -.\} -.. -.\"------------------- -.\" .IA [name [title]] -.nr let*ia-n 0 1 -.de IA -.if \\n[.$] .ds let*ia-name!\\n+[let*ia-n] \\$1 -.if \\n[.$]>1 .ds let*ia-title!\\n[let*ia-n] \\$2 -.ev let@ev -'nf -.di let@ia-div -.eo -.. -.de IE -.di -.ec -.ev -.. -.\"------------------- -.\" .WA [name [title]] -.nr let*wa-n 0 1 -.de WA -.if \\n[.$] .ds let*wa-name!\\n+[let*wa-n] \\$1 -.if \\n[.$]>1 .ds let*wa-title!\\n[let*wa-n] \\$2 -.ev let@ev -'nf -.di let@wa-div -.it \\n[Letwam] let@wa-drain -.eo -.. -.\"------ -.de let@wa-drain -.it -.di -.di let@wa-junk -.. -.\"------ -.de WE -.it -.ec -.di -.ev -.if d let@wa-junk .rm let@wa-junk -.. -.\"------------------- -.\" Copy to -.de NS -.sp -.ie !''\\$2' .ds let*str \\$1 -.el \{\ -. ie \\n[.$]>0 \{\ -. ie !\w'\\$1' .ds let*str \\*[Letns!\\*[Letnsdef]] -. el \{\ -. ie d Letns!\\$1 .ds let*str \\*[Letns!\\$1] -. el .ds let*str \\*[Letns!copy](\\$1)\\*[Letns!to] -. \} -. \} -. el .ds let*str \\*[Letns!\\*[Letnsdef]] -.\} -.ne 2 -.nf -\\*[let*str] -.. -.de NE -.fi -.. -.\"------------------- -.\" Letter options -.de LO -.rm AF AS AE AT AU CS OK TL MT -.if ''\\$1' .@error "LO: missing option" -.if !d Let\\$1 .@error "LO: unknown option (\\$1)" -.ds let*lo-\\$1 \\$2 -.if \n[D]>1 .tm Letter option \\$1 \\$2 -.. -.\"-------------------- -.\" Start with a clean slate -.init@reset diff --git a/gnu/usr.bin/groff/mm/tmac.mse b/gnu/usr.bin/groff/mm/tmac.mse deleted file mode 100644 index 323299c2061..00000000000 --- a/gnu/usr.bin/groff/mm/tmac.mse +++ /dev/null @@ -1,185 +0,0 @@ -.\" $Id: tmac.mse,v 1.5 2000/04/09 08:25:19 millert Exp $ -.\" -.\" swedish version of mm -.\" See tmac.m for version-information. -.ds @language se -.mso tmac.m -.\" -.ds App Bilaga -.ds Lf Figurer -.ds Lt Tabeller -.ds Lx Uppställningar -.ds Le Ekvationer -.\" Page length -.if !r L .nr @pl 28.5c -.\" page width -.if !r W .nr @ll 13c -.\" page offset -.if !r O .nr @po 3.5c -.\" set the above parameters -.ll \n[@ll]u -.po \n[@po]u -.pl \n[@pl]u -.ds Lifg Figur -.ds Litb Tabell -.ds Liex Uppställning -.ds Liec Ekvation -.ds Licon Innehållsförteckning -.ds Qrf Se kapitel \\*[Qrfh], sidan \\*[Qrfp]. -.ds Rp Referenser -.ds Letfc Vänliga hälsningar -.ds Letapp Godkänd av: -.ds Letdate datum -.ds Letconf KONFIDENTIELLT -.ds Letsal Till vederbörande: -.ds Letatt ATTENTION: -.ds Letsubj Innehåll: -.ds Letref Refererande till: -.\" -.ds Letns!copy Kopia \" space! -.ds Letns!to " till -.ds Letns!0 Kopia till -.ds Letns!1 Kopia (med att.) till -.ds Letns!2 Kopia (utan att.) till -.ds Letns!3 Att. -.ds Letns!4 Atts. -.ds Letns!5 Enc. -.ds Letns!6 Encs. -.ds Letns!7 Annat försättsblad -.ds Letns!8 Brev till -.ds Letns!9 Dokument till -.ds Letns!10 Kopia (med atts.) till -.ds Letns!11 Kopia (utan atts.) till -.ds Letns!12 Endast abstract till -.ds Letns!13 Hela dokumentet till -.ds Letns!14 CC: -.\" -.ds MO1 januari -.ds MO2 februari -.ds MO3 mars -.ds MO4 april -.ds MO5 maj -.ds MO6 juni -.ds MO7 juli -.ds MO8 augusti -.ds MO9 september -.ds MO10 oktober -.ds MO11 november -.ds MO12 december -.nr cov*year 1900+\n[yr] -.ds cov*new-date \n[dy] \*[MO\n[mo]] \n[cov*year] -.nr pg*footer-size 4\" 1v+footer+even/odd footer+1v -.\"------------------------------------------------ -.\" Dokumentnamn -.ds LetDNAMN -.\" Mottagarens datum -.ds LetMDAT Ert datum: -.\" Bilaga -.ds LetBIL Bilaga \" -.\" Kompletteringsuppgift -.ds LetKOMP -.\" Dokumentbeteckning eller dokumentnummer -.ds LetDBET -.\" Beteckning (ärendebeteckning i form av diarienummer e.d. -.ds LetBET Beteckning: -.\" Mottagarens beteckning. -.ds LetMBET Er beteckning: -.\" Antal sidor -.ds LetSIDOR -.\" Svensk standard med högerställd löptext. --------------------- -.de let@init_SVH -.in 4.57c -.ll 17.57c -.. -.de let@head_SVH -.rm let@header -.let@print_SV H -.. -.de let@sg_SVH -.. -.de let@fc_SVH -.. -.\" Svensk standard med vänsterställd löptext. --------------------- -.de let@init_SVV -.. -.de let@head_SVV -.rm let@header -.let@print_SV V -.. -.de let@sg_SVV -.. -.de let@fc_SVV -.. -.\"-------------------------------- -.de let@print_SV -.nf -.\" pos T0 ----------------------------------- -.in 0 -.sp |3 -.if d let@wa-div .let@wa-div -.\"----- addressat -.if '\\$1'V' .if d let@ia-div \{\ -. sp |10 -. let@ia-div -.\} -.\" pos T4 ----------------------------------- -.in 9.14c -.\"----- kompletteringsuppgift -.if d let*lo-KOMP \{\ -. sp |2 -\\*[let*lo-KOMP] -.\} -.\"----- dokumentnamn -.if d let*lo-DNAMN \{\ -. sp |3 -\\*[let*lo-DNAMN] -.\} -.\"----- datum -.if d cov*new-date \{\ -. sp |5 -Datum: -\\*[cov*new-date] -.\} -.\"----- mottagarens datum -.if d let*lo-MDAT \{\ -. sp |7 -\\*[LetMDAT] -\\*[let*lo-MDAT] -.\} -.\"----- addressat -.if '\\$1'H' .if d let@ia-div \{\ -. sp |10 -. let@ia-div -.\} -.\" pos T6 ----------------------------------- -.in 13.72c -.\"----- mottagarens beteck. -.if d let*lo-MBET \{\ -. sp |7 -\\*[LetMBET] -\\*[let*lo-MBET] -.\} -.\"----- dokumentbeteck. -.if d let*lo-BET \{\ -. sp |3 -\\*[LetBET] -\\*[let*lo-BET] -.\} -.\" pos T7 ----------------------------------- -.in 16c -.\"----- bilaga -.if d let*lo-BIL \{\ -. sp |2 -\\*[LetBIL]\\*[let*lo-BIL] -.\} -.\" -.\"----- sidnummer -.sp |3 -.ie d let*lo-SIDOR \\n[%] (\\*[let*lo-SIDOR]) -.el \\n[%] -.\" -.\" Ta hand om special -.if d TP .TP -.sp |17 -.. -.\" ----------------------------------- |