Annotation of 43BSDReno/share/doc/usd/24.troff/m2, revision 1.1

1.1     ! root        1: .\"    @(#)m2  6.2 (Berkeley) 4/21/86
        !             2: .\"
        !             3: .tr |
        !             4: .rm mx
        !             5: .br
        !             6: .mh
        !             7: Line Length and Indenting
        !             8: .pg
        !             9: The maximum line length for fill mode may be set with \fBll\fR.
        !            10: The indent may be set with \fBin\fR;
        !            11: an indent applicable to \fIonly\fR the \fInext\fR output line may be set with \fBti\fR.
        !            12: The line length includes indent space but \fInot\fR
        !            13: page offset space.
        !            14: The line-length minus the indent is the basis for centering with \fBce\fR.
        !            15: The effect of \fBll\fR, \fBin\fR, or \fBti\fR
        !            16: is delayed, if a partially collected line exists,
        !            17: until after that line is output.
        !            18: In fill mode the length of text on an output line is less than or equal to
        !            19: the line length minus the indent.
        !            20: The current line length and indent are available in registers \fB.l\fR and \fB.i\fR respectively.
        !            21: The length of \fIthree-part titles\fR produced by \fBtl\fR
        !            22: (see \(sc14) is \fIindependently\fR set by \fBlt\fR.
        !            23: .h1
        !            24: .bt
        !            25: \fB&ll\fI|\(+-N\fR     6.5\|in previous        E,\fBm\fR       Line length is set to \(+-\fIN\fR.
        !            26: In \*(TR the maximum (line-length)+(page-offset) is about 7.54 inches.
        !            27: .bt
        !            28: \fB&in\fI|\(+-N\fR     \fIN\(eq\^\fR0  previous        B,E,\fBm\fR     Indent is set to \fI\(+-N\fR.
        !            29: The indent is prepended to each output line.
        !            30: .bt
        !            31: \fB&ti\fI|\(+-N\fR     -       ignored B,E,\fBm\fR     Temporary indent.
        !            32: The \fInext\fR output text line will be indented a distance \fI\(+-N\fR
        !            33: with respect to the current indent.
        !            34: The resulting total indent may not be negative.
        !            35: The current indent is not changed.
        !            36: .mh
        !            37: Macros, Strings, Diversion, and Position Traps
        !            38: .sc
        !            39: Macros and strings.
        !            40: A \fImacro\fR is a named set of arbitrary \fIlines\fR that may be invoked by name or
        !            41: with a \fItrap\fR.
        !            42: A \fIstring\fR is a named string of \fIcharacters\fR,
        !            43: \fInot\fR including a newline character,
        !            44: that may be interpolated by name at any point.
        !            45: Request, macro, and string names share the \fIsame\fR name list.
        !            46: Macro and string names
        !            47: may be one or two characters long and may usurp previously defined
        !            48: request, macro, or string names.
        !            49: Any of these entities may be renamed with \fBrn\fR
        !            50: or removed with \fBrm\fR.
        !            51: Macros are created by \fBde\fR and \fBdi\fR, and appended to by \fBam\fR and \fBda\fR;
        !            52: \fBdi\fR and \fBda\fR cause normal output to be stored in a macro.
        !            53: Strings are created by \fBds\fR and appended to by \fBas\fR.
        !            54: A macro is invoked in the same way as a request;
        !            55: a control line beginning \fB.\fIxx\fR will interpolate the contents of macro \fIxx\fR.
        !            56: The remainder of the line may contain up to nine \fIarguments\fR.
        !            57: The strings \fIx\fR and \fIxx\fR are interpolated at any desired point with
        !            58: \fB\e\(**\fIx\fR and \fB\e\(**(\fIxx\fR respectively.
        !            59: String references and macro invocations may be nested.
        !            60: .sc
        !            61: Copy mode input interpretation.
        !            62: During the definition and extension
        !            63: of strings and macros (not by diversion)
        !            64: the input is read in \fIcopy mode\fR.
        !            65: The input is copied without interpretation
        !            66: \fIexcept\fR that:
        !            67: .x1
        !            68: .ds + \v'-.1m'\s-4\(bu\s+4\v'+.1m'
        !            69: \*+ The contents of number registers indicated by \fB\en\fR are interpolated.
        !            70: \*+ Strings indicated by \fB\e\(**\fR are interpolated.
        !            71: \*+ Arguments indicated by \fB\e$\fR are interpolated.
        !            72: \*+ Concealed newlines indicated by \fB\e\fR(newline) are eliminated.
        !            73: \*+ Comments indicated by \fB\e"\fR are eliminated.
        !            74: \*+ \fB\et\fR and \fB\ea\fR are interpreted as \s-1ASCII\s+1 horizontal tab and \s-1SOH\s+1 respectively (\(sc9).
        !            75: \*+ \fB\e\e\fR is interpreted as \fB\e\fR.
        !            76: \*+ \fB\e.\fR is interpreted as "\fB.\fR".
        !            77: .x2
        !            78: These interpretations can be suppressed by
        !            79: prepending
        !            80: a \fB\e\fR.
        !            81: For example, since \fB\e\e\fR maps into a \fB\e\fR, \fB\e\en\fR will copy as \fB\en\fR which
        !            82: will be interpreted as a number register indicator when the
        !            83: macro or string is reread.
        !            84: .sc
        !            85: Arguments.
        !            86: When a macro is invoked by name, the remainder of the line is
        !            87: taken to contain up to nine arguments.
        !            88: The argument separator is the space character, and arguments
        !            89: may be surrounded by double-quotes to permit imbedded space characters.
        !            90: Pairs of double-quotes may be imbedded in double-quoted arguments to
        !            91: represent a single double-quote.
        !            92: If the desired arguments won't fit on a line,
        !            93: a concealed newline may be used to continue on the next line.
        !            94: .pg
        !            95: When a macro is invoked the \fIinput level\fR is \fIpushed down\fR and
        !            96: any arguments available at the previous level become unavailable
        !            97: until the macro is completely read and the previous level is restored.
        !            98: A macro's own arguments can be interpolated at \fIany\fR point
        !            99: within the macro with \fB\e$\fIN\fR, which interpolates the \fIN\fR\^th
        !           100: argument
        !           101: (1\(<=\fIN\fR\^\(<=9).
        !           102: If an invoked argument doesn't exist,
        !           103: a null string results.
        !           104: For example, the macro \fIxx\fR may be defined by
        !           105: .x1
        !           106: .ftB
        !           107: .ta .75i
        !           108: &de xx \e"begin definition
        !           109: Today is \e\e$1 the \e\e$2.
        !           110: &.     \e"end definition
        !           111: .ftR
        !           112: .x2
        !           113: and called by
        !           114: .x1
        !           115: .ftB
        !           116: &xx Monday 14th
        !           117: .ftR
        !           118: .x2
        !           119: to produce the text
        !           120: .x1
        !           121: .ftB
        !           122: Today is Monday the 14th.
        !           123: .ftR
        !           124: .x2
        !           125: Note that the \fB\e$\fR
        !           126: was concealed in the definition with a prepended \fB\e\fR.
        !           127: The number of currently available
        !           128: arguments is in the \fB.$\fR register.
        !           129: .pg
        !           130: No arguments are available at the top (non-macro) level
        !           131: in this implementation.
        !           132: Because string referencing is implemented
        !           133: as a input-level push down,
        !           134: no arguments are available from \fIwithin\fR a string.
        !           135: No arguments are available within a trap-invoked macro.
        !           136: .pg
        !           137: Arguments are copied in \fIcopy mode\fR onto a stack
        !           138: where they are available for reference.
        !           139: The mechanism does not allow an argument to contain
        !           140: a direct reference to a \fIlong\fR string
        !           141: (interpolated at copy time) and it is advisable to
        !           142: conceal string references (with an extra \fB\e\fR\|)
        !           143: to delay interpolation until argument reference time.
        !           144: .sc
        !           145: Diversions.
        !           146: Processed output may be diverted into a macro for purposes
        !           147: such as footnote processing (see Tutorial \(scT5)
        !           148: or determining the horizontal and vertical size of some text for
        !           149: conditional changing of pages or columns.
        !           150: A single diversion trap may be set at a specified vertical position.
        !           151: The number registers \fBdn\fR and \fBdl\fR respectively contain the
        !           152: vertical and horizontal size of the most
        !           153: recently ended diversion.
        !           154: Processed text that is diverted into a macro
        !           155: retains the vertical size of each of its lines when reread
        !           156: in \fInofill\fR mode
        !           157: regardless of the current \fIV\fR.
        !           158: Constant-spaced (\fBcs\fR) or emboldened (\fBbd\fR) text that is diverted
        !           159: can be reread correctly only if these modes are again or still in effect
        !           160: at reread time.
        !           161: One way to do this is to imbed in the diversion the appropriate
        !           162: \fBcs\fR or \fBbd\fR requests with the \fItransparent\fR
        !           163: mechanism described in \(sc10.6.
        !           164: .pg
        !           165: Diversions may be nested
        !           166: and certain parameters and registers
        !           167: are associated
        !           168: with the current diversion level
        !           169: (the top non-diversion level may be thought of as the
        !           170: 0th diversion level).
        !           171: These are the diversion trap and associated macro,
        !           172: no-space mode,
        !           173: the internally-saved marked place (see \fBmk\fR and \fBrt\fR),
        !           174: the current vertical place (\fB.d\fR register),
        !           175: the current high-water text base-line (\fB.h\fR register),
        !           176: and the current diversion name (\fB.z\fR register).
        !           177: .sc
        !           178: Traps.
        !           179: Three types of trap mechanisms are available\(empage traps, a diversion trap, and
        !           180: an input-line-count trap.
        !           181: Macro-invocation traps may be planted using \fBwh\fR at any page position including the top.
        !           182: This trap position may be changed using \fBch\fR.
        !           183: Trap positions at or below the bottom of the page
        !           184: have no effect unless or until
        !           185: moved to within the page or rendered effective by an increase in page length.
        !           186: Two traps may be planted at the \fIsame\fR position only by first planting them at different
        !           187: positions and then moving one of the traps;
        !           188: the first planted trap will conceal the second unless and until the first one is moved
        !           189: (see Tutorial Examples \(scT5).
        !           190: If the first one is moved back, it again conceals the second trap.
        !           191: The macro associated with a page trap is automatically
        !           192: invoked when a line of text is output whose vertical size \fIreaches\fR
        !           193: or \fIsweeps past\fR the trap position.
        !           194: Reaching the bottom of a page springs the top-of-page trap, if any,
        !           195: provided there is a next page.
        !           196: The distance to the next trap position is available in the \fB.t\fR register;
        !           197: if there are no traps between the current position and the bottom of the page,
        !           198: the distance returned is the distance to the page bottom.
        !           199: .pg
        !           200: A macro-invocation trap effective in the current diversion may be planted using \fBdt\fR.
        !           201: The \fB.t\fR register works in a diversion; if there is no subsequent trap a \fIlarge\fR
        !           202: distance is returned.
        !           203: For a description of input-line-count traps, see the \fBit\fR request below.
        !           204: .h1
        !           205: .bt
        !           206: \fB&de\fI|xx|yy\fR     -       \fI.yy=\fB..\fR -       Define or redefine the macro \fIxx\fR.
        !           207: The contents of the macro begin on the next input line.
        !           208: Input lines are copied in \fIcopy mode\fR until the definition is terminated by a
        !           209: line beginning with \fB.\fIyy\fR,
        !           210: whereupon the macro \fIyy\fR is called.
        !           211: In the absence of \fIyy\fR, the definition
        !           212: is terminated by a
        !           213: line beginning with "\fB..\fR".
        !           214: A macro may contain \fBde\fR requests
        !           215: provided the terminating macros differ
        !           216: or the contained definition terminator is concealed.
        !           217: \&"\fB..\fR" can be concealed as
        !           218: \fB\e\e..\fR which will copy as \fB\e..\fR and be reread as "\fB..\fR".
        !           219: .bt
        !           220: \fB&am\fI|xx|yy\fR     -       \fI.yy=\fB..\fR -       Append to macro (append version of \fBde\fR).
        !           221: .bt
        !           222: \fB&ds\fI|xx|string\fR -       ignored -       Define a string
        !           223: \fIxx\fR containing \fIstring\fR.
        !           224: Any initial double-quote in \fIstring\fR is stripped off to permit
        !           225: initial blanks.
        !           226: .bt
        !           227: \fB&as\fI|xx|string\fR -       ignored -       Append
        !           228: \fIstring\fR to string \fIxx\fR
        !           229: (append version of \fBds\fR).
        !           230: .bt
        !           231: \fB&rm\fI|xx\fR        -       ignored -       Remove
        !           232: request, macro, or string.
        !           233: The name \fIxx\fR is removed from the name list and
        !           234: any related storage space is freed.
        !           235: Subsequent references will have no effect.
        !           236: .bt
        !           237: \fB&rn\fI|xx|yy\fR     -       ignored -       Rename request, macro, or string
        !           238: \fIxx\fR to \fIyy\fR.
        !           239: If \fIyy\fR exists, it is first removed.
        !           240: .bt
        !           241: \fB&di|\fIxx\fR        -       end     D       Divert output to macro \fIxx\fR.
        !           242: Normal text processing occurs during diversion
        !           243: except that page offsetting is not done.
        !           244: The diversion ends when the request \fBdi\fR or \fBda\fR is encountered without an argument;
        !           245: extraneous
        !           246: requests of this type should not appear when nested diversions are being used.
        !           247: .bt
        !           248: \fB&da|\fIxx\fR        -       end     D       Divert, appending to \fIxx\fR
        !           249: (append version of \fBdi\fR).
        !           250: .bt
        !           251: \fB&wh\fI|N|xx\fR      -       -       \fBv\fR Install
        !           252: a trap to invoke \fIxx\fR at page position \fIN;\fR
        !           253: a \fInegative N\fR will be interpreted with respect to the
        !           254: page \fIbottom\fR.
        !           255: Any macro previously planted at \fIN\fR is replaced by \fIxx\fR.
        !           256: A zero \fIN\fR refers to the \fItop\fR of a page.
        !           257: In the absence of \fIxx\fR, the first found trap at \fIN\fR, if any, is removed.
        !           258: .bt
        !           259: \fB&ch\fI|xx|N\fR      -       -       \fBv\fR Change
        !           260: the trap position for macro \fIxx\fR to be \fIN\fR.
        !           261: In the absence of \fIN\fR, the trap, if any, is removed.
        !           262: .bt
        !           263: \fB&dt\fI|N|xx\fR      -       off     D,\fBv\fR       Install a diversion trap
        !           264: at position \fIN\fR in the \fIcurrent\fR diversion to invoke
        !           265: macro \fIxx\fR.
        !           266: Another \fBdt\fR will redefine the diversion trap.
        !           267: If no arguments are given, the diversion trap is removed.
        !           268: .bt
        !           269: \fB&it\fI|N|xx\fR      -       off     E       Set an input-line-count trap
        !           270: to invoke the macro \fIxx\fR after \fIN\fR lines of \fItext\fR input
        !           271: have been read
        !           272: (control or request lines don't count).
        !           273: The text may be in-line text or
        !           274: text interpolated by inline or trap-invoked macros.
        !           275: .bt
        !           276: \fB&em\fI|xx\fR        none    none    -       The
        !           277: macro \fIxx\fR will be invoked
        !           278: when all input has ended.
        !           279: The effect is the same as if the contents of \fIxx\fR had been at the end
        !           280: of the last file processed.
        !           281: .mh
        !           282: Number Registers
        !           283: .pg
        !           284: A variety of parameters are available to the user as
        !           285: predefined, named \fInumber registers\fR (see Summary and Index, page 7).
        !           286: In addition, the user may define his own named registers.
        !           287: Register names are one or two characters long and \fIdo not\fR conflict
        !           288: with request, macro, or string names.
        !           289: Except for certain predefined read-only registers,
        !           290: a number register can be read, written, automatically
        !           291: incremented or decremented, and interpolated
        !           292: into the input in a variety of formats.
        !           293: One common use of user-defined registers is to
        !           294: automatically number sections, paragraphs, lines, etc.
        !           295: A number register may be used any time numerical input is expected or desired
        !           296: and may be used in numerical \fIexpressions\fR (\(sc1.4).
        !           297: .pg
        !           298: Number registers are created and modified using \fBnr\fR, which
        !           299: specifies the name, numerical value, and the auto-increment size.
        !           300: Registers are also modified, if accessed
        !           301: with an auto-incrementing sequence.
        !           302: If the registers \fIx\fR and \fIxx\fR both contain
        !           303: \fIN\fR and have the auto-increment size \fIM\fR,
        !           304: the following access sequences have the effect shown:
        !           305: .TS
        !           306: center box;
        !           307: c2|c2|c
        !           308: c2|c2|c2
        !           309: l2|c2|c2
        !           310: l2|c2|c2
        !           311: l2|l2|c2.
        !           312:        Effect on       Value
        !           313: Sequence       Register        Interpolated
        !           314: _
        !           315: \fB\en\fIx\fR  none    \fIN\fR
        !           316: \fB\en(\fIxx\fR        none    \fIN\fR
        !           317: \fB\en+\fIx\fR \fIx\fR incremented by \fIM\fR  \fIN+M\fR
        !           318: \fB\en\-\fIx\fR        \fIx\fR decremented by \fIM\fR  \fIN\-M\fR
        !           319: \fB\en+(\fIxx\fR       \fIxx\fR incremented by \fIM\fR \fIN+M\fR
        !           320: \fB\en\-(\fIxx\fR      \fIxx\fR decremented by \fIM\fR \fIN\-M\fR
        !           321: .TE
        !           322: When interpolated, a number register is converted to
        !           323: decimal (default),
        !           324: decimal with leading zeros,
        !           325: lower-case Roman,
        !           326: upper-case Roman,
        !           327: lower-case sequential alphabetic,
        !           328: or
        !           329: upper-case sequential alphabetic
        !           330: according to the format specified by \fBaf\fR.
        !           331: .h1
        !           332: .bt
        !           333: \fB&nr\fI|R|\(+-N|M\fR -       -       \fBu\fR \
        !           334: The number register \fIR\fR is assigned the value \fI\(+-N\fR
        !           335: with respect to the previous value, if any.
        !           336: The increment for auto-incrementing is set to \fIM\fR.
        !           337: .bt
        !           338: \fB&af\fI|R|c\fR       arabic  -       -       Assign format \fIc\fR to register \fIR\fR.
        !           339: The available formats are:
        !           340: .TS
        !           341: center box;
        !           342: c2|c
        !           343: c2|c
        !           344: c2|l.
        !           345:        Numbering
        !           346: Format Sequence
        !           347: _
        !           348: \fB1\fR        0,1,2,3,4,5,...
        !           349: \fB001\fR      000,001,002,003,004,005,...
        !           350: \fBi\fR        0,i,ii,iii,iv,v,...
        !           351: \fBI\fR        0,I,II,III,IV,V,...
        !           352: \fBa\fR        0,a,b,c,...,z,aa,ab,...,zz,aaa,...
        !           353: \fBA\fR        0,A,B,C,...,Z,AA,AB,...,ZZ,AAA,...
        !           354: .TE
        !           355: An arabic format having \fIN\fR digits
        !           356: specifies a field width of \fIN\fR digits (example 2 above).
        !           357: The read-only registers and the \fIwidth\fR function (\(sc11.2)
        !           358: are always arabic.
        !           359: .bt
        !           360: \fB&rr\fI|R\fR -       ignored -       Remove register \fIR\fR.
        !           361: If many registers are being created dynamically, it
        !           362: may become necessary to remove no longer used registers
        !           363: to recapture internal storage space for newer registers.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.