1*89a07cf8SchristosThis is groff, produced by makeinfo version 4.8 from ./groff.texinfo. 2*89a07cf8Schristos 3*89a07cf8Schristos This manual documents GNU `troff' version 1.19.2. 4*89a07cf8Schristos 5*89a07cf8Schristos Copyright (C) 1994-2000, 2001, 2002, 2003, 2004, 2005 Free Software 6*89a07cf8SchristosFoundation, Inc. 7*89a07cf8Schristos 8*89a07cf8Schristos Permission is granted to copy, distribute and/or modify this 9*89a07cf8Schristos document under the terms of the GNU Free Documentation License, 10*89a07cf8Schristos Version 1.1 or any later version published by the Free Software 11*89a07cf8Schristos Foundation; with no Invariant Sections, with the Front-Cover texts 12*89a07cf8Schristos being `A GNU Manual," and with the Back-Cover Texts as in (a) 13*89a07cf8Schristos below. A copy of the license is included in the section entitled 14*89a07cf8Schristos `GNU Free Documentation License." 15*89a07cf8Schristos 16*89a07cf8Schristos (a) The FSF's Back-Cover Text is: `You have freedom to copy and 17*89a07cf8Schristos modify this GNU Manual, like GNU software. Copies published by 18*89a07cf8Schristos the Free Software Foundation raise funds for GNU development." 19*89a07cf8Schristos 20*89a07cf8SchristosINFO-DIR-SECTION Typesetting 21*89a07cf8SchristosSTART-INFO-DIR-ENTRY 22*89a07cf8Schristos* Groff: (groff). The GNU troff document formatting system. 23*89a07cf8SchristosEND-INFO-DIR-ENTRY 24*89a07cf8Schristos 25*89a07cf8Schristos 26*89a07cf8SchristosFile: groff, Node: Drawing Requests, Next: Traps, Prev: Page Motions, Up: gtroff Reference 27*89a07cf8Schristos 28*89a07cf8Schristos5.23 Drawing Requests 29*89a07cf8Schristos===================== 30*89a07cf8Schristos 31*89a07cf8Schristos`gtroff' provides a number of ways to draw lines and other figures on 32*89a07cf8Schristosthe page. Used in combination with the page motion commands (see *Note 33*89a07cf8SchristosPage Motions::, for more info), a wide variety of figures can be drawn. 34*89a07cf8SchristosHowever, for complex drawings these operations can be quite 35*89a07cf8Schristoscumbersome, and it may be wise to use graphic preprocessors like `gpic' 36*89a07cf8Schristosor `ggrn'. *Note gpic::, and *Note ggrn::, for more information. 37*89a07cf8Schristos 38*89a07cf8Schristos All drawing is done via escapes. 39*89a07cf8Schristos 40*89a07cf8Schristos -- Escape: \l'l' 41*89a07cf8Schristos -- Escape: \l'lg' 42*89a07cf8Schristos Draw a line horizontally. L is the length of the line to be 43*89a07cf8Schristos drawn. If it is positive, start the line at the current location 44*89a07cf8Schristos and draw to the right; its end point is the new current location. 45*89a07cf8Schristos Negative values are handled differently: The line starts at the 46*89a07cf8Schristos current location and draws to the left, but the current location 47*89a07cf8Schristos doesn't move. 48*89a07cf8Schristos 49*89a07cf8Schristos L can also be specified absolutely (i.e. with a leading `|') which 50*89a07cf8Schristos draws back to the beginning of the input line. Default scaling 51*89a07cf8Schristos indicator is `m'. 52*89a07cf8Schristos 53*89a07cf8Schristos The optional second parameter G is a glyph to draw the line with. 54*89a07cf8Schristos If this second argument is not specified, `gtroff' uses the 55*89a07cf8Schristos underscore glyph, `\[ru]'. 56*89a07cf8Schristos 57*89a07cf8Schristos To separate the two arguments (to prevent `gtroff' from 58*89a07cf8Schristos interpreting a drawing glyph as a scaling indicator if the glyph is 59*89a07cf8Schristos represented by a single character) use `\&'. 60*89a07cf8Schristos 61*89a07cf8Schristos Here a small useful example: 62*89a07cf8Schristos 63*89a07cf8Schristos 64*89a07cf8Schristos .de box 65*89a07cf8Schristos \[br]\\$*\[br]\l'|0\[rn]'\l'|0\[ul]' 66*89a07cf8Schristos .. 67*89a07cf8Schristos 68*89a07cf8Schristos Note that this works by outputting a box rule (a vertical line), 69*89a07cf8Schristos then the text given as an argument and then another box rule. 70*89a07cf8Schristos Finally, the line drawing escapes both draw from the current 71*89a07cf8Schristos location to the beginning of the _input_ line - this works because 72*89a07cf8Schristos the line length is negative, not moving the current point. 73*89a07cf8Schristos 74*89a07cf8Schristos -- Escape: \L'l' 75*89a07cf8Schristos -- Escape: \L'lg' 76*89a07cf8Schristos Draw vertical lines. Its parameters are similar to the `\l' 77*89a07cf8Schristos escape, except that the default scaling indicator is `v'. The 78*89a07cf8Schristos movement is downwards for positive values, and upwards for 79*89a07cf8Schristos negative values. The default glyph is the box rule glyph, 80*89a07cf8Schristos `\[br]'. As with the vertical motion escapes, text processing 81*89a07cf8Schristos blindly continues where the line ends. 82*89a07cf8Schristos 83*89a07cf8Schristos 84*89a07cf8Schristos This is a \L'3v'test. 85*89a07cf8Schristos 86*89a07cf8Schristos Here the result, produced with `grotty'. 87*89a07cf8Schristos 88*89a07cf8Schristos 89*89a07cf8Schristos This is a 90*89a07cf8Schristos | 91*89a07cf8Schristos | 92*89a07cf8Schristos |test. 93*89a07cf8Schristos 94*89a07cf8Schristos 95*89a07cf8Schristos -- Escape: \D'command arg ...' 96*89a07cf8Schristos The `\D' escape provides a variety of drawing functions. Note 97*89a07cf8Schristos that on character devices, only vertical and horizontal lines are 98*89a07cf8Schristos supported within `grotty'; other devices may only support a subset 99*89a07cf8Schristos of the available drawing functions. 100*89a07cf8Schristos 101*89a07cf8Schristos The default scaling indicator for all subcommands of `\D' is `m' 102*89a07cf8Schristos for horizontal distances and `v' for vertical ones. Exceptions 103*89a07cf8Schristos are `\D'f ...'' and `\D't ...'' which use `u' as the default, and 104*89a07cf8Schristos `\D'FX ...'' which arguments are treated similar to the `defcolor' 105*89a07cf8Schristos request. 106*89a07cf8Schristos 107*89a07cf8Schristos `\D'l DX DY'' 108*89a07cf8Schristos Draw a line from the current location to the relative point 109*89a07cf8Schristos specified by (DX,DY), where positive values mean down and 110*89a07cf8Schristos right, respectively. The end point of the line is the new 111*89a07cf8Schristos current location. 112*89a07cf8Schristos 113*89a07cf8Schristos The following example is a macro for creating a box around a 114*89a07cf8Schristos text string; for simplicity, the box margin is taken as a 115*89a07cf8Schristos fixed value, 0.2m. 116*89a07cf8Schristos 117*89a07cf8Schristos 118*89a07cf8Schristos .de BOX 119*89a07cf8Schristos . nr @wd \w'\\$1' 120*89a07cf8Schristos \h'.2m'\ 121*89a07cf8Schristos \h'-.2m'\v'(.2m - \\n[rsb]u)'\ 122*89a07cf8Schristos \D'l 0 -(\\n[rst]u - \\n[rsb]u + .4m)'\ 123*89a07cf8Schristos \D'l (\\n[@wd]u + .4m) 0'\ 124*89a07cf8Schristos \D'l 0 (\\n[rst]u - \\n[rsb]u + .4m)'\ 125*89a07cf8Schristos \D'l -(\\n[@wd]u + .4m) 0'\ 126*89a07cf8Schristos \h'.2m'\v'-(.2m - \\n[rsb]u)'\ 127*89a07cf8Schristos \\$1\ 128*89a07cf8Schristos \h'.2m' 129*89a07cf8Schristos .. 130*89a07cf8Schristos 131*89a07cf8Schristos First, the width of the string is stored in register `@wd'. 132*89a07cf8Schristos Then, four lines are drawn to form a box, properly offset by 133*89a07cf8Schristos the box margin. The registers `rst' and `rsb' are set by the 134*89a07cf8Schristos `\w' escape, containing the largest height and depth of the 135*89a07cf8Schristos whole string. 136*89a07cf8Schristos 137*89a07cf8Schristos `\D'c D'' 138*89a07cf8Schristos Draw a circle with a diameter of D with the leftmost point at 139*89a07cf8Schristos the current position. After drawing, the current location is 140*89a07cf8Schristos positioned at the rightmost point of the circle. 141*89a07cf8Schristos 142*89a07cf8Schristos `\D'C D'' 143*89a07cf8Schristos Draw a solid circle with the same parameters and behaviour as 144*89a07cf8Schristos an outlined circle. No outline is drawn. 145*89a07cf8Schristos 146*89a07cf8Schristos `\D'e X Y'' 147*89a07cf8Schristos Draw an ellipse with a horizontal diameter of X and a vertical 148*89a07cf8Schristos diameter of Y with the leftmost point at the current position. 149*89a07cf8Schristos After drawing, the current location is positioned at the 150*89a07cf8Schristos rightmost point of the ellipse. 151*89a07cf8Schristos 152*89a07cf8Schristos `\D'E X Y'' 153*89a07cf8Schristos Draw a solid ellipse with the same parameters and behaviour 154*89a07cf8Schristos as an outlined ellipse. No outline is drawn. 155*89a07cf8Schristos 156*89a07cf8Schristos `\D'a DX1 DY1 DX2 DY2'' 157*89a07cf8Schristos Draw an arc clockwise from the current location through the 158*89a07cf8Schristos two specified relative locations (DX1,DY1) and (DX2,DY2). 159*89a07cf8Schristos The coordinates of the first point are relative to the 160*89a07cf8Schristos current position, and the coordinates of the second point are 161*89a07cf8Schristos relative to the first point. After drawing, the current 162*89a07cf8Schristos position is moved to the final point of the arc. 163*89a07cf8Schristos 164*89a07cf8Schristos `\D'~ DX1 DY1 DX2 DY2 ...'' 165*89a07cf8Schristos Draw a spline from the current location to the relative point 166*89a07cf8Schristos (DX1,DY1) and then to (DX2,DY2), and so on. The current 167*89a07cf8Schristos position is moved to the terminal point of the drawn curve. 168*89a07cf8Schristos 169*89a07cf8Schristos `\D'f N'' 170*89a07cf8Schristos Set the shade of gray to be used for filling solid objects 171*89a07cf8Schristos to N; N must be an integer between 0 and 1000, where 0 172*89a07cf8Schristos corresponds solid white and 1000 to solid black, and values 173*89a07cf8Schristos in between correspond to intermediate shades of gray. This 174*89a07cf8Schristos applies only to solid circles, solid ellipses, and solid 175*89a07cf8Schristos polygons. By default, a level of 1000 is used. 176*89a07cf8Schristos 177*89a07cf8Schristos Despite of being silly, the current point is moved 178*89a07cf8Schristos horizontally to the right by N. 179*89a07cf8Schristos 180*89a07cf8Schristos Don't use this command! It has the serious drawback that it 181*89a07cf8Schristos will be always rounded to the next integer multiple of the 182*89a07cf8Schristos horizontal resolution (the value of the `hor' keyword in the 183*89a07cf8Schristos `DESC' file). Use `\M' (*note Colors::) or `\D'Fg ...'' 184*89a07cf8Schristos instead. 185*89a07cf8Schristos 186*89a07cf8Schristos `\D'p DX1 DY1 DX2 DY2 ...'' 187*89a07cf8Schristos Draw a polygon from the current location to the relative 188*89a07cf8Schristos position (DX1,DY1) and then to (DX2,DY2) and so on. When the 189*89a07cf8Schristos specified data points are exhausted, a line is drawn back to 190*89a07cf8Schristos the starting point. The current position is changed by 191*89a07cf8Schristos adding the sum of all arguments with odd index to the actual 192*89a07cf8Schristos horizontal position and the even ones to the vertical 193*89a07cf8Schristos position. 194*89a07cf8Schristos 195*89a07cf8Schristos `\D'P DX1 DY1 DX2 DY2 ...'' 196*89a07cf8Schristos Draw a solid polygon with the same parameters and behaviour 197*89a07cf8Schristos as an outlined polygon. No outline is drawn. 198*89a07cf8Schristos 199*89a07cf8Schristos Here a better variant of the box macro to fill the box with 200*89a07cf8Schristos some color. Note that the box must be drawn before the text 201*89a07cf8Schristos since colors in `gtroff' are not transparent; the filled 202*89a07cf8Schristos polygon would hide the text completely. 203*89a07cf8Schristos 204*89a07cf8Schristos 205*89a07cf8Schristos .de BOX 206*89a07cf8Schristos . nr @wd \w'\\$1' 207*89a07cf8Schristos \h'.2m'\ 208*89a07cf8Schristos \h'-.2m'\v'(.2m - \\n[rsb]u)'\ 209*89a07cf8Schristos \M[lightcyan]\ 210*89a07cf8Schristos \D'P 0 -(\\n[rst]u - \\n[rsb]u + .4m) \ 211*89a07cf8Schristos (\\n[@wd]u + .4m) 0 \ 212*89a07cf8Schristos 0 (\\n[rst]u - \\n[rsb]u + .4m) \ 213*89a07cf8Schristos -(\\n[@wd]u + .4m) 0'\ 214*89a07cf8Schristos \h'.2m'\v'-(.2m - \\n[rsb]u)'\ 215*89a07cf8Schristos \M[]\ 216*89a07cf8Schristos \\$1\ 217*89a07cf8Schristos \h'.2m' 218*89a07cf8Schristos .. 219*89a07cf8Schristos 220*89a07cf8Schristos `\D't N'' 221*89a07cf8Schristos Set the current line thickness to N machine units. A value of 222*89a07cf8Schristos zero selects the smallest available line thickness. A 223*89a07cf8Schristos negative value makes the line thickness proportional to the 224*89a07cf8Schristos current point size (this is the default behaviour of AT&T 225*89a07cf8Schristos `troff'). 226*89a07cf8Schristos 227*89a07cf8Schristos Despite of being silly, the current point is moved 228*89a07cf8Schristos horizontally to the right by N. 229*89a07cf8Schristos 230*89a07cf8Schristos `\D'FSCHEME COLOR_COMPONENTS'' 231*89a07cf8Schristos Change current fill color. SCHEME is a single letter 232*89a07cf8Schristos denoting the color scheme: `r' (rgb), `c' (cmy), `k' (cmyk), 233*89a07cf8Schristos `g' (gray), or `d' (default color). The color components use 234*89a07cf8Schristos exactly the same syntax as in the `defcolor' request (*note 235*89a07cf8Schristos Colors::); the command `\D'Fd'' doesn't take an argument. 236*89a07cf8Schristos 237*89a07cf8Schristos _No_ position changing! 238*89a07cf8Schristos 239*89a07cf8Schristos Examples: 240*89a07cf8Schristos 241*89a07cf8Schristos 242*89a07cf8Schristos \D'Fg .3' \" same gray as \D'f 700' \D'Fr #0000ff' \" 243*89a07cf8Schristos blue 244*89a07cf8Schristos 245*89a07cf8Schristos *Note Graphics Commands::. 246*89a07cf8Schristos 247*89a07cf8Schristos -- Escape: \b'string' 248*89a07cf8Schristos "Pile" a sequence of glyphs vertically, and center it vertically 249*89a07cf8Schristos on the current line. Use it to build large brackets and braces. 250*89a07cf8Schristos 251*89a07cf8Schristos Here an example how to create a large opening brace: 252*89a07cf8Schristos 253*89a07cf8Schristos 254*89a07cf8Schristos \b'\[lt]\[bv]\[lk]\[bv]\[lb]' 255*89a07cf8Schristos 256*89a07cf8Schristos The first glyph is on the top, the last glyph in STRING is at the 257*89a07cf8Schristos bottom. Note that `gtroff' separates the glyphs vertically by 1m, 258*89a07cf8Schristos and the whole object is centered 0.5m above the current baseline; 259*89a07cf8Schristos the largest glyph width is used as the width for the whole object. 260*89a07cf8Schristos This rather unflexible positioning algorithm doesn't work with 261*89a07cf8Schristos `-Tdvi' since the bracket pieces vary in height for this device. 262*89a07cf8Schristos Instead, use the `eqn' preprocessor. 263*89a07cf8Schristos 264*89a07cf8Schristos *Note Manipulating Spacing::, how to adjust the vertical spacing 265*89a07cf8Schristos with the `\x' escape. 266*89a07cf8Schristos 267*89a07cf8Schristos 268*89a07cf8SchristosFile: groff, Node: Traps, Next: Diversions, Prev: Drawing Requests, Up: gtroff Reference 269*89a07cf8Schristos 270*89a07cf8Schristos5.24 Traps 271*89a07cf8Schristos========== 272*89a07cf8Schristos 273*89a07cf8Schristos"Traps" are locations, which, when reached, call a specified macro. 274*89a07cf8SchristosThese traps can occur at a given location on the page, at a given 275*89a07cf8Schristoslocation in the current diversion, at a blank line, after a certain 276*89a07cf8Schristosnumber of input lines, or at the end of input. 277*89a07cf8Schristos 278*89a07cf8Schristos Setting a trap is also called "planting". It is also said that a 279*89a07cf8Schristostrap is "sprung" if the associated macro is executed. 280*89a07cf8Schristos 281*89a07cf8Schristos* Menu: 282*89a07cf8Schristos 283*89a07cf8Schristos* Page Location Traps:: 284*89a07cf8Schristos* Diversion Traps:: 285*89a07cf8Schristos* Input Line Traps:: 286*89a07cf8Schristos* Blank Line Traps:: 287*89a07cf8Schristos* End-of-input Traps:: 288*89a07cf8Schristos 289*89a07cf8Schristos 290*89a07cf8SchristosFile: groff, Node: Page Location Traps, Next: Diversion Traps, Prev: Traps, Up: Traps 291*89a07cf8Schristos 292*89a07cf8Schristos5.24.1 Page Location Traps 293*89a07cf8Schristos-------------------------- 294*89a07cf8Schristos 295*89a07cf8Schristos"Page location traps" perform an action when `gtroff' reaches or passes 296*89a07cf8Schristosa certain vertical location on the page. Page location traps have a 297*89a07cf8Schristosvariety of purposes, including: 298*89a07cf8Schristos 299*89a07cf8Schristos * setting headers and footers 300*89a07cf8Schristos 301*89a07cf8Schristos * setting body text in multiple columns 302*89a07cf8Schristos 303*89a07cf8Schristos * setting footnotes 304*89a07cf8Schristos 305*89a07cf8Schristos -- Request: .vpt flag 306*89a07cf8Schristos -- Register: \n[.vpt] 307*89a07cf8Schristos Enable vertical position traps if FLAG is non-zero, or disables 308*89a07cf8Schristos them otherwise. Vertical position traps are traps set by the `wh' 309*89a07cf8Schristos or `dt' requests. Traps set by the `it' request are not vertical 310*89a07cf8Schristos position traps. The parameter that controls whether vertical 311*89a07cf8Schristos position traps are enabled is global. Initially vertical position 312*89a07cf8Schristos traps are enabled. The current setting of this is available in the 313*89a07cf8Schristos `.vpt' read-only number register. 314*89a07cf8Schristos 315*89a07cf8Schristos Note that a page can't be ejected if `vpt' is set to zero. 316*89a07cf8Schristos 317*89a07cf8Schristos -- Request: .wh dist [macro] 318*89a07cf8Schristos Set a page location trap. Non-negative values for DIST set the 319*89a07cf8Schristos trap relative to the top of the page; negative values set the trap 320*89a07cf8Schristos relative to the bottom of the page. Default scaling indicator is 321*89a07cf8Schristos `v'. 322*89a07cf8Schristos 323*89a07cf8Schristos MACRO is the name of the macro to execute when the trap is sprung. 324*89a07cf8Schristos If MACRO is missing, remove the first trap (if any) at DIST. 325*89a07cf8Schristos 326*89a07cf8Schristos The following is a simple example of how many macro packages set 327*89a07cf8Schristos headers and footers. 328*89a07cf8Schristos 329*89a07cf8Schristos 330*89a07cf8Schristos .de hd \" Page header 331*89a07cf8Schristos ' sp .5i 332*89a07cf8Schristos . tl 'Title''date' 333*89a07cf8Schristos ' sp .3i 334*89a07cf8Schristos .. 335*89a07cf8Schristos . 336*89a07cf8Schristos .de fo \" Page footer 337*89a07cf8Schristos ' sp 1v 338*89a07cf8Schristos . tl ''%'' 339*89a07cf8Schristos ' bp 340*89a07cf8Schristos .. 341*89a07cf8Schristos . 342*89a07cf8Schristos .wh 0 hd \" trap at top of the page 343*89a07cf8Schristos .wh -1i fo \" trap one inch from bottom 344*89a07cf8Schristos 345*89a07cf8Schristos A trap at or below the bottom of the page is ignored; it can be 346*89a07cf8Schristos made active by either moving it up or increasing the page length 347*89a07cf8Schristos so that the trap is on the page. 348*89a07cf8Schristos 349*89a07cf8Schristos It is possible to have more than one trap at the same location; to 350*89a07cf8Schristos do so, the traps must be defined at different locations, then 351*89a07cf8Schristos moved together with the `ch' request; otherwise the second trap 352*89a07cf8Schristos would replace the first one. Earlier defined traps hide later 353*89a07cf8Schristos defined traps if moved to the same position (the many empty lines 354*89a07cf8Schristos caused by the `bp' request are omitted in the following example): 355*89a07cf8Schristos 356*89a07cf8Schristos 357*89a07cf8Schristos .de a 358*89a07cf8Schristos . nop a 359*89a07cf8Schristos .. 360*89a07cf8Schristos .de b 361*89a07cf8Schristos . nop b 362*89a07cf8Schristos .. 363*89a07cf8Schristos .de c 364*89a07cf8Schristos . nop c 365*89a07cf8Schristos .. 366*89a07cf8Schristos . 367*89a07cf8Schristos .wh 1i a 368*89a07cf8Schristos .wh 2i b 369*89a07cf8Schristos .wh 3i c 370*89a07cf8Schristos .bp 371*89a07cf8Schristos => a b c 372*89a07cf8Schristos 373*89a07cf8Schristos 374*89a07cf8Schristos .ch b 1i 375*89a07cf8Schristos .ch c 1i 376*89a07cf8Schristos .bp 377*89a07cf8Schristos => a 378*89a07cf8Schristos 379*89a07cf8Schristos 380*89a07cf8Schristos .ch a 0.5i 381*89a07cf8Schristos .bp 382*89a07cf8Schristos => a b 383*89a07cf8Schristos 384*89a07cf8Schristos 385*89a07cf8Schristos -- Register: \n[.t] 386*89a07cf8Schristos A read-only number register holding the distance to the next trap. 387*89a07cf8Schristos 388*89a07cf8Schristos If there are no traps between the current position and the bottom 389*89a07cf8Schristos of the page, it contains the distance to the page bottom. In a 390*89a07cf8Schristos diversion, the distance to the page bottom is infinite (the 391*89a07cf8Schristos returned value is the biggest integer which can be represented in 392*89a07cf8Schristos `groff') if there are no diversion traps. 393*89a07cf8Schristos 394*89a07cf8Schristos -- Request: .ch macro [dist] 395*89a07cf8Schristos Change the location of a trap. The first argument is the name of 396*89a07cf8Schristos the macro to be invoked at the trap, and the second argument is 397*89a07cf8Schristos the new location for the trap (note that the parameters are 398*89a07cf8Schristos specified in opposite order as in the `wh' request). This is 399*89a07cf8Schristos useful for building up footnotes in a diversion to allow more 400*89a07cf8Schristos space at the bottom of the page for them. 401*89a07cf8Schristos 402*89a07cf8Schristos Default scaling indicator for DIST is `v'. If DIST is missing, 403*89a07cf8Schristos the trap is removed. 404*89a07cf8Schristos 405*89a07cf8Schristos 406*89a07cf8Schristos -- Register: \n[.ne] 407*89a07cf8Schristos The read-only number register `.ne' contains the amount of space 408*89a07cf8Schristos that was needed in the last `ne' request that caused a trap to be 409*89a07cf8Schristos sprung. Useful in conjunction with the `.trunc' register. *Note 410*89a07cf8Schristos Page Control::, for more information. 411*89a07cf8Schristos 412*89a07cf8Schristos Since the `.ne' register is only set by traps it doesn't make much 413*89a07cf8Schristos sense to use it outside of trap macros. 414*89a07cf8Schristos 415*89a07cf8Schristos -- Register: \n[.trunc] 416*89a07cf8Schristos A read-only register containing the amount of vertical space 417*89a07cf8Schristos truncated by the most recently sprung vertical position trap, or, 418*89a07cf8Schristos if the trap was sprung by an `ne' request, minus the amount of 419*89a07cf8Schristos vertical motion produced by the `ne' request. In other words, at 420*89a07cf8Schristos the point a trap is sprung, it represents the difference of what 421*89a07cf8Schristos the vertical position would have been but for the trap, and what 422*89a07cf8Schristos the vertical position actually is. 423*89a07cf8Schristos 424*89a07cf8Schristos Since the `.trunc' register is only set by traps it doesn't make 425*89a07cf8Schristos much sense to use it outside of trap macros. 426*89a07cf8Schristos 427*89a07cf8Schristos -- Register: \n[.pe] 428*89a07cf8Schristos A read-only register which is set to 1 while a page is ejected with 429*89a07cf8Schristos the `bp' request (or by the end of input). 430*89a07cf8Schristos 431*89a07cf8Schristos Outside of traps this register is always zero. In the following 432*89a07cf8Schristos example, only the second call to `x' is caused by `bp'. 433*89a07cf8Schristos 434*89a07cf8Schristos 435*89a07cf8Schristos .de x 436*89a07cf8Schristos \&.pe=\\n[.pe] 437*89a07cf8Schristos .br 438*89a07cf8Schristos .. 439*89a07cf8Schristos .wh 1v x 440*89a07cf8Schristos .wh 4v x 441*89a07cf8Schristos A line. 442*89a07cf8Schristos .br 443*89a07cf8Schristos Another line. 444*89a07cf8Schristos .br 445*89a07cf8Schristos => A line. 446*89a07cf8Schristos .pe=0 447*89a07cf8Schristos Another line. 448*89a07cf8Schristos 449*89a07cf8Schristos .pe=1 450*89a07cf8Schristos 451*89a07cf8Schristos 452*89a07cf8Schristos An important fact to consider while designing macros is that 453*89a07cf8Schristosdiversions and traps do not interact normally. For example, if a trap 454*89a07cf8Schristosinvokes a header macro (while outputting a diversion) which tries to 455*89a07cf8Schristoschange the font on the current page, the effect will not be visible 456*89a07cf8Schristosbefore the diversion has completely been printed (except for input 457*89a07cf8Schristosprotected with `\!' or `\?') since the data in the diversion is already 458*89a07cf8Schristosformatted. In most cases, this is not the expected behaviour. 459*89a07cf8Schristos 460*89a07cf8Schristos 461*89a07cf8SchristosFile: groff, Node: Diversion Traps, Next: Input Line Traps, Prev: Page Location Traps, Up: Traps 462*89a07cf8Schristos 463*89a07cf8Schristos5.24.2 Diversion Traps 464*89a07cf8Schristos---------------------- 465*89a07cf8Schristos 466*89a07cf8Schristos -- Request: .dt [dist macro] 467*89a07cf8Schristos Set a trap _within_ a diversion. DIST is the location of the trap 468*89a07cf8Schristos (identical to the `wh' request; default scaling indicator is `v') 469*89a07cf8Schristos and MACRO is the name of the macro to be invoked. If called 470*89a07cf8Schristos without arguments, the diversion trap is removed. 471*89a07cf8Schristos 472*89a07cf8Schristos Note that there exists only a single diversion trap. 473*89a07cf8Schristos 474*89a07cf8Schristos The number register `.t' still works within diversions. *Note 475*89a07cf8Schristos Diversions::, for more information. 476*89a07cf8Schristos 477*89a07cf8Schristos 478*89a07cf8SchristosFile: groff, Node: Input Line Traps, Next: Blank Line Traps, Prev: Diversion Traps, Up: Traps 479*89a07cf8Schristos 480*89a07cf8Schristos5.24.3 Input Line Traps 481*89a07cf8Schristos----------------------- 482*89a07cf8Schristos 483*89a07cf8Schristos -- Request: .it n macro 484*89a07cf8Schristos -- Request: .itc n macro 485*89a07cf8Schristos Set an input line trap. N is the number of lines of input which 486*89a07cf8Schristos may be read before springing the trap, MACRO is the macro to be 487*89a07cf8Schristos invoked. Request lines are not counted as input lines. 488*89a07cf8Schristos 489*89a07cf8Schristos For example, one possible use is to have a macro which prints the 490*89a07cf8Schristos next N lines in a bold font. 491*89a07cf8Schristos 492*89a07cf8Schristos 493*89a07cf8Schristos .de B 494*89a07cf8Schristos . it \\$1 B-end 495*89a07cf8Schristos . ft B 496*89a07cf8Schristos .. 497*89a07cf8Schristos . 498*89a07cf8Schristos .de B-end 499*89a07cf8Schristos . ft R 500*89a07cf8Schristos .. 501*89a07cf8Schristos 502*89a07cf8Schristos The `itc' request is identical except that an interrupted text 503*89a07cf8Schristos line (ending with `\c') is not counted as a separate line. 504*89a07cf8Schristos 505*89a07cf8Schristos Both requests are associated with the current environment (*note 506*89a07cf8Schristos Environments::); switching to another environment disables the 507*89a07cf8Schristos current input trap, and going back reactivates it, restoring the 508*89a07cf8Schristos number of already processed lines. 509*89a07cf8Schristos 510*89a07cf8Schristos 511*89a07cf8SchristosFile: groff, Node: Blank Line Traps, Next: End-of-input Traps, Prev: Input Line Traps, Up: Traps 512*89a07cf8Schristos 513*89a07cf8Schristos5.24.4 Blank Line Traps 514*89a07cf8Schristos----------------------- 515*89a07cf8Schristos 516*89a07cf8Schristos -- Request: .blm macro 517*89a07cf8Schristos Set a blank line trap. `gtroff' executes MACRO when it encounters 518*89a07cf8Schristos a blank line in the input file. 519*89a07cf8Schristos 520*89a07cf8Schristos 521*89a07cf8SchristosFile: groff, Node: End-of-input Traps, Prev: Blank Line Traps, Up: Traps 522*89a07cf8Schristos 523*89a07cf8Schristos5.24.5 End-of-input Traps 524*89a07cf8Schristos------------------------- 525*89a07cf8Schristos 526*89a07cf8Schristos -- Request: .em macro 527*89a07cf8Schristos Set a trap at the end of input. MACRO is executed after the last 528*89a07cf8Schristos line of the input file has been processed. 529*89a07cf8Schristos 530*89a07cf8Schristos For example, if the document had to have a section at the bottom 531*89a07cf8Schristos of the last page for someone to approve it, the `em' request could 532*89a07cf8Schristos be used. 533*89a07cf8Schristos 534*89a07cf8Schristos 535*89a07cf8Schristos .de approval 536*89a07cf8Schristos . ne 5v 537*89a07cf8Schristos . sp |(\\n[.t] - 6v) 538*89a07cf8Schristos . in +4i 539*89a07cf8Schristos . lc _ 540*89a07cf8Schristos . br 541*89a07cf8Schristos Approved:\t\a 542*89a07cf8Schristos . sp 543*89a07cf8Schristos Date:\t\t\a 544*89a07cf8Schristos .. 545*89a07cf8Schristos . 546*89a07cf8Schristos .em approval 547*89a07cf8Schristos 548*89a07cf8Schristos 549*89a07cf8Schristos 550*89a07cf8SchristosFile: groff, Node: Diversions, Next: Environments, Prev: Traps, Up: gtroff Reference 551*89a07cf8Schristos 552*89a07cf8Schristos5.25 Diversions 553*89a07cf8Schristos=============== 554*89a07cf8Schristos 555*89a07cf8SchristosIn `gtroff' it is possible to "divert" text into a named storage area. 556*89a07cf8SchristosDue to the similarity to defining macros it is sometimes said to be 557*89a07cf8Schristosstored in a macro. This is used for saving text for output at a later 558*89a07cf8Schristostime, which is useful for keeping blocks of text on the same page, 559*89a07cf8Schristosfootnotes, tables of contents, and indices. 560*89a07cf8Schristos 561*89a07cf8Schristos For orthogonality it is said that `gtroff' is in the "top-level 562*89a07cf8Schristosdiversion" if no diversion is active (i.e., the data is diverted to the 563*89a07cf8Schristosoutput device). 564*89a07cf8Schristos 565*89a07cf8Schristos -- Request: .di macro 566*89a07cf8Schristos -- Request: .da macro 567*89a07cf8Schristos Begin a diversion. Like the `de' request, it takes an argument of 568*89a07cf8Schristos a macro name to divert subsequent text into. The `da' macro 569*89a07cf8Schristos appends to an existing diversion. 570*89a07cf8Schristos 571*89a07cf8Schristos `di' or `da' without an argument ends the diversion. 572*89a07cf8Schristos 573*89a07cf8Schristos -- Request: .box macro 574*89a07cf8Schristos -- Request: .boxa macro 575*89a07cf8Schristos Begin (or appends to) a diversion like the `di' and `da' requests. 576*89a07cf8Schristos The difference is that `box' and `boxa' do not include a 577*89a07cf8Schristos partially-filled line in the diversion. 578*89a07cf8Schristos 579*89a07cf8Schristos Compare this: 580*89a07cf8Schristos 581*89a07cf8Schristos 582*89a07cf8Schristos Before the box. 583*89a07cf8Schristos .box xxx 584*89a07cf8Schristos In the box. 585*89a07cf8Schristos .br 586*89a07cf8Schristos .box 587*89a07cf8Schristos After the box. 588*89a07cf8Schristos .br 589*89a07cf8Schristos => Before the box. After the box. 590*89a07cf8Schristos .xxx 591*89a07cf8Schristos => In the box. 592*89a07cf8Schristos 593*89a07cf8Schristos with this: 594*89a07cf8Schristos 595*89a07cf8Schristos 596*89a07cf8Schristos Before the diversion. 597*89a07cf8Schristos .di yyy 598*89a07cf8Schristos In the diversion. 599*89a07cf8Schristos .br 600*89a07cf8Schristos .di 601*89a07cf8Schristos After the diversion. 602*89a07cf8Schristos .br 603*89a07cf8Schristos => After the diversion. 604*89a07cf8Schristos .yyy 605*89a07cf8Schristos => Before the diversion. In the diversion. 606*89a07cf8Schristos 607*89a07cf8Schristos `box' or `boxa' without an argument ends the diversion. 608*89a07cf8Schristos 609*89a07cf8Schristos -- Register: \n[.z] 610*89a07cf8Schristos -- Register: \n[.d] 611*89a07cf8Schristos Diversions may be nested. The read-only number register `.z' 612*89a07cf8Schristos contains the name of the current diversion (this is a string-valued 613*89a07cf8Schristos register). The read-only number register `.d' contains the current 614*89a07cf8Schristos vertical place in the diversion. If not in a diversion it is the 615*89a07cf8Schristos same as register `nl'. 616*89a07cf8Schristos 617*89a07cf8Schristos -- Register: \n[.h] 618*89a07cf8Schristos The "high-water mark" on the current page. It corresponds to the 619*89a07cf8Schristos text baseline of the lowest line on the page. This is a read-only 620*89a07cf8Schristos register. 621*89a07cf8Schristos 622*89a07cf8Schristos 623*89a07cf8Schristos .tm .h==\n[.h], nl==\n[nl] 624*89a07cf8Schristos => .h==0, nl==-1 625*89a07cf8Schristos This is a test. 626*89a07cf8Schristos .br 627*89a07cf8Schristos .sp 2 628*89a07cf8Schristos .tm .h==\n[.h], nl==\n[nl] 629*89a07cf8Schristos => .h==40, nl==120 630*89a07cf8Schristos 631*89a07cf8Schristos As can be seen in the previous example, empty lines are not 632*89a07cf8Schristos considered in the return value of the `.h' register. 633*89a07cf8Schristos 634*89a07cf8Schristos -- Register: \n[dn] 635*89a07cf8Schristos -- Register: \n[dl] 636*89a07cf8Schristos After completing a diversion, the read-write number registers `dn' 637*89a07cf8Schristos and `dl' contain the vertical and horizontal size of the diversion. 638*89a07cf8Schristos Note that only the just processed lines are counted: For the 639*89a07cf8Schristos computation of `dn' and `dl', the requests `da' and `boxa' are 640*89a07cf8Schristos handled as if `di' and `box' had been used - lines which have been 641*89a07cf8Schristos already stored in a macro are not taken into account. 642*89a07cf8Schristos 643*89a07cf8Schristos 644*89a07cf8Schristos .\" Center text both horizontally & vertically 645*89a07cf8Schristos . 646*89a07cf8Schristos .\" Enclose macro definitions in .eo and .ec 647*89a07cf8Schristos .\" to avoid the doubling of the backslash 648*89a07cf8Schristos .eo 649*89a07cf8Schristos .\" macro .(c starts centering mode 650*89a07cf8Schristos .de (c 651*89a07cf8Schristos . br 652*89a07cf8Schristos . ev (c 653*89a07cf8Schristos . evc 0 654*89a07cf8Schristos . in 0 655*89a07cf8Schristos . nf 656*89a07cf8Schristos . di @c 657*89a07cf8Schristos .. 658*89a07cf8Schristos 659*89a07cf8Schristos 660*89a07cf8Schristos .\" macro .)c terminates centering mode 661*89a07cf8Schristos .de )c 662*89a07cf8Schristos . br 663*89a07cf8Schristos . ev 664*89a07cf8Schristos . di 665*89a07cf8Schristos . nr @s (((\n[.t]u - \n[dn]u) / 2u) - 1v) 666*89a07cf8Schristos . sp \n[@s]u 667*89a07cf8Schristos . ce 1000 668*89a07cf8Schristos . @c 669*89a07cf8Schristos . ce 0 670*89a07cf8Schristos . sp \n[@s]u 671*89a07cf8Schristos . br 672*89a07cf8Schristos . fi 673*89a07cf8Schristos . rr @s 674*89a07cf8Schristos . rm @s 675*89a07cf8Schristos . rm @c 676*89a07cf8Schristos .. 677*89a07cf8Schristos .\" End of macro definitions, restore escape mechanism 678*89a07cf8Schristos .ec 679*89a07cf8Schristos 680*89a07cf8Schristos 681*89a07cf8Schristos -- Escape: \! 682*89a07cf8Schristos -- Escape: \?anything\? 683*89a07cf8Schristos Prevent requests, macros, and escapes from being interpreted when 684*89a07cf8Schristos read into a diversion. Both escapes take the given text and 685*89a07cf8Schristos "transparently" embed it into the diversion. This is useful for 686*89a07cf8Schristos macros which shouldn't be invoked until the diverted text is 687*89a07cf8Schristos actually output. 688*89a07cf8Schristos 689*89a07cf8Schristos The `\!' escape transparently embeds text up to and including the 690*89a07cf8Schristos end of the line. The `\?' escape transparently embeds text until 691*89a07cf8Schristos the next occurrence of the `\?' escape. Example: 692*89a07cf8Schristos 693*89a07cf8Schristos 694*89a07cf8Schristos \?ANYTHING\? 695*89a07cf8Schristos 696*89a07cf8Schristos ANYTHING may not contain newlines; use `\!' to embed newlines in 697*89a07cf8Schristos a diversion. The escape sequence `\?' is also recognized in copy 698*89a07cf8Schristos mode and turned into a single internal code; it is this code that 699*89a07cf8Schristos terminates ANYTHING. Thus the following example prints 4. 700*89a07cf8Schristos 701*89a07cf8Schristos 702*89a07cf8Schristos .nr x 1 703*89a07cf8Schristos .nf 704*89a07cf8Schristos .di d 705*89a07cf8Schristos \?\\?\\\\?\\\\\\\\nx\\\\?\\?\? 706*89a07cf8Schristos .di 707*89a07cf8Schristos .nr x 2 708*89a07cf8Schristos .di e 709*89a07cf8Schristos .d 710*89a07cf8Schristos .di 711*89a07cf8Schristos .nr x 3 712*89a07cf8Schristos .di f 713*89a07cf8Schristos .e 714*89a07cf8Schristos .di 715*89a07cf8Schristos .nr x 4 716*89a07cf8Schristos .f 717*89a07cf8Schristos 718*89a07cf8Schristos Both escapes read the data in copy mode. 719*89a07cf8Schristos 720*89a07cf8Schristos If `\!' is used in the top-level diversion, its argument is 721*89a07cf8Schristos directly embedded into the `gtroff' intermediate output. This can 722*89a07cf8Schristos be used for example to control a postprocessor which processes the 723*89a07cf8Schristos data before it is sent to the device driver. 724*89a07cf8Schristos 725*89a07cf8Schristos The `\?' escape used in the top-level diversion produces no output 726*89a07cf8Schristos at all; its argument is simply ignored. 727*89a07cf8Schristos 728*89a07cf8Schristos -- Request: .output string 729*89a07cf8Schristos Emit STRING directly to the `gtroff' intermediate output (subject 730*89a07cf8Schristos to copy-mode interpretation); this is similar to `\!' used at the 731*89a07cf8Schristos top level. An initial double quote in STRING is stripped off to 732*89a07cf8Schristos allow initial blanks. 733*89a07cf8Schristos 734*89a07cf8Schristos This request can't be used before the first page has started - if 735*89a07cf8Schristos you get an error, simply insert `.br' before the `output' request. 736*89a07cf8Schristos 737*89a07cf8Schristos Without argument, `output' is ignored. 738*89a07cf8Schristos 739*89a07cf8Schristos Use with caution! It is normally only needed for mark-up used by a 740*89a07cf8Schristos postprocessor which does something with the output before sending 741*89a07cf8Schristos it to the output device, filtering out STRING again. 742*89a07cf8Schristos 743*89a07cf8Schristos -- Request: .asciify div 744*89a07cf8Schristos "Unformat" the diversion specified by DIV in such a way that ASCII 745*89a07cf8Schristos characters, characters translated with the `trin' request, space 746*89a07cf8Schristos characters, and some escape sequences that were formatted and 747*89a07cf8Schristos diverted are treated like ordinary input characters when the 748*89a07cf8Schristos diversion is reread. It can be also used for gross hacks; for 749*89a07cf8Schristos example, the following sets register `n' to 1. 750*89a07cf8Schristos 751*89a07cf8Schristos 752*89a07cf8Schristos .tr @. 753*89a07cf8Schristos .di x 754*89a07cf8Schristos @nr n 1 755*89a07cf8Schristos .br 756*89a07cf8Schristos .di 757*89a07cf8Schristos .tr @@ 758*89a07cf8Schristos .asciify x 759*89a07cf8Schristos .x 760*89a07cf8Schristos 761*89a07cf8Schristos *Note Copy-in Mode::. 762*89a07cf8Schristos 763*89a07cf8Schristos -- Request: .unformat div 764*89a07cf8Schristos Like `asciify', unformat the specified diversion. However, 765*89a07cf8Schristos `unformat' only unformats spaces and tabs between words. 766*89a07cf8Schristos Unformatted tabs are treated as input tokens, and spaces are 767*89a07cf8Schristos stretchable again. 768*89a07cf8Schristos 769*89a07cf8Schristos The vertical size of lines is not preserved; glyph information 770*89a07cf8Schristos (font, font size, space width, etc.) is retained. 771*89a07cf8Schristos 772*89a07cf8Schristos 773*89a07cf8SchristosFile: groff, Node: Environments, Next: Suppressing output, Prev: Diversions, Up: gtroff Reference 774*89a07cf8Schristos 775*89a07cf8Schristos5.26 Environments 776*89a07cf8Schristos================= 777*89a07cf8Schristos 778*89a07cf8SchristosIt happens frequently that some text should be printed in a certain 779*89a07cf8Schristosformat regardless of what may be in effect at the time, for example, in 780*89a07cf8Schristosa trap invoked macro to print headers and footers. To solve this 781*89a07cf8Schristos`gtroff' processes text in "environments". An environment contains 782*89a07cf8Schristosmost of the parameters that control text processing. It is possible to 783*89a07cf8Schristosswitch amongst these environments; by default `gtroff' processes text 784*89a07cf8Schristosin environment 0. The following is the information kept in an 785*89a07cf8Schristosenvironment. 786*89a07cf8Schristos 787*89a07cf8Schristos * font parameters (size, family, style, glyph height and slant, space 788*89a07cf8Schristos and sentence space size) 789*89a07cf8Schristos 790*89a07cf8Schristos * page parameters (line length, title length, vertical spacing, line 791*89a07cf8Schristos spacing, indentation, line numbering, centering, right-justifying, 792*89a07cf8Schristos underlining, hyphenation data) 793*89a07cf8Schristos 794*89a07cf8Schristos * fill and adjust mode 795*89a07cf8Schristos 796*89a07cf8Schristos * tab stops, tab and leader characters, escape character, no-break 797*89a07cf8Schristos and hyphen indicators, margin character data 798*89a07cf8Schristos 799*89a07cf8Schristos * partially collected lines 800*89a07cf8Schristos 801*89a07cf8Schristos * input traps 802*89a07cf8Schristos 803*89a07cf8Schristos * drawing and fill colours 804*89a07cf8Schristos 805*89a07cf8Schristos These environments may be given arbitrary names (see *Note 806*89a07cf8SchristosIdentifiers::, for more info). Old versions of `troff' only had 807*89a07cf8Schristosenvironments named `0', `1', and `2'. 808*89a07cf8Schristos 809*89a07cf8Schristos -- Request: .ev [env] 810*89a07cf8Schristos -- Register: \n[.ev] 811*89a07cf8Schristos Switch to another environment. The argument ENV is the name of 812*89a07cf8Schristos the environment to switch to. With no argument, `gtroff' switches 813*89a07cf8Schristos back to the previous environment. There is no limit on the number 814*89a07cf8Schristos of named environments; they are created the first time that they 815*89a07cf8Schristos are referenced. The `.ev' read-only register contains the name or 816*89a07cf8Schristos number of the current environment. This is a string-valued 817*89a07cf8Schristos register. 818*89a07cf8Schristos 819*89a07cf8Schristos Note that a call to `ev' (with argument) pushes the previously 820*89a07cf8Schristos active environment onto a stack. If, say, environments `foo', 821*89a07cf8Schristos `bar', and `zap' are called (in that order), the first `ev' 822*89a07cf8Schristos request without parameter switches back to environment `bar' 823*89a07cf8Schristos (which is popped off the stack), and a second call switches back 824*89a07cf8Schristos to environment `foo'. 825*89a07cf8Schristos 826*89a07cf8Schristos Here is an example: 827*89a07cf8Schristos 828*89a07cf8Schristos 829*89a07cf8Schristos .ev footnote-env 830*89a07cf8Schristos .fam N 831*89a07cf8Schristos .ps 6 832*89a07cf8Schristos .vs 8 833*89a07cf8Schristos .ll -.5i 834*89a07cf8Schristos .ev 835*89a07cf8Schristos 836*89a07cf8Schristos ... 837*89a07cf8Schristos 838*89a07cf8Schristos .ev footnote-env 839*89a07cf8Schristos \(dg Note the large, friendly letters. 840*89a07cf8Schristos .ev 841*89a07cf8Schristos 842*89a07cf8Schristos 843*89a07cf8Schristos -- Request: .evc env 844*89a07cf8Schristos Copy the environment ENV into the current environment. 845*89a07cf8Schristos 846*89a07cf8Schristos The following environment data is not copied: 847*89a07cf8Schristos 848*89a07cf8Schristos * Partially filled lines. 849*89a07cf8Schristos 850*89a07cf8Schristos * The status whether the previous line was interrupted. 851*89a07cf8Schristos 852*89a07cf8Schristos * The number of lines still to center, or to right-justify, or 853*89a07cf8Schristos to underline (with or without underlined spaces); they are 854*89a07cf8Schristos set to zero. 855*89a07cf8Schristos 856*89a07cf8Schristos * The status whether a temporary indentation is active. 857*89a07cf8Schristos 858*89a07cf8Schristos * Input traps and its associated data. 859*89a07cf8Schristos 860*89a07cf8Schristos * Line numbering mode is disabled; it can be reactivated with 861*89a07cf8Schristos `.nm +0'. 862*89a07cf8Schristos 863*89a07cf8Schristos * The number of consecutive hyphenated lines (set to zero). 864*89a07cf8Schristos 865*89a07cf8Schristos -- Register: \n[.w] 866*89a07cf8Schristos -- Register: \n[.cht] 867*89a07cf8Schristos -- Register: \n[.cdp] 868*89a07cf8Schristos -- Register: \n[.csk] 869*89a07cf8Schristos The `\n[.w]' register contains the width of the last glyph added 870*89a07cf8Schristos to the current environment. 871*89a07cf8Schristos 872*89a07cf8Schristos The `\n[.cht]' register contains the height of the last glyph 873*89a07cf8Schristos added to the current environment. 874*89a07cf8Schristos 875*89a07cf8Schristos The `\n[.cdp]' register contains the depth of the last glyph added 876*89a07cf8Schristos to the current environment. It is positive for glyphs extending 877*89a07cf8Schristos below the baseline. 878*89a07cf8Schristos 879*89a07cf8Schristos The `\n[.csk]' register contains the "skew" (how far to the right 880*89a07cf8Schristos of the glyph's center that `gtroff' should place an accent) of the 881*89a07cf8Schristos last glyph added to the current environment. 882*89a07cf8Schristos 883*89a07cf8Schristos -- Register: \n[.n] 884*89a07cf8Schristos The `\n[.n]' register contains the length of the previous output 885*89a07cf8Schristos line in the current environment. 886*89a07cf8Schristos 887*89a07cf8Schristos 888*89a07cf8SchristosFile: groff, Node: Suppressing output, Next: Colors, Prev: Environments, Up: gtroff Reference 889*89a07cf8Schristos 890*89a07cf8Schristos5.27 Suppressing output 891*89a07cf8Schristos======================= 892*89a07cf8Schristos 893*89a07cf8Schristos -- Escape: \Onum 894*89a07cf8Schristos Disable or enable output depending on the value of NUM: 895*89a07cf8Schristos 896*89a07cf8Schristos `\O0' 897*89a07cf8Schristos Disable any glyphs from being emitted to the device driver, 898*89a07cf8Schristos provided that the escape occurs at the outer level (see 899*89a07cf8Schristos `\O[3]' and `\O[4]'). Motion is not suppressed so 900*89a07cf8Schristos effectively `\O[0]' means _pen up_. 901*89a07cf8Schristos 902*89a07cf8Schristos `\O1' 903*89a07cf8Schristos Enable output of glyphs, provided that the escape occurs at 904*89a07cf8Schristos the outer level. 905*89a07cf8Schristos 906*89a07cf8Schristos `\O0' and `\O1' also reset the four registers `opminx', `opminy', 907*89a07cf8Schristos `opmaxx', and `opmaxy' to -1. *Note Register Index::. These four 908*89a07cf8Schristos registers mark the top left and bottom right hand corners of a box 909*89a07cf8Schristos which encompasses all written glyphs. 910*89a07cf8Schristos 911*89a07cf8Schristos For example the input text: 912*89a07cf8Schristos 913*89a07cf8Schristos 914*89a07cf8Schristos Hello \O[0]world \O[1]this is a test. 915*89a07cf8Schristos 916*89a07cf8Schristos produces the following output: 917*89a07cf8Schristos 918*89a07cf8Schristos 919*89a07cf8Schristos Hello this is a test. 920*89a07cf8Schristos 921*89a07cf8Schristos `\O2' 922*89a07cf8Schristos Provided that the escape occurs at the outer level, enable 923*89a07cf8Schristos output of glyphs and also write out to `stderr' the page 924*89a07cf8Schristos number and four registers encompassing the glyphs previously 925*89a07cf8Schristos written since the last call to `\O'. 926*89a07cf8Schristos 927*89a07cf8Schristos `\O3' 928*89a07cf8Schristos Begin a nesting level. At start-up, `gtroff' is at outer 929*89a07cf8Schristos level. 930*89a07cf8Schristos 931*89a07cf8Schristos `\O4' 932*89a07cf8Schristos End a nesting level. 933*89a07cf8Schristos 934*89a07cf8Schristos `\O[5PFILENAME]' 935*89a07cf8Schristos This escape is `grohtml' specific. Provided that this escape 936*89a07cf8Schristos occurs at the outer nesting level write the `filename' to 937*89a07cf8Schristos `stderr'. The position of the image, P, must be specified 938*89a07cf8Schristos and must be one of `l', `r', `c', or `i' (left, right, 939*89a07cf8Schristos centered, inline). FILENAME will be associated with the 940*89a07cf8Schristos production of the next inline image. 941*89a07cf8Schristos 942*89a07cf8Schristos 943*89a07cf8SchristosFile: groff, Node: Colors, Next: I/O, Prev: Suppressing output, Up: gtroff Reference 944*89a07cf8Schristos 945*89a07cf8Schristos5.28 Colors 946*89a07cf8Schristos=========== 947*89a07cf8Schristos 948*89a07cf8Schristos -- Request: .color [n] 949*89a07cf8Schristos -- Register: \n[.color] 950*89a07cf8Schristos If N is missing or non-zero, activate colors (this is the default); 951*89a07cf8Schristos otherwise, turn it off. 952*89a07cf8Schristos 953*89a07cf8Schristos The read-only number register `.color' is 1 if colors are active, 954*89a07cf8Schristos 0 otherwise. 955*89a07cf8Schristos 956*89a07cf8Schristos Internally, `color' sets a global flag; it does not produce a 957*89a07cf8Schristos token. Similar to the `cp' request, you should use it at the 958*89a07cf8Schristos beginning of your document to control color output. 959*89a07cf8Schristos 960*89a07cf8Schristos Colors can be also turned off with the `-c' command line option. 961*89a07cf8Schristos 962*89a07cf8Schristos -- Request: .defcolor ident scheme color_components 963*89a07cf8Schristos Define color with name IDENT. SCHEME can be one of the following 964*89a07cf8Schristos values: `rgb' (three components), `cmy' (three components), `cmyk' 965*89a07cf8Schristos (four components), and `gray' or `grey' (one component). 966*89a07cf8Schristos 967*89a07cf8Schristos Color components can be given either as a hexadecimal string or as 968*89a07cf8Schristos positive decimal integers in the range 0-65535. A hexadecimal 969*89a07cf8Schristos string contains all color components concatenated. It must start 970*89a07cf8Schristos with either `#' or `##'; the former specifies hex values in the 971*89a07cf8Schristos range 0-255 (which are internally multiplied by 257), the latter 972*89a07cf8Schristos in the range 0-65535. Examples: `#FFC0CB' (pink), `##ffff0000ffff' 973*89a07cf8Schristos (magenta). The default color name value is device-specific 974*89a07cf8Schristos (usually black). It is possible that the default color for `\m' 975*89a07cf8Schristos and `\M' is not identical. 976*89a07cf8Schristos 977*89a07cf8Schristos A new scaling indicator `f' has been introduced which multiplies 978*89a07cf8Schristos its value by 65536; this makes it convenient to specify color 979*89a07cf8Schristos components as fractions in the range 0 to 1 (1f equals 65536u). 980*89a07cf8Schristos Example: 981*89a07cf8Schristos 982*89a07cf8Schristos 983*89a07cf8Schristos .defcolor darkgreen rgb 0.1f 0.5f 0.2f 984*89a07cf8Schristos 985*89a07cf8Schristos Note that `f' is the default scaling indicator for the `defcolor' 986*89a07cf8Schristos request, thus the above statement is equivalent to 987*89a07cf8Schristos 988*89a07cf8Schristos 989*89a07cf8Schristos .defcolor darkgreen rgb 0.1 0.5 0.2 990*89a07cf8Schristos 991*89a07cf8Schristos 992*89a07cf8Schristos -- Request: .gcolor [color] 993*89a07cf8Schristos -- Escape: \mc 994*89a07cf8Schristos -- Escape: \m(co 995*89a07cf8Schristos -- Escape: \m[color] 996*89a07cf8Schristos -- Register: \n[.m] 997*89a07cf8Schristos Set (glyph) drawing color. The following examples show how to 998*89a07cf8Schristos turn the next four words red. 999*89a07cf8Schristos 1000*89a07cf8Schristos 1001*89a07cf8Schristos .gcolor red 1002*89a07cf8Schristos these are in red 1003*89a07cf8Schristos .gcolor 1004*89a07cf8Schristos and these words are in black. 1005*89a07cf8Schristos 1006*89a07cf8Schristos 1007*89a07cf8Schristos \m[red]these are in red\m[] and these words are in black. 1008*89a07cf8Schristos 1009*89a07cf8Schristos The escape `\m[]' returns to the previous color, as does a call to 1010*89a07cf8Schristos `gcolor' without an argument. 1011*89a07cf8Schristos 1012*89a07cf8Schristos The name of the current drawing color is available in the 1013*89a07cf8Schristos read-only, string-valued number register `.m'. 1014*89a07cf8Schristos 1015*89a07cf8Schristos The drawing color is associated with the current environment 1016*89a07cf8Schristos (*note Environments::). 1017*89a07cf8Schristos 1018*89a07cf8Schristos Note that `\m' doesn't produce an input token in `gtroff'. As a 1019*89a07cf8Schristos consequence, it can be used in requests like `mc' (which expects a 1020*89a07cf8Schristos single character as an argument) to change the color on the fly: 1021*89a07cf8Schristos 1022*89a07cf8Schristos 1023*89a07cf8Schristos .mc \m[red]x\m[] 1024*89a07cf8Schristos 1025*89a07cf8Schristos 1026*89a07cf8Schristos -- Request: .fcolor [color] 1027*89a07cf8Schristos -- Escape: \Mc 1028*89a07cf8Schristos -- Escape: \M(co 1029*89a07cf8Schristos -- Escape: \M[color] 1030*89a07cf8Schristos -- Register: \n[.M] 1031*89a07cf8Schristos Set fill (background) color for filled objects drawn with the 1032*89a07cf8Schristos `\D'...'' commands. 1033*89a07cf8Schristos 1034*89a07cf8Schristos A red ellipse can be created with the following code: 1035*89a07cf8Schristos 1036*89a07cf8Schristos 1037*89a07cf8Schristos \M[red]\h'0.5i'\D'E 2i 1i'\M[] 1038*89a07cf8Schristos 1039*89a07cf8Schristos The escape `\M[]' returns to the previous fill color, as does a 1040*89a07cf8Schristos call to `fcolor' without an argument. 1041*89a07cf8Schristos 1042*89a07cf8Schristos The name of the current fill (background) color is available in the 1043*89a07cf8Schristos read-only, string-valued number register `.M'. 1044*89a07cf8Schristos 1045*89a07cf8Schristos The fill color is associated with the current environment (*note 1046*89a07cf8Schristos Environments::). 1047*89a07cf8Schristos 1048*89a07cf8Schristos Note that `\M' doesn't produce an input token in `gtroff'. 1049*89a07cf8Schristos 1050*89a07cf8Schristos 1051*89a07cf8SchristosFile: groff, Node: I/O, Next: Postprocessor Access, Prev: Colors, Up: gtroff Reference 1052*89a07cf8Schristos 1053*89a07cf8Schristos5.29 I/O 1054*89a07cf8Schristos======== 1055*89a07cf8Schristos 1056*89a07cf8Schristos`gtroff' has several requests for including files: 1057*89a07cf8Schristos 1058*89a07cf8Schristos -- Request: .so file 1059*89a07cf8Schristos Read in the specified FILE and includes it in place of the `so' 1060*89a07cf8Schristos request. This is quite useful for large documents, e.g. keeping 1061*89a07cf8Schristos each chapter in a separate file. *Note gsoelim::, for more 1062*89a07cf8Schristos information. 1063*89a07cf8Schristos 1064*89a07cf8Schristos Since `gtroff' replaces the `so' request with the contents of 1065*89a07cf8Schristos `file', it makes a difference whether the data is terminated with 1066*89a07cf8Schristos a newline or not: Assuming that file `xxx' contains the word `foo' 1067*89a07cf8Schristos without a final newline, this 1068*89a07cf8Schristos 1069*89a07cf8Schristos 1070*89a07cf8Schristos This is 1071*89a07cf8Schristos .so xxx 1072*89a07cf8Schristos bar 1073*89a07cf8Schristos 1074*89a07cf8Schristos yields `This is foobar'. 1075*89a07cf8Schristos 1076*89a07cf8Schristos The search path for FILE can be controlled with the `-I' command 1077*89a07cf8Schristos line option. 1078*89a07cf8Schristos 1079*89a07cf8Schristos -- Request: .pso command 1080*89a07cf8Schristos Read the standard output from the specified COMMAND and includes 1081*89a07cf8Schristos it in place of the `pso' request. 1082*89a07cf8Schristos 1083*89a07cf8Schristos This request causes an error if used in safer mode (which is the 1084*89a07cf8Schristos default). Use `groff''s or `troff''s `-U' option to activate 1085*89a07cf8Schristos unsafe mode. 1086*89a07cf8Schristos 1087*89a07cf8Schristos The comment regarding a final newline for the `so' request is valid 1088*89a07cf8Schristos for `pso' also. 1089*89a07cf8Schristos 1090*89a07cf8Schristos -- Request: .mso file 1091*89a07cf8Schristos Identical to the `so' request except that `gtroff' searches for 1092*89a07cf8Schristos the specified FILE in the same directories as macro files for the 1093*89a07cf8Schristos the `-m' command line option. If the file name to be included has 1094*89a07cf8Schristos the form `NAME.tmac' and it isn't found, `mso' tries to include 1095*89a07cf8Schristos `tmac.NAME' and vice versa. 1096*89a07cf8Schristos 1097*89a07cf8Schristos -- Request: .trf file 1098*89a07cf8Schristos -- Request: .cf file 1099*89a07cf8Schristos Transparently output the contents of FILE. Each line is output as 1100*89a07cf8Schristos if it were preceded by `\!'; however, the lines are not subject to 1101*89a07cf8Schristos copy mode interpretation. If the file does not end with a newline, 1102*89a07cf8Schristos then a newline is added (`trf' only). For example, to define a 1103*89a07cf8Schristos macro `x' containing the contents of file `f', use 1104*89a07cf8Schristos 1105*89a07cf8Schristos 1106*89a07cf8Schristos .di x 1107*89a07cf8Schristos .trf f 1108*89a07cf8Schristos .di 1109*89a07cf8Schristos 1110*89a07cf8Schristos Both `trf' and `cf', when used in a diversion, embeds an object in 1111*89a07cf8Schristos the diversion which, when reread, causes the contents of FILE to 1112*89a07cf8Schristos be transparently copied through to the output. In UNIX `troff', 1113*89a07cf8Schristos the contents of FILE is immediately copied through to the output 1114*89a07cf8Schristos regardless of whether there is a current diversion; this behaviour 1115*89a07cf8Schristos is so anomalous that it must be considered a bug. 1116*89a07cf8Schristos 1117*89a07cf8Schristos While `cf' copies the contents of FILE completely unprocessed, 1118*89a07cf8Schristos `trf' disallows characters such as NUL that are not valid `gtroff' 1119*89a07cf8Schristos input characters (*note Identifiers::). 1120*89a07cf8Schristos 1121*89a07cf8Schristos Both requests cause a line break. 1122*89a07cf8Schristos 1123*89a07cf8Schristos -- Request: .nx [file] 1124*89a07cf8Schristos Force `gtroff' to continue processing of the file specified as an 1125*89a07cf8Schristos argument. If no argument is given, immediately jump to the end of 1126*89a07cf8Schristos file. 1127*89a07cf8Schristos 1128*89a07cf8Schristos -- Request: .rd [prompt [arg1 arg2 ...]] 1129*89a07cf8Schristos Read from standard input, and include what is read as though it 1130*89a07cf8Schristos were part of the input file. Text is read until a blank line is 1131*89a07cf8Schristos encountered. 1132*89a07cf8Schristos 1133*89a07cf8Schristos If standard input is a TTY input device (keyboard), write PROMPT 1134*89a07cf8Schristos to standard error, followed by a colon (or send BEL for a beep if 1135*89a07cf8Schristos no argument is given). 1136*89a07cf8Schristos 1137*89a07cf8Schristos Arguments after PROMPT are available for the input. For example, 1138*89a07cf8Schristos the line 1139*89a07cf8Schristos 1140*89a07cf8Schristos 1141*89a07cf8Schristos .rd data foo bar 1142*89a07cf8Schristos 1143*89a07cf8Schristos with the input `This is \$2.' prints 1144*89a07cf8Schristos 1145*89a07cf8Schristos 1146*89a07cf8Schristos This is bar. 1147*89a07cf8Schristos 1148*89a07cf8Schristos 1149*89a07cf8Schristos Using the `nx' and `rd' requests, it is easy to set up form letters. 1150*89a07cf8SchristosThe form letter template is constructed like this, putting the 1151*89a07cf8Schristosfollowing lines into a file called `repeat.let': 1152*89a07cf8Schristos 1153*89a07cf8Schristos 1154*89a07cf8Schristos .ce 1155*89a07cf8Schristos \*(td 1156*89a07cf8Schristos .sp 2 1157*89a07cf8Schristos .nf 1158*89a07cf8Schristos .rd 1159*89a07cf8Schristos .sp 1160*89a07cf8Schristos .rd 1161*89a07cf8Schristos .fi 1162*89a07cf8Schristos Body of letter. 1163*89a07cf8Schristos .bp 1164*89a07cf8Schristos .nx repeat.let 1165*89a07cf8Schristos 1166*89a07cf8SchristosWhen this is run, a file containing the following lines should be 1167*89a07cf8Schristosredirected in. Note that requests included in this file are executed 1168*89a07cf8Schristosas though they were part of the form letter. The last block of input 1169*89a07cf8Schristosis the `ex' request which tells `groff' to stop processing. If this 1170*89a07cf8Schristoswas not there, `groff' would not know when to stop. 1171*89a07cf8Schristos 1172*89a07cf8Schristos 1173*89a07cf8Schristos Trent A. Fisher 1174*89a07cf8Schristos 708 NW 19th Av., #202 1175*89a07cf8Schristos Portland, OR 97209 1176*89a07cf8Schristos 1177*89a07cf8Schristos Dear Trent, 1178*89a07cf8Schristos 1179*89a07cf8Schristos Len Adollar 1180*89a07cf8Schristos 4315 Sierra Vista 1181*89a07cf8Schristos San Diego, CA 92103 1182*89a07cf8Schristos 1183*89a07cf8Schristos Dear Mr. Adollar, 1184*89a07cf8Schristos 1185*89a07cf8Schristos .ex 1186*89a07cf8Schristos 1187*89a07cf8Schristos -- Request: .pi pipe 1188*89a07cf8Schristos Pipe the output of `gtroff' to the shell command(s) specified by 1189*89a07cf8Schristos PIPE. This request must occur before `gtroff' has a chance to 1190*89a07cf8Schristos print anything. 1191*89a07cf8Schristos 1192*89a07cf8Schristos `pi' causes an error if used in safer mode (which is the default). 1193*89a07cf8Schristos Use `groff''s or `troff''s `-U' option to activate unsafe mode. 1194*89a07cf8Schristos 1195*89a07cf8Schristos Multiple calls to `pi' are allowed, acting as a chain. For 1196*89a07cf8Schristos example, 1197*89a07cf8Schristos 1198*89a07cf8Schristos 1199*89a07cf8Schristos .pi foo 1200*89a07cf8Schristos .pi bar 1201*89a07cf8Schristos ... 1202*89a07cf8Schristos 1203*89a07cf8Schristos is the same as `.pi foo | bar'. 1204*89a07cf8Schristos 1205*89a07cf8Schristos Note that the intermediate output format of `gtroff' is piped to 1206*89a07cf8Schristos the specified commands. Consequently, calling `groff' without the 1207*89a07cf8Schristos `-Z' option normally causes a fatal error. 1208*89a07cf8Schristos 1209*89a07cf8Schristos -- Request: .sy cmds 1210*89a07cf8Schristos -- Register: \n[systat] 1211*89a07cf8Schristos Execute the shell command(s) specified by CMDS. The output is not 1212*89a07cf8Schristos saved anyplace, so it is up to the user to do so. 1213*89a07cf8Schristos 1214*89a07cf8Schristos This request causes an error if used in safer mode (which is the 1215*89a07cf8Schristos default). Use `groff''s or `troff''s `-U' option to activate 1216*89a07cf8Schristos unsafe mode. 1217*89a07cf8Schristos 1218*89a07cf8Schristos For example, the following code fragment introduces the current 1219*89a07cf8Schristos time into a document: 1220*89a07cf8Schristos 1221*89a07cf8Schristos 1222*89a07cf8Schristos .sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\ 1223*89a07cf8Schristos (localtime(time))[2,1,0]' > /tmp/x\n[$$] 1224*89a07cf8Schristos .so /tmp/x\n[$$] 1225*89a07cf8Schristos .sy rm /tmp/x\n[$$] 1226*89a07cf8Schristos \nH:\nM:\nS 1227*89a07cf8Schristos 1228*89a07cf8Schristos Note that this works by having the `perl' script (run by `sy') 1229*89a07cf8Schristos print out the `nr' requests which set the number registers `H', 1230*89a07cf8Schristos `M', and `S', and then reads those commands in with the `so' 1231*89a07cf8Schristos request. 1232*89a07cf8Schristos 1233*89a07cf8Schristos For most practical purposes, the number registers `seconds', 1234*89a07cf8Schristos `minutes', and `hours' which are initialized at start-up of 1235*89a07cf8Schristos `gtroff' should be sufficient. Use the `af' request to get a 1236*89a07cf8Schristos formatted output: 1237*89a07cf8Schristos 1238*89a07cf8Schristos 1239*89a07cf8Schristos .af hours 00 1240*89a07cf8Schristos .af minutes 00 1241*89a07cf8Schristos .af seconds 00 1242*89a07cf8Schristos \n[hours]:\n[minutes]:\n[seconds] 1243*89a07cf8Schristos 1244*89a07cf8Schristos The `systat' read-write number register contains the return value 1245*89a07cf8Schristos of the `system()' function executed by the last `sy' request. 1246*89a07cf8Schristos 1247*89a07cf8Schristos -- Request: .open stream file 1248*89a07cf8Schristos -- Request: .opena stream file 1249*89a07cf8Schristos Open the specified FILE for writing and associates the specified 1250*89a07cf8Schristos STREAM with it. 1251*89a07cf8Schristos 1252*89a07cf8Schristos The `opena' request is like `open', but if the file exists, append 1253*89a07cf8Schristos to it instead of truncating it. 1254*89a07cf8Schristos 1255*89a07cf8Schristos Both `open' and `opena' cause an error if used in safer mode 1256*89a07cf8Schristos (which is the default). Use `groff''s or `troff''s `-U' option to 1257*89a07cf8Schristos activate unsafe mode. 1258*89a07cf8Schristos 1259*89a07cf8Schristos -- Request: .write stream data 1260*89a07cf8Schristos -- Request: .writec stream data 1261*89a07cf8Schristos Write to the file associated with the specified STREAM. The 1262*89a07cf8Schristos stream must previously have been the subject of an open request. 1263*89a07cf8Schristos The remainder of the line is interpreted as the `ds' request reads 1264*89a07cf8Schristos its second argument: A leading `"' is stripped, and it is read in 1265*89a07cf8Schristos copy-in mode. 1266*89a07cf8Schristos 1267*89a07cf8Schristos The `writec' request is like `write', but only `write' appends a 1268*89a07cf8Schristos newline to the data. 1269*89a07cf8Schristos 1270*89a07cf8Schristos -- Request: .writem stream xx 1271*89a07cf8Schristos Write the contents of the macro or string XX to the file 1272*89a07cf8Schristos associated with the specified STREAM. 1273*89a07cf8Schristos 1274*89a07cf8Schristos XX is read in copy mode, i.e., already formatted elements are 1275*89a07cf8Schristos ignored. Consequently, diversions must be unformatted with the 1276*89a07cf8Schristos `asciify' request before calling `writem'. Usually, this means a 1277*89a07cf8Schristos loss of information. 1278*89a07cf8Schristos 1279*89a07cf8Schristos -- Request: .close stream 1280*89a07cf8Schristos Close the specified STREAM; the stream is no longer an acceptable 1281*89a07cf8Schristos argument to the `write' request. 1282*89a07cf8Schristos 1283*89a07cf8Schristos Here a simple macro to write an index entry. 1284*89a07cf8Schristos 1285*89a07cf8Schristos 1286*89a07cf8Schristos .open idx test.idx 1287*89a07cf8Schristos . 1288*89a07cf8Schristos .de IX 1289*89a07cf8Schristos . write idx \\n[%] \\$* 1290*89a07cf8Schristos .. 1291*89a07cf8Schristos . 1292*89a07cf8Schristos .IX test entry 1293*89a07cf8Schristos . 1294*89a07cf8Schristos .close idx 1295*89a07cf8Schristos 1296*89a07cf8Schristos 1297*89a07cf8Schristos -- Escape: \Ve 1298*89a07cf8Schristos -- Escape: \V(ev 1299*89a07cf8Schristos -- Escape: \V[env] 1300*89a07cf8Schristos Interpolate the contents of the specified environment variable ENV 1301*89a07cf8Schristos (one-character name E, two-character name EV) as returned by the 1302*89a07cf8Schristos function `getenv'. `\V' is interpreted in copy-in mode. 1303*89a07cf8Schristos 1304*89a07cf8Schristos 1305*89a07cf8SchristosFile: groff, Node: Postprocessor Access, Next: Miscellaneous, Prev: I/O, Up: gtroff Reference 1306*89a07cf8Schristos 1307*89a07cf8Schristos5.30 Postprocessor Access 1308*89a07cf8Schristos========================= 1309*89a07cf8Schristos 1310*89a07cf8SchristosThere are two escapes which give information directly to the 1311*89a07cf8Schristospostprocessor. This is particularly useful for embedding POSTSCRIPT 1312*89a07cf8Schristosinto the final document. 1313*89a07cf8Schristos 1314*89a07cf8Schristos -- Escape: \X'xxx' 1315*89a07cf8Schristos Embeds its argument into the `gtroff' output preceded with `x X'. 1316*89a07cf8Schristos 1317*89a07cf8Schristos The escapes `\&', `\)', `\%', and `\:' are ignored within `\X', 1318*89a07cf8Schristos `\ ' and `\~' are converted to single space characters. All other 1319*89a07cf8Schristos escapes (except `\\' which produces a backslash) cause an error. 1320*89a07cf8Schristos 1321*89a07cf8Schristos If the `use_charnames_in_special' keyword is set in the `DESC' 1322*89a07cf8Schristos file, special characters no longer cause an error; the name XX is 1323*89a07cf8Schristos represented as `\(XX)' in the `x X' output command. Additionally, 1324*89a07cf8Schristos the backslash is represented as `\\'. 1325*89a07cf8Schristos 1326*89a07cf8Schristos `use_charnames_in_special' is currently used by `grohtml' only. 1327*89a07cf8Schristos 1328*89a07cf8Schristos -- Escape: \Yn 1329*89a07cf8Schristos -- Escape: \Y(nm 1330*89a07cf8Schristos -- Escape: \Y[name] 1331*89a07cf8Schristos This is approximately equivalent to `\X'\*[NAME]'' (one-character 1332*89a07cf8Schristos name N, two-character name NM). However, the contents of the 1333*89a07cf8Schristos string or macro NAME are not interpreted; also it is permitted for 1334*89a07cf8Schristos NAME to have been defined as a macro and thus contain newlines (it 1335*89a07cf8Schristos is not permitted for the argument to `\X' to contain newlines). 1336*89a07cf8Schristos The inclusion of newlines requires an extension to the UNIX `troff' 1337*89a07cf8Schristos output format, and confuses drivers that do not know about this 1338*89a07cf8Schristos extension (*note Device Control Commands::). 1339*89a07cf8Schristos 1340*89a07cf8Schristos *Note Output Devices::. 1341*89a07cf8Schristos 1342*89a07cf8Schristos 1343*89a07cf8SchristosFile: groff, Node: Miscellaneous, Next: Gtroff Internals, Prev: Postprocessor Access, Up: gtroff Reference 1344*89a07cf8Schristos 1345*89a07cf8Schristos5.31 Miscellaneous 1346*89a07cf8Schristos================== 1347*89a07cf8Schristos 1348*89a07cf8SchristosThis section documents parts of `gtroff' which cannot (yet) be 1349*89a07cf8Schristoscategorized elsewhere in this manual. 1350*89a07cf8Schristos 1351*89a07cf8Schristos -- Request: .nm [start [inc [space [indent]]]] 1352*89a07cf8Schristos Print line numbers. START is the line number of the _next_ output 1353*89a07cf8Schristos line. INC indicates which line numbers are printed. For example, 1354*89a07cf8Schristos the value 5 means to emit only line numbers which are multiples 1355*89a07cf8Schristos of 5; this defaults to 1. SPACE is the space to be left between 1356*89a07cf8Schristos the number and the text; this defaults to one digit space. The 1357*89a07cf8Schristos fourth argument is the indentation of the line numbers, defaulting 1358*89a07cf8Schristos to zero. Both SPACE and INDENT are given as multiples of digit 1359*89a07cf8Schristos spaces; they can be negative also. Without any arguments, line 1360*89a07cf8Schristos numbers are turned off. 1361*89a07cf8Schristos 1362*89a07cf8Schristos `gtroff' reserves three digit spaces for the line number (which is 1363*89a07cf8Schristos printed right-justified) plus the amount given by INDENT; the 1364*89a07cf8Schristos output lines are concatenated to the line numbers, separated by 1365*89a07cf8Schristos SPACE, and _without_ reducing the line length. Depending on the 1366*89a07cf8Schristos value of the horizontal page offset (as set with the `po' 1367*89a07cf8Schristos request), line numbers which are longer than the reserved space 1368*89a07cf8Schristos stick out to the left, or the whole line is moved to the right. 1369*89a07cf8Schristos 1370*89a07cf8Schristos Parameters corresponding to missing arguments are not changed; any 1371*89a07cf8Schristos non-digit argument (to be more precise, any argument starting with 1372*89a07cf8Schristos a character valid as a delimiter for identifiers) is also treated 1373*89a07cf8Schristos as missing. 1374*89a07cf8Schristos 1375*89a07cf8Schristos If line numbering has been disabled with a call to `nm' without an 1376*89a07cf8Schristos argument, it can be reactivated with `.nm +0', using the 1377*89a07cf8Schristos previously active line numbering parameters. 1378*89a07cf8Schristos 1379*89a07cf8Schristos The parameters of `nm' are associated with the current environment 1380*89a07cf8Schristos (*note Environments::). The current output line number is 1381*89a07cf8Schristos available in the number register `ln'. 1382*89a07cf8Schristos 1383*89a07cf8Schristos 1384*89a07cf8Schristos .po 1m 1385*89a07cf8Schristos .ll 2i 1386*89a07cf8Schristos This test shows how line numbering works with groff. 1387*89a07cf8Schristos .nm 999 1388*89a07cf8Schristos This test shows how line numbering works with groff. 1389*89a07cf8Schristos .br 1390*89a07cf8Schristos .nm xxx 3 2 1391*89a07cf8Schristos .ll -\w'0'u 1392*89a07cf8Schristos This test shows how line numbering works with groff. 1393*89a07cf8Schristos .nn 2 1394*89a07cf8Schristos This test shows how line numbering works with groff. 1395*89a07cf8Schristos 1396*89a07cf8Schristos And here the result: 1397*89a07cf8Schristos 1398*89a07cf8Schristos 1399*89a07cf8Schristos This test shows how 1400*89a07cf8Schristos line numbering works 1401*89a07cf8Schristos 999 with groff. This 1402*89a07cf8Schristos 1000 test shows how line 1403*89a07cf8Schristos 1001 numbering works with 1404*89a07cf8Schristos 1002 groff. 1405*89a07cf8Schristos This test shows how 1406*89a07cf8Schristos line numbering 1407*89a07cf8Schristos works with groff. 1408*89a07cf8Schristos This test shows how 1409*89a07cf8Schristos 1005 line numbering 1410*89a07cf8Schristos works with groff. 1411*89a07cf8Schristos 1412*89a07cf8Schristos 1413*89a07cf8Schristos -- Request: .nn [skip] 1414*89a07cf8Schristos Temporarily turn off line numbering. The argument is the number 1415*89a07cf8Schristos of lines not to be numbered; this defaults to 1. 1416*89a07cf8Schristos 1417*89a07cf8Schristos -- Request: .mc glyph [dist] 1418*89a07cf8Schristos Print a "margin character" to the right of the text.(1) (*note 1419*89a07cf8Schristos Miscellaneous-Footnote-1::) The first argument is the glyph to be 1420*89a07cf8Schristos printed. The second argument is the distance away from the right 1421*89a07cf8Schristos margin. If missing, the previously set value is used; default is 1422*89a07cf8Schristos 10pt). For text lines that are too long (that is, longer than the 1423*89a07cf8Schristos text length plus DIST), the margin character is directly appended 1424*89a07cf8Schristos to the lines. 1425*89a07cf8Schristos 1426*89a07cf8Schristos With no arguments the margin character is turned off. If this 1427*89a07cf8Schristos occurs before a break, no margin character is printed. 1428*89a07cf8Schristos 1429*89a07cf8Schristos For compatibility with AT&T `troff', a call to `mc' to set the 1430*89a07cf8Schristos margin character can't be undone immediately; at least one line 1431*89a07cf8Schristos gets a margin character. Thus 1432*89a07cf8Schristos 1433*89a07cf8Schristos 1434*89a07cf8Schristos .ll 1i 1435*89a07cf8Schristos .mc \[br] 1436*89a07cf8Schristos .mc 1437*89a07cf8Schristos xxx 1438*89a07cf8Schristos .br 1439*89a07cf8Schristos xxx 1440*89a07cf8Schristos 1441*89a07cf8Schristos produces 1442*89a07cf8Schristos 1443*89a07cf8Schristos 1444*89a07cf8Schristos xxx | 1445*89a07cf8Schristos xxx 1446*89a07cf8Schristos 1447*89a07cf8Schristos For empty lines and lines produced by the `tl' request no margin 1448*89a07cf8Schristos character is emitted. 1449*89a07cf8Schristos 1450*89a07cf8Schristos The margin character is associated with the current environment 1451*89a07cf8Schristos (*note Environments::). 1452*89a07cf8Schristos 1453*89a07cf8Schristos This is quite useful for indicating text that has changed, and, in 1454*89a07cf8Schristos fact, there are programs available for doing this (they are called 1455*89a07cf8Schristos `nrchbar' and `changebar' and can be found in any 1456*89a07cf8Schristos `comp.sources.unix' archive). 1457*89a07cf8Schristos 1458*89a07cf8Schristos 1459*89a07cf8Schristos .ll 3i 1460*89a07cf8Schristos .mc | 1461*89a07cf8Schristos This paragraph is highlighted with a margin 1462*89a07cf8Schristos character. 1463*89a07cf8Schristos .sp 1464*89a07cf8Schristos Note that vertical space isn't marked. 1465*89a07cf8Schristos .br 1466*89a07cf8Schristos \& 1467*89a07cf8Schristos .br 1468*89a07cf8Schristos But we can fake it with `\&'. 1469*89a07cf8Schristos 1470*89a07cf8Schristos Result: 1471*89a07cf8Schristos 1472*89a07cf8Schristos 1473*89a07cf8Schristos This paragraph is highlighted | 1474*89a07cf8Schristos with a margin character. | 1475*89a07cf8Schristos 1476*89a07cf8Schristos Note that vertical space isn't | 1477*89a07cf8Schristos marked. | 1478*89a07cf8Schristos | 1479*89a07cf8Schristos But we can fake it with `\&'. | 1480*89a07cf8Schristos 1481*89a07cf8Schristos 1482*89a07cf8Schristos -- Request: .psbb filename 1483*89a07cf8Schristos -- Register: \n[llx] 1484*89a07cf8Schristos -- Register: \n[lly] 1485*89a07cf8Schristos -- Register: \n[urx] 1486*89a07cf8Schristos -- Register: \n[ury] 1487*89a07cf8Schristos Retrieve the bounding box of the PostScript image found in 1488*89a07cf8Schristos FILENAME. The file must conform to Adobe's "Document Structuring 1489*89a07cf8Schristos Conventions" (DSC); the command searches for a `%%BoundingBox' 1490*89a07cf8Schristos comment and extracts the bounding box values into the number 1491*89a07cf8Schristos registers `llx', `lly', `urx', and `ury'. If an error occurs (for 1492*89a07cf8Schristos example, `psbb' cannot find the `%%BoundingBox' comment), it sets 1493*89a07cf8Schristos the four number registers to zero. 1494*89a07cf8Schristos 1495*89a07cf8Schristos The search path for FILENAME can be controlled with the `-I' 1496*89a07cf8Schristos command line option. 1497*89a07cf8Schristos 1498*89a07cf8Schristos 1499*89a07cf8SchristosFile: groff, Node: Miscellaneous-Footnotes, Up: Miscellaneous 1500*89a07cf8Schristos 1501*89a07cf8Schristos (1) "Margin character" is a misnomer since it is an output glyph. 1502*89a07cf8Schristos 1503*89a07cf8Schristos 1504*89a07cf8SchristosFile: groff, Node: Gtroff Internals, Next: Debugging, Prev: Miscellaneous, Up: gtroff Reference 1505*89a07cf8Schristos 1506*89a07cf8Schristos5.32 `gtroff' Internals 1507*89a07cf8Schristos======================= 1508*89a07cf8Schristos 1509*89a07cf8Schristos`gtroff' processes input in three steps. One or more input characters 1510*89a07cf8Schristosare converted to an "input token".(1) (*note Gtroff 1511*89a07cf8SchristosInternals-Footnote-1::) Then, one or more input tokens are converted 1512*89a07cf8Schristosto an "output node". Finally, output nodes are converted to the 1513*89a07cf8Schristosintermediate output language understood by all output devices. 1514*89a07cf8Schristos 1515*89a07cf8Schristos Actually, before step one happens, `gtroff' converts certain escape 1516*89a07cf8Schristossequences into reserved input characters (not accessible by the user); 1517*89a07cf8Schristossuch reserved characters are used for other internal processing also - 1518*89a07cf8Schristosthis is the very reason why not all characters are valid input. *Note 1519*89a07cf8SchristosIdentifiers::, for more on this topic. 1520*89a07cf8Schristos 1521*89a07cf8Schristos For example, the input string `fi\[:u]' is converted into a 1522*89a07cf8Schristoscharacter token `f', a character token `i', and a special token `:u' 1523*89a07cf8Schristos(representing u umlaut). Later on, the character tokens `f' and `i' 1524*89a07cf8Schristosare merged to a single output node representing the ligature glyph `fi' 1525*89a07cf8Schristos(provided the current font has a glyph for this ligature); the same 1526*89a07cf8Schristoshappens with `:u'. All output glyph nodes are `processed' which means 1527*89a07cf8Schristosthat they are invariably associated with a given font, font size, 1528*89a07cf8Schristosadvance width, etc. During the formatting process, `gtroff' itself 1529*89a07cf8Schristosadds various nodes to control the data flow. 1530*89a07cf8Schristos 1531*89a07cf8Schristos Macros, diversions, and strings collect elements in two chained 1532*89a07cf8Schristoslists: a list of input tokens which have been passed unprocessed, and a 1533*89a07cf8Schristoslist of output nodes. Consider the following the diversion. 1534*89a07cf8Schristos 1535*89a07cf8Schristos 1536*89a07cf8Schristos .di xxx 1537*89a07cf8Schristos a 1538*89a07cf8Schristos \!b 1539*89a07cf8Schristos c 1540*89a07cf8Schristos .br 1541*89a07cf8Schristos .di 1542*89a07cf8Schristos 1543*89a07cf8SchristosIt contains these elements. 1544*89a07cf8Schristos 1545*89a07cf8Schristosnode list token list element number 1546*89a07cf8Schristosline start node -- 1 1547*89a07cf8Schristosglyph node `a' -- 2 1548*89a07cf8Schristosword space node -- 3 1549*89a07cf8Schristos-- `b' 4 1550*89a07cf8Schristos-- `\n' 5 1551*89a07cf8Schristosglyph node `c' -- 6 1552*89a07cf8Schristosvertical size node -- 7 1553*89a07cf8Schristosvertical size node -- 8 1554*89a07cf8Schristos-- `\n' 9 1555*89a07cf8Schristos 1556*89a07cf8SchristosElements 1, 7, and 8 are inserted by `gtroff'; the latter two (which 1557*89a07cf8Schristosare always present) specify the vertical extent of the last line, 1558*89a07cf8Schristospossibly modified by `\x'. The `br' request finishes the current 1559*89a07cf8Schristospartial line, inserting a newline input token which is subsequently 1560*89a07cf8Schristosconverted to a space when the diversion is reread. Note that the word 1561*89a07cf8Schristosspace node has a fixed width which isn't stretchable anymore. To 1562*89a07cf8Schristosconvert horizontal space nodes back to input tokens, use the `unformat' 1563*89a07cf8Schristosrequest. 1564*89a07cf8Schristos 1565*89a07cf8Schristos Macros only contain elements in the token list (and the node list is 1566*89a07cf8Schristosempty); diversions and strings can contain elements in both lists. 1567*89a07cf8Schristos 1568*89a07cf8Schristos Note that the `chop' request simply reduces the number of elements 1569*89a07cf8Schristosin a macro, string, or diversion by one. Exceptions are "compatibility 1570*89a07cf8Schristossave" and "compatibility ignore" input tokens which are ignored. The 1571*89a07cf8Schristos`substring' request also ignores those input tokens. 1572*89a07cf8Schristos 1573*89a07cf8Schristos Some requests like `tr' or `cflags' work on glyph identifiers only; 1574*89a07cf8Schristosthis means that the associated glyph can be changed without destroying 1575*89a07cf8Schristosthis association. This can be very helpful for substituting glyphs. 1576*89a07cf8SchristosIn the following example, we assume that glyph `foo' isn't available by 1577*89a07cf8Schristosdefault, so we provide a substitution using the `fchar' request and map 1578*89a07cf8Schristosit to input character `x'. 1579*89a07cf8Schristos 1580*89a07cf8Schristos 1581*89a07cf8Schristos .fchar \[foo] foo 1582*89a07cf8Schristos .tr x \[foo] 1583*89a07cf8Schristos 1584*89a07cf8SchristosNow let us assume that we install an additional special font `bar' 1585*89a07cf8Schristoswhich has glyph `foo'. 1586*89a07cf8Schristos 1587*89a07cf8Schristos 1588*89a07cf8Schristos .special bar 1589*89a07cf8Schristos .rchar \[foo] 1590*89a07cf8Schristos 1591*89a07cf8SchristosSince glyphs defined with `fchar' are searched before glyphs in special 1592*89a07cf8Schristosfonts, we must call `rchar' to remove the definition of the fallback 1593*89a07cf8Schristosglyph. Anyway, the translation is still active; `x' now maps to the 1594*89a07cf8Schristosreal glyph `foo'. 1595*89a07cf8Schristos 1596*89a07cf8Schristos Macro and request arguments preserve the compatibility mode: 1597*89a07cf8Schristos 1598*89a07cf8Schristos 1599*89a07cf8Schristos .cp 1 \" switch to compatibility mode 1600*89a07cf8Schristos .de xx 1601*89a07cf8Schristos \\$1 1602*89a07cf8Schristos .. 1603*89a07cf8Schristos .cp 0 \" switch compatibility mode off 1604*89a07cf8Schristos .xx caf\['e] 1605*89a07cf8Schristos => caf� 1606*89a07cf8Schristos 1607*89a07cf8SchristosSince compatibility mode is on while `de' is called, the macro `xx' 1608*89a07cf8Schristosactivates compatibility mode while executing. Argument `$1' can still 1609*89a07cf8Schristosbe handled properly because it inherits the compatibility mode status 1610*89a07cf8Schristoswhich was active at the point where `xx' is called. 1611*89a07cf8Schristos 1612*89a07cf8Schristos After expansion of the parameters, the compatibility save and restore 1613*89a07cf8Schristostokens are removed. 1614*89a07cf8Schristos 1615*89a07cf8Schristos 1616*89a07cf8SchristosFile: groff, Node: Gtroff Internals-Footnotes, Up: Gtroff Internals 1617*89a07cf8Schristos 1618*89a07cf8Schristos (1) Except the escapes `\f', `\F', `\H', `\m', `\M', `\R', `\s', and 1619*89a07cf8Schristos`\S' which are processed immediately if not in copy-in mode. 1620*89a07cf8Schristos 1621*89a07cf8Schristos 1622*89a07cf8SchristosFile: groff, Node: Debugging, Next: Implementation Differences, Prev: Gtroff Internals, Up: gtroff Reference 1623*89a07cf8Schristos 1624*89a07cf8Schristos5.33 Debugging 1625*89a07cf8Schristos============== 1626*89a07cf8Schristos 1627*89a07cf8Schristos`gtroff' is not easy to debug, but there are some useful features and 1628*89a07cf8Schristosstrategies for debugging. 1629*89a07cf8Schristos 1630*89a07cf8Schristos -- Request: .lf line [filename] 1631*89a07cf8Schristos Change the line number and optionally the file name `gtroff' shall 1632*89a07cf8Schristos use for error and warning messages. LINE is the input line number 1633*89a07cf8Schristos of the _next_ line. 1634*89a07cf8Schristos 1635*89a07cf8Schristos Without argument, the request is ignored. 1636*89a07cf8Schristos 1637*89a07cf8Schristos This is a debugging aid for documents which are split into many 1638*89a07cf8Schristos files, then put together with `soelim' and other preprocessors. 1639*89a07cf8Schristos Usually, it isn't invoked manually. 1640*89a07cf8Schristos 1641*89a07cf8Schristos Note that other `troff' implementations (including the original 1642*89a07cf8Schristos AT&T version) handle `lf' differently. For them, LINE changes the 1643*89a07cf8Schristos line number of the _current_ line. 1644*89a07cf8Schristos 1645*89a07cf8Schristos -- Request: .tm string 1646*89a07cf8Schristos -- Request: .tm1 string 1647*89a07cf8Schristos -- Request: .tmc string 1648*89a07cf8Schristos Send STRING to the standard error output; this is very useful for 1649*89a07cf8Schristos printing debugging messages among other things. 1650*89a07cf8Schristos 1651*89a07cf8Schristos STRING is read in copy mode. 1652*89a07cf8Schristos 1653*89a07cf8Schristos The `tm' request ignores leading spaces of STRING; `tm1' handles 1654*89a07cf8Schristos its argument similar to the `ds' request: a leading double quote 1655*89a07cf8Schristos in STRING is stripped to allow initial blanks. 1656*89a07cf8Schristos 1657*89a07cf8Schristos The `tmc' request is similar to `tm1' but does not append a 1658*89a07cf8Schristos newline (as is done in `tm' and `tm1'). 1659*89a07cf8Schristos 1660*89a07cf8Schristos -- Request: .ab [string] 1661*89a07cf8Schristos Similar to the `tm' request, except that it causes `gtroff' to 1662*89a07cf8Schristos stop processing. With no argument it prints `User Abort.' to 1663*89a07cf8Schristos standard error. 1664*89a07cf8Schristos 1665*89a07cf8Schristos -- Request: .ex 1666*89a07cf8Schristos The `ex' request also causes `gtroff' to stop processing; see also 1667*89a07cf8Schristos *Note I/O::. 1668*89a07cf8Schristos 1669*89a07cf8Schristos When doing something involved it is useful to leave the debugging 1670*89a07cf8Schristosstatements in the code and have them turned on by a command line flag. 1671*89a07cf8Schristos 1672*89a07cf8Schristos 1673*89a07cf8Schristos .if \n(DB .tm debugging output 1674*89a07cf8Schristos 1675*89a07cf8SchristosTo activate these statements say 1676*89a07cf8Schristos 1677*89a07cf8Schristos 1678*89a07cf8Schristos groff -rDB=1 file 1679*89a07cf8Schristos 1680*89a07cf8Schristos If it is known in advance that there will be many errors and no 1681*89a07cf8Schristosuseful output, `gtroff' can be forced to suppress formatted output with 1682*89a07cf8Schristosthe `-z' flag. 1683*89a07cf8Schristos 1684*89a07cf8Schristos -- Request: .pm 1685*89a07cf8Schristos Print the entire symbol table on `stderr'. Names of all defined 1686*89a07cf8Schristos macros, strings, and diversions are print together with their size 1687*89a07cf8Schristos in bytes. Since `gtroff' sometimes adds nodes by itself, the 1688*89a07cf8Schristos returned size can be larger than expected. 1689*89a07cf8Schristos 1690*89a07cf8Schristos This request differs from UNIX `troff': `gtroff' reports the sizes 1691*89a07cf8Schristos of diversions, ignores an additional argument to print only the 1692*89a07cf8Schristos total of the sizes, and the size isn't returned in blocks of 128 1693*89a07cf8Schristos characters. 1694*89a07cf8Schristos 1695*89a07cf8Schristos -- Request: .pnr 1696*89a07cf8Schristos Print the names and contents of all currently defined number 1697*89a07cf8Schristos registers on `stderr'. 1698*89a07cf8Schristos 1699*89a07cf8Schristos -- Request: .ptr 1700*89a07cf8Schristos Print the names and positions of all traps (not including input 1701*89a07cf8Schristos line traps and diversion traps) on `stderr'. Empty slots in the 1702*89a07cf8Schristos page trap list are printed as well, because they can affect the 1703*89a07cf8Schristos priority of subsequently planted traps. 1704*89a07cf8Schristos 1705*89a07cf8Schristos -- Request: .fl 1706*89a07cf8Schristos Instruct `gtroff' to flush its output immediately. The intent is 1707*89a07cf8Schristos for interactive use, but this behaviour is currently not 1708*89a07cf8Schristos implemented in `gtroff'. Contrary to UNIX `troff', TTY output is 1709*89a07cf8Schristos sent to a device driver also (`grotty'), making it non-trivial to 1710*89a07cf8Schristos communicate interactively. 1711*89a07cf8Schristos 1712*89a07cf8Schristos This request causes a line break. 1713*89a07cf8Schristos 1714*89a07cf8Schristos -- Request: .backtrace 1715*89a07cf8Schristos Print a backtrace of the input stack to the standard error stream. 1716*89a07cf8Schristos 1717*89a07cf8Schristos Consider the following in file `test': 1718*89a07cf8Schristos 1719*89a07cf8Schristos 1720*89a07cf8Schristos .de xxx 1721*89a07cf8Schristos . backtrace 1722*89a07cf8Schristos .. 1723*89a07cf8Schristos .de yyy 1724*89a07cf8Schristos . xxx 1725*89a07cf8Schristos .. 1726*89a07cf8Schristos . 1727*89a07cf8Schristos .yyy 1728*89a07cf8Schristos 1729*89a07cf8Schristos On execution, `gtroff' prints the following: 1730*89a07cf8Schristos 1731*89a07cf8Schristos 1732*89a07cf8Schristos test:2: backtrace: macro `xxx' 1733*89a07cf8Schristos test:5: backtrace: macro `yyy' 1734*89a07cf8Schristos test:8: backtrace: file `test' 1735*89a07cf8Schristos 1736*89a07cf8Schristos The option `-b' of `gtroff' internally calls a variant of this 1737*89a07cf8Schristos request on each error and warning. 1738*89a07cf8Schristos 1739*89a07cf8Schristos -- Register: \n[slimit] 1740*89a07cf8Schristos Use the `slimit' number register to set the maximum number of 1741*89a07cf8Schristos objects on the input stack. If `slimit' is less than or equal 1742*89a07cf8Schristos to 0, there is no limit set. With no limit, a buggy recursive 1743*89a07cf8Schristos macro can exhaust virtual memory. 1744*89a07cf8Schristos 1745*89a07cf8Schristos The default value is 1000; this is a compile-time constant. 1746*89a07cf8Schristos 1747*89a07cf8Schristos -- Request: .warnscale si 1748*89a07cf8Schristos Set the scaling indicator used in warnings to SI. Valid values for 1749*89a07cf8Schristos SI are `u', `i', `c', `p', and `P'. At startup, it is set to `i'. 1750*89a07cf8Schristos 1751*89a07cf8Schristos -- Request: .spreadwarn [limit] 1752*89a07cf8Schristos Make `gtroff' emit a warning if the additional space inserted for 1753*89a07cf8Schristos each space between words in an output line is larger or equal to 1754*89a07cf8Schristos LIMIT. A negative value is changed to zero; no argument toggles 1755*89a07cf8Schristos the warning on and off without changing LIMIT. The default scaling 1756*89a07cf8Schristos indicator is `m'. At startup, `spreadwarn' is deactivated, and 1757*89a07cf8Schristos LIMIT is set to 3m. 1758*89a07cf8Schristos 1759*89a07cf8Schristos For example, 1760*89a07cf8Schristos 1761*89a07cf8Schristos 1762*89a07cf8Schristos .spreadwarn 0.2m 1763*89a07cf8Schristos 1764*89a07cf8Schristos will cause a warning if `gtroff' must add 0.2m or more for each 1765*89a07cf8Schristos interword space in a line. 1766*89a07cf8Schristos 1767*89a07cf8Schristos This request is active only if text is justified to both margins 1768*89a07cf8Schristos (using `.ad b'). 1769*89a07cf8Schristos 1770*89a07cf8Schristos `gtroff' has command line options for printing out more warnings 1771*89a07cf8Schristos(`-w') and for printing backtraces (`-b') when a warning or an error 1772*89a07cf8Schristosoccurs. The most verbose level of warnings is `-ww'. 1773*89a07cf8Schristos 1774*89a07cf8Schristos -- Request: .warn [flags] 1775*89a07cf8Schristos -- Register: \n[.warn] 1776*89a07cf8Schristos Control the level of warnings checked for. The FLAGS are the sum 1777*89a07cf8Schristos of the numbers associated with each warning that is to be enabled; 1778*89a07cf8Schristos all other warnings are disabled. The number associated with each 1779*89a07cf8Schristos warning is listed below. For example, `.warn 0' disables all 1780*89a07cf8Schristos warnings, and `.warn 1' disables all warnings except that about 1781*89a07cf8Schristos missing glyphs. If no argument is given, all warnings are enabled. 1782*89a07cf8Schristos 1783*89a07cf8Schristos The read-only number register `.warn' contains the current warning 1784*89a07cf8Schristos level. 1785*89a07cf8Schristos 1786*89a07cf8Schristos* Menu: 1787*89a07cf8Schristos 1788*89a07cf8Schristos* Warnings:: 1789*89a07cf8Schristos 1790*89a07cf8Schristos 1791*89a07cf8SchristosFile: groff, Node: Warnings, Prev: Debugging, Up: Debugging 1792*89a07cf8Schristos 1793*89a07cf8Schristos5.33.1 Warnings 1794*89a07cf8Schristos--------------- 1795*89a07cf8Schristos 1796*89a07cf8SchristosThe warnings that can be given to `gtroff' are divided into the 1797*89a07cf8Schristosfollowing categories. The name associated with each warning is used by 1798*89a07cf8Schristosthe `-w' and `-W' options; the number is used by the `warn' request and 1799*89a07cf8Schristosby the `.warn' register. 1800*89a07cf8Schristos 1801*89a07cf8Schristos`char' 1802*89a07cf8Schristos`1' 1803*89a07cf8Schristos Non-existent glyphs.(1) (*note Warnings-Footnote-1::) This is 1804*89a07cf8Schristos enabled by default. 1805*89a07cf8Schristos 1806*89a07cf8Schristos`number' 1807*89a07cf8Schristos`2' 1808*89a07cf8Schristos Invalid numeric expressions. This is enabled by default. *Note 1809*89a07cf8Schristos Expressions::. 1810*89a07cf8Schristos 1811*89a07cf8Schristos`break' 1812*89a07cf8Schristos`4' 1813*89a07cf8Schristos In fill mode, lines which could not be broken so that their length 1814*89a07cf8Schristos was less than the line length. This is enabled by default. 1815*89a07cf8Schristos 1816*89a07cf8Schristos`delim' 1817*89a07cf8Schristos`8' 1818*89a07cf8Schristos Missing or mismatched closing delimiters. 1819*89a07cf8Schristos 1820*89a07cf8Schristos`el' 1821*89a07cf8Schristos`16' 1822*89a07cf8Schristos Use of the `el' request with no matching `ie' request. *Note 1823*89a07cf8Schristos if-else::. 1824*89a07cf8Schristos 1825*89a07cf8Schristos`scale' 1826*89a07cf8Schristos`32' 1827*89a07cf8Schristos Meaningless scaling indicators. 1828*89a07cf8Schristos 1829*89a07cf8Schristos`range' 1830*89a07cf8Schristos`64' 1831*89a07cf8Schristos Out of range arguments. 1832*89a07cf8Schristos 1833*89a07cf8Schristos`syntax' 1834*89a07cf8Schristos`128' 1835*89a07cf8Schristos Dubious syntax in numeric expressions. 1836*89a07cf8Schristos 1837*89a07cf8Schristos`di' 1838*89a07cf8Schristos`256' 1839*89a07cf8Schristos Use of `di' or `da' without an argument when there is no current 1840*89a07cf8Schristos diversion. 1841*89a07cf8Schristos 1842*89a07cf8Schristos`mac' 1843*89a07cf8Schristos`512' 1844*89a07cf8Schristos Use of undefined strings, macros and diversions. When an undefined 1845*89a07cf8Schristos string, macro, or diversion is used, that string is automatically 1846*89a07cf8Schristos defined as empty. So, in most cases, at most one warning is given 1847*89a07cf8Schristos for each name. 1848*89a07cf8Schristos 1849*89a07cf8Schristos`reg' 1850*89a07cf8Schristos`1024' 1851*89a07cf8Schristos Use of undefined number registers. When an undefined number 1852*89a07cf8Schristos register is used, that register is automatically defined to have a 1853*89a07cf8Schristos value of 0. So, in most cases, at most one warning is given for 1854*89a07cf8Schristos use of a particular name. 1855*89a07cf8Schristos 1856*89a07cf8Schristos`tab' 1857*89a07cf8Schristos`2048' 1858*89a07cf8Schristos Use of a tab character where a number was expected. 1859*89a07cf8Schristos 1860*89a07cf8Schristos`right-brace' 1861*89a07cf8Schristos`4096' 1862*89a07cf8Schristos Use of `\}' where a number was expected. 1863*89a07cf8Schristos 1864*89a07cf8Schristos`missing' 1865*89a07cf8Schristos`8192' 1866*89a07cf8Schristos Requests that are missing non-optional arguments. 1867*89a07cf8Schristos 1868*89a07cf8Schristos`input' 1869*89a07cf8Schristos`16384' 1870*89a07cf8Schristos Invalid input characters. 1871*89a07cf8Schristos 1872*89a07cf8Schristos`escape' 1873*89a07cf8Schristos`32768' 1874*89a07cf8Schristos Unrecognized escape sequences. When an unrecognized escape 1875*89a07cf8Schristos sequence `\X' is encountered, the escape character is ignored, and 1876*89a07cf8Schristos X is printed. 1877*89a07cf8Schristos 1878*89a07cf8Schristos`space' 1879*89a07cf8Schristos`65536' 1880*89a07cf8Schristos Missing space between a request or macro and its argument. This 1881*89a07cf8Schristos warning is given when an undefined name longer than two characters 1882*89a07cf8Schristos is encountered, and the first two characters of the name make a 1883*89a07cf8Schristos defined name. The request or macro is not invoked. When this 1884*89a07cf8Schristos warning is given, no macro is automatically defined. This is 1885*89a07cf8Schristos enabled by default. This warning never occurs in compatibility 1886*89a07cf8Schristos mode. 1887*89a07cf8Schristos 1888*89a07cf8Schristos`font' 1889*89a07cf8Schristos`131072' 1890*89a07cf8Schristos Non-existent fonts. This is enabled by default. 1891*89a07cf8Schristos 1892*89a07cf8Schristos`ig' 1893*89a07cf8Schristos`262144' 1894*89a07cf8Schristos Invalid escapes in text ignored with the `ig' request. These are 1895*89a07cf8Schristos conditions that are errors when they do not occur in ignored text. 1896*89a07cf8Schristos 1897*89a07cf8Schristos`color' 1898*89a07cf8Schristos`524288' 1899*89a07cf8Schristos Color related warnings. 1900*89a07cf8Schristos 1901*89a07cf8Schristos`all' 1902*89a07cf8Schristos All warnings except `di', `mac' and `reg'. It is intended that 1903*89a07cf8Schristos this covers all warnings that are useful with traditional macro 1904*89a07cf8Schristos packages. 1905*89a07cf8Schristos 1906*89a07cf8Schristos`w' 1907*89a07cf8Schristos All warnings. 1908*89a07cf8Schristos 1909*89a07cf8Schristos 1910*89a07cf8SchristosFile: groff, Node: Warnings-Footnotes, Up: Warnings 1911*89a07cf8Schristos 1912*89a07cf8Schristos (1) `char' is a misnomer since it reports missing glyphs - there 1913*89a07cf8Schristosaren't missing input characters, only invalid ones. 1914*89a07cf8Schristos 1915*89a07cf8Schristos 1916*89a07cf8SchristosFile: groff, Node: Implementation Differences, Prev: Debugging, Up: gtroff Reference 1917*89a07cf8Schristos 1918*89a07cf8Schristos5.34 Implementation Differences 1919*89a07cf8Schristos=============================== 1920*89a07cf8Schristos 1921*89a07cf8SchristosGNU `troff' has a number of features which cause incompatibilities with 1922*89a07cf8Schristosdocuments written with old versions of `troff'. 1923*89a07cf8Schristos 1924*89a07cf8Schristos Long names cause some incompatibilities. UNIX `troff' interprets 1925*89a07cf8Schristos 1926*89a07cf8Schristos 1927*89a07cf8Schristos .dsabcd 1928*89a07cf8Schristos 1929*89a07cf8Schristosas defining a string `ab' with contents `cd'. Normally, GNU `troff' 1930*89a07cf8Schristosinterprets this as a call of a macro named `dsabcd'. Also UNIX `troff' 1931*89a07cf8Schristosinterprets `\*[' or `\n[' as references to a string or number register 1932*89a07cf8Schristoscalled `['. In GNU `troff', however, this is normally interpreted as 1933*89a07cf8Schristosthe start of a long name. In compatibility mode GNU `troff' interprets 1934*89a07cf8Schristoslong names in the traditional way (which means that they are not 1935*89a07cf8Schristosrecognized as names). 1936*89a07cf8Schristos 1937*89a07cf8Schristos -- Request: .cp [n] 1938*89a07cf8Schristos -- Request: .do cmd 1939*89a07cf8Schristos -- Register: \n[.C] 1940*89a07cf8Schristos If N is missing or non-zero, turn on compatibility mode; 1941*89a07cf8Schristos otherwise, turn it off. 1942*89a07cf8Schristos 1943*89a07cf8Schristos The read-only number register `.C' is 1 if compatibility mode is 1944*89a07cf8Schristos on, 0 otherwise. 1945*89a07cf8Schristos 1946*89a07cf8Schristos Compatibility mode can be also turned on with the `-C' command line 1947*89a07cf8Schristos option. 1948*89a07cf8Schristos 1949*89a07cf8Schristos The `do' request turns off compatibility mode while executing its 1950*89a07cf8Schristos arguments as a `gtroff' command. 1951*89a07cf8Schristos 1952*89a07cf8Schristos 1953*89a07cf8Schristos .do fam T 1954*89a07cf8Schristos 1955*89a07cf8Schristos executes the `fam' request when compatibility mode is enabled. 1956*89a07cf8Schristos 1957*89a07cf8Schristos `gtroff' restores the previous compatibility setting before 1958*89a07cf8Schristos interpreting any files sourced by the CMD. 1959*89a07cf8Schristos 1960*89a07cf8Schristos Two other features are controlled by `-C'. If not in compatibility 1961*89a07cf8Schristosmode, GNU `troff' preserves the input level in delimited arguments: 1962*89a07cf8Schristos 1963*89a07cf8Schristos 1964*89a07cf8Schristos .ds xx ' 1965*89a07cf8Schristos \w'abc\*(xxdef' 1966*89a07cf8Schristos 1967*89a07cf8SchristosIn compatibility mode, the string `72def'' is returned; without `-C' 1968*89a07cf8Schristosthe resulting string is `168' (assuming a TTY output device). 1969*89a07cf8Schristos 1970*89a07cf8Schristos Finally, the escapes `\f', `\H', `\m', `\M', `\R', `\s', and `\S' 1971*89a07cf8Schristosare transparent for recognizing the beginning of a line only in 1972*89a07cf8Schristoscompatibility mode (this is a rather obscure feature). For example, 1973*89a07cf8Schristosthe code 1974*89a07cf8Schristos 1975*89a07cf8Schristos 1976*89a07cf8Schristos .de xx 1977*89a07cf8Schristos Hallo! 1978*89a07cf8Schristos .. 1979*89a07cf8Schristos \fB.xx\fP 1980*89a07cf8Schristos 1981*89a07cf8Schristosprints `Hallo!' in bold face if in compatibility mode, and `.xx' in 1982*89a07cf8Schristosbold face otherwise. 1983*89a07cf8Schristos 1984*89a07cf8Schristos GNU `troff' does not allow the use of the escape sequences `\|', 1985*89a07cf8Schristos`\^', `\&', `\{', `\}', `\<SP>', `\'', `\`', `\-', `\_', `\!', `\%', 1986*89a07cf8Schristosand `\c' in names of strings, macros, diversions, number registers, 1987*89a07cf8Schristosfonts or environments; UNIX `troff' does. The `\A' escape sequence 1988*89a07cf8Schristos(*note Identifiers::) may be helpful in avoiding use of these escape 1989*89a07cf8Schristossequences in names. 1990*89a07cf8Schristos 1991*89a07cf8Schristos Fractional point sizes cause one noteworthy incompatibility. In 1992*89a07cf8SchristosUNIX `troff' the `ps' request ignores scale indicators and thus 1993*89a07cf8Schristos 1994*89a07cf8Schristos 1995*89a07cf8Schristos .ps 10u 1996*89a07cf8Schristos 1997*89a07cf8Schristossets the point size to 10 points, whereas in GNU `troff' it sets the 1998*89a07cf8Schristospoint size to 10 scaled points. *Note Fractional Type Sizes::, for 1999*89a07cf8Schristosmore information. 2000*89a07cf8Schristos 2001*89a07cf8Schristos In GNU `troff' there is a fundamental difference between 2002*89a07cf8Schristos(unformatted) input characters and (formatted) output glyphs. 2003*89a07cf8SchristosEverything that affects how a glyph is output is stored with the glyph 2004*89a07cf8Schristosnode; once a glyph node has been constructed it is unaffected by any 2005*89a07cf8Schristossubsequent requests that are executed, including `bd', `cs', `tkf', 2006*89a07cf8Schristos`tr', or `fp' requests. Normally glyphs are constructed from input 2007*89a07cf8Schristoscharacters at the moment immediately before the glyph is added to the 2008*89a07cf8Schristoscurrent output line. Macros, diversions and strings are all, in fact, 2009*89a07cf8Schristosthe same type of object; they contain lists of input characters and 2010*89a07cf8Schristosglyph nodes in any combination. A glyph node does not behave like an 2011*89a07cf8Schristosinput character for the purposes of macro processing; it does not 2012*89a07cf8Schristosinherit any of the special properties that the input character from 2013*89a07cf8Schristoswhich it was constructed might have had. For example, 2014*89a07cf8Schristos 2015*89a07cf8Schristos 2016*89a07cf8Schristos .di x 2017*89a07cf8Schristos \\\\ 2018*89a07cf8Schristos .br 2019*89a07cf8Schristos .di 2020*89a07cf8Schristos .x 2021*89a07cf8Schristos 2022*89a07cf8Schristosprints `\\' in GNU `troff'; each pair of input backslashes is turned 2023*89a07cf8Schristosinto one output backslash and the resulting output backslashes are not 2024*89a07cf8Schristosinterpreted as escape characters when they are reread. UNIX `troff' 2025*89a07cf8Schristoswould interpret them as escape characters when they were reread and 2026*89a07cf8Schristoswould end up printing one `\'. The correct way to obtain a printable 2027*89a07cf8Schristosbackslash is to use the `\e' escape sequence: This always prints a 2028*89a07cf8Schristossingle instance of the current escape character, regardless of whether 2029*89a07cf8Schristosor not it is used in a diversion; it also works in both GNU `troff' and 2030*89a07cf8SchristosUNIX `troff'.(1) (*note Implementation Differences-Footnote-1::) To 2031*89a07cf8Schristosstore, for some reason, an escape sequence in a diversion that will be 2032*89a07cf8Schristosinterpreted when the diversion is reread, either use the traditional 2033*89a07cf8Schristos`\!' transparent output facility, or, if this is unsuitable, the new 2034*89a07cf8Schristos`\?' escape sequence. 2035*89a07cf8Schristos 2036*89a07cf8Schristos *Note Diversions::, and *Note Gtroff Internals::, for more 2037*89a07cf8Schristosinformation. 2038*89a07cf8Schristos 2039*89a07cf8Schristos 2040*89a07cf8SchristosFile: groff, Node: Implementation Differences-Footnotes, Up: Implementation Differences 2041*89a07cf8Schristos 2042*89a07cf8Schristos (1) To be completely independent of the current escape character, 2043*89a07cf8Schristosuse `\(rs' which represents a reverse solidus (backslash) glyph. 2044*89a07cf8Schristos 2045*89a07cf8Schristos 2046*89a07cf8SchristosFile: groff, Node: Preprocessors, Next: Output Devices, Prev: gtroff Reference, Up: Top 2047*89a07cf8Schristos 2048*89a07cf8Schristos6 Preprocessors 2049*89a07cf8Schristos*************** 2050*89a07cf8Schristos 2051*89a07cf8SchristosThis chapter describes all preprocessors that come with `groff' or 2052*89a07cf8Schristoswhich are freely available. 2053*89a07cf8Schristos 2054*89a07cf8Schristos* Menu: 2055*89a07cf8Schristos 2056*89a07cf8Schristos* geqn:: 2057*89a07cf8Schristos* gtbl:: 2058*89a07cf8Schristos* gpic:: 2059*89a07cf8Schristos* ggrn:: 2060*89a07cf8Schristos* grap:: 2061*89a07cf8Schristos* grefer:: 2062*89a07cf8Schristos* gsoelim:: 2063*89a07cf8Schristos 2064*89a07cf8Schristos 2065*89a07cf8SchristosFile: groff, Node: geqn, Next: gtbl, Prev: Preprocessors, Up: Preprocessors 2066*89a07cf8Schristos 2067*89a07cf8Schristos6.1 `geqn' 2068*89a07cf8Schristos========== 2069*89a07cf8Schristos 2070*89a07cf8Schristos* Menu: 2071*89a07cf8Schristos 2072*89a07cf8Schristos* Invoking geqn:: 2073*89a07cf8Schristos 2074*89a07cf8Schristos 2075*89a07cf8SchristosFile: groff, Node: Invoking geqn, Prev: geqn, Up: geqn 2076*89a07cf8Schristos 2077*89a07cf8Schristos6.1.1 Invoking `geqn' 2078*89a07cf8Schristos--------------------- 2079*89a07cf8Schristos 2080*89a07cf8Schristos 2081*89a07cf8SchristosFile: groff, Node: gtbl, Next: gpic, Prev: geqn, Up: Preprocessors 2082*89a07cf8Schristos 2083*89a07cf8Schristos6.2 `gtbl' 2084*89a07cf8Schristos========== 2085*89a07cf8Schristos 2086*89a07cf8Schristos* Menu: 2087*89a07cf8Schristos 2088*89a07cf8Schristos* Invoking gtbl:: 2089*89a07cf8Schristos 2090*89a07cf8Schristos 2091*89a07cf8SchristosFile: groff, Node: Invoking gtbl, Prev: gtbl, Up: gtbl 2092*89a07cf8Schristos 2093*89a07cf8Schristos6.2.1 Invoking `gtbl' 2094*89a07cf8Schristos--------------------- 2095*89a07cf8Schristos 2096*89a07cf8Schristos 2097*89a07cf8SchristosFile: groff, Node: gpic, Next: ggrn, Prev: gtbl, Up: Preprocessors 2098*89a07cf8Schristos 2099*89a07cf8Schristos6.3 `gpic' 2100*89a07cf8Schristos========== 2101*89a07cf8Schristos 2102*89a07cf8Schristos* Menu: 2103*89a07cf8Schristos 2104*89a07cf8Schristos* Invoking gpic:: 2105*89a07cf8Schristos 2106*89a07cf8Schristos 2107*89a07cf8SchristosFile: groff, Node: Invoking gpic, Prev: gpic, Up: gpic 2108*89a07cf8Schristos 2109*89a07cf8Schristos6.3.1 Invoking `gpic' 2110*89a07cf8Schristos--------------------- 2111*89a07cf8Schristos 2112*89a07cf8Schristos 2113*89a07cf8SchristosFile: groff, Node: ggrn, Next: grap, Prev: gpic, Up: Preprocessors 2114*89a07cf8Schristos 2115*89a07cf8Schristos6.4 `ggrn' 2116*89a07cf8Schristos========== 2117*89a07cf8Schristos 2118*89a07cf8Schristos* Menu: 2119*89a07cf8Schristos 2120*89a07cf8Schristos* Invoking ggrn:: 2121*89a07cf8Schristos 2122*89a07cf8Schristos 2123*89a07cf8SchristosFile: groff, Node: Invoking ggrn, Prev: ggrn, Up: ggrn 2124*89a07cf8Schristos 2125*89a07cf8Schristos6.4.1 Invoking `ggrn' 2126*89a07cf8Schristos--------------------- 2127*89a07cf8Schristos 2128*89a07cf8Schristos 2129*89a07cf8SchristosFile: groff, Node: grap, Next: grefer, Prev: ggrn, Up: Preprocessors 2130*89a07cf8Schristos 2131*89a07cf8Schristos6.5 `grap' 2132*89a07cf8Schristos========== 2133*89a07cf8Schristos 2134*89a07cf8SchristosA free implementation of `grap', written by Ted Faber, is available as 2135*89a07cf8Schristosan extra package from the following address: 2136*89a07cf8Schristos 2137*89a07cf8Schristos `http://www.lunabase.org/~faber/Vault/software/grap/' 2138*89a07cf8Schristos 2139*89a07cf8Schristos 2140*89a07cf8SchristosFile: groff, Node: grefer, Next: gsoelim, Prev: grap, Up: Preprocessors 2141*89a07cf8Schristos 2142*89a07cf8Schristos6.6 `grefer' 2143*89a07cf8Schristos============ 2144*89a07cf8Schristos 2145*89a07cf8Schristos* Menu: 2146*89a07cf8Schristos 2147*89a07cf8Schristos* Invoking grefer:: 2148*89a07cf8Schristos 2149*89a07cf8Schristos 2150*89a07cf8SchristosFile: groff, Node: Invoking grefer, Prev: grefer, Up: grefer 2151*89a07cf8Schristos 2152*89a07cf8Schristos6.6.1 Invoking `grefer' 2153*89a07cf8Schristos----------------------- 2154*89a07cf8Schristos 2155*89a07cf8Schristos 2156*89a07cf8SchristosFile: groff, Node: gsoelim, Prev: grefer, Up: Preprocessors 2157*89a07cf8Schristos 2158*89a07cf8Schristos6.7 `gsoelim' 2159*89a07cf8Schristos============= 2160*89a07cf8Schristos 2161*89a07cf8Schristos* Menu: 2162*89a07cf8Schristos 2163*89a07cf8Schristos* Invoking gsoelim:: 2164*89a07cf8Schristos 2165*89a07cf8Schristos 2166*89a07cf8SchristosFile: groff, Node: Invoking gsoelim, Prev: gsoelim, Up: gsoelim 2167*89a07cf8Schristos 2168*89a07cf8Schristos6.7.1 Invoking `gsoelim' 2169*89a07cf8Schristos------------------------ 2170*89a07cf8Schristos 2171*89a07cf8Schristos 2172*89a07cf8SchristosFile: groff, Node: Output Devices, Next: File formats, Prev: Preprocessors, Up: Top 2173*89a07cf8Schristos 2174*89a07cf8Schristos7 Output Devices 2175*89a07cf8Schristos**************** 2176*89a07cf8Schristos 2177*89a07cf8Schristos* Menu: 2178*89a07cf8Schristos 2179*89a07cf8Schristos* Special Characters:: 2180*89a07cf8Schristos* grotty:: 2181*89a07cf8Schristos* grops:: 2182*89a07cf8Schristos* grodvi:: 2183*89a07cf8Schristos* grolj4:: 2184*89a07cf8Schristos* grolbp:: 2185*89a07cf8Schristos* grohtml:: 2186*89a07cf8Schristos* gxditview:: 2187*89a07cf8Schristos 2188*89a07cf8Schristos 2189*89a07cf8SchristosFile: groff, Node: Special Characters, Next: grotty, Prev: Output Devices, Up: Output Devices 2190*89a07cf8Schristos 2191*89a07cf8Schristos7.1 Special Characters 2192*89a07cf8Schristos====================== 2193*89a07cf8Schristos 2194*89a07cf8Schristos*Note Font Files::. 2195*89a07cf8Schristos 2196*89a07cf8Schristos 2197*89a07cf8SchristosFile: groff, Node: grotty, Next: grops, Prev: Special Characters, Up: Output Devices 2198*89a07cf8Schristos 2199*89a07cf8Schristos7.2 `grotty' 2200*89a07cf8Schristos============ 2201*89a07cf8Schristos 2202*89a07cf8Schristos* Menu: 2203*89a07cf8Schristos 2204*89a07cf8Schristos* Invoking grotty:: 2205*89a07cf8Schristos 2206*89a07cf8Schristos 2207*89a07cf8SchristosFile: groff, Node: Invoking grotty, Prev: grotty, Up: grotty 2208*89a07cf8Schristos 2209*89a07cf8Schristos7.2.1 Invoking `grotty' 2210*89a07cf8Schristos----------------------- 2211*89a07cf8Schristos 2212*89a07cf8Schristos 2213*89a07cf8SchristosFile: groff, Node: grops, Next: grodvi, Prev: grotty, Up: Output Devices 2214*89a07cf8Schristos 2215*89a07cf8Schristos7.3 `grops' 2216*89a07cf8Schristos=========== 2217*89a07cf8Schristos 2218*89a07cf8Schristos* Menu: 2219*89a07cf8Schristos 2220*89a07cf8Schristos* Invoking grops:: 2221*89a07cf8Schristos* Embedding PostScript:: 2222*89a07cf8Schristos 2223*89a07cf8Schristos 2224*89a07cf8SchristosFile: groff, Node: Invoking grops, Next: Embedding PostScript, Prev: grops, Up: grops 2225*89a07cf8Schristos 2226*89a07cf8Schristos7.3.1 Invoking `grops' 2227*89a07cf8Schristos---------------------- 2228*89a07cf8Schristos 2229*89a07cf8Schristos 2230*89a07cf8SchristosFile: groff, Node: Embedding PostScript, Prev: Invoking grops, Up: grops 2231*89a07cf8Schristos 2232*89a07cf8Schristos7.3.2 Embedding POSTSCRIPT 2233*89a07cf8Schristos-------------------------- 2234*89a07cf8Schristos 2235*89a07cf8Schristos 2236*89a07cf8SchristosFile: groff, Node: grodvi, Next: grolj4, Prev: grops, Up: Output Devices 2237*89a07cf8Schristos 2238*89a07cf8Schristos7.4 `grodvi' 2239*89a07cf8Schristos============ 2240*89a07cf8Schristos 2241*89a07cf8Schristos* Menu: 2242*89a07cf8Schristos 2243*89a07cf8Schristos* Invoking grodvi:: 2244*89a07cf8Schristos 2245*89a07cf8Schristos 2246*89a07cf8SchristosFile: groff, Node: Invoking grodvi, Prev: grodvi, Up: grodvi 2247*89a07cf8Schristos 2248*89a07cf8Schristos7.4.1 Invoking `grodvi' 2249*89a07cf8Schristos----------------------- 2250*89a07cf8Schristos 2251*89a07cf8Schristos 2252*89a07cf8SchristosFile: groff, Node: grolj4, Next: grolbp, Prev: grodvi, Up: Output Devices 2253*89a07cf8Schristos 2254*89a07cf8Schristos7.5 `grolj4' 2255*89a07cf8Schristos============ 2256*89a07cf8Schristos 2257*89a07cf8Schristos* Menu: 2258*89a07cf8Schristos 2259*89a07cf8Schristos* Invoking grolj4:: 2260*89a07cf8Schristos 2261*89a07cf8Schristos 2262*89a07cf8SchristosFile: groff, Node: Invoking grolj4, Prev: grolj4, Up: grolj4 2263*89a07cf8Schristos 2264*89a07cf8Schristos7.5.1 Invoking `grolj4' 2265*89a07cf8Schristos----------------------- 2266*89a07cf8Schristos 2267*89a07cf8Schristos 2268*89a07cf8SchristosFile: groff, Node: grolbp, Next: grohtml, Prev: grolj4, Up: Output Devices 2269*89a07cf8Schristos 2270*89a07cf8Schristos7.6 `grolbp' 2271*89a07cf8Schristos============ 2272*89a07cf8Schristos 2273*89a07cf8Schristos* Menu: 2274*89a07cf8Schristos 2275*89a07cf8Schristos* Invoking grolbp:: 2276*89a07cf8Schristos 2277*89a07cf8Schristos 2278*89a07cf8SchristosFile: groff, Node: Invoking grolbp, Prev: grolbp, Up: grolbp 2279*89a07cf8Schristos 2280*89a07cf8Schristos7.6.1 Invoking `grolbp' 2281*89a07cf8Schristos----------------------- 2282*89a07cf8Schristos 2283*89a07cf8Schristos 2284*89a07cf8SchristosFile: groff, Node: grohtml, Next: gxditview, Prev: grolbp, Up: Output Devices 2285*89a07cf8Schristos 2286*89a07cf8Schristos7.7 `grohtml' 2287*89a07cf8Schristos============= 2288*89a07cf8Schristos 2289*89a07cf8Schristos* Menu: 2290*89a07cf8Schristos 2291*89a07cf8Schristos* Invoking grohtml:: 2292*89a07cf8Schristos* grohtml specific registers and strings:: 2293*89a07cf8Schristos 2294*89a07cf8Schristos 2295*89a07cf8SchristosFile: groff, Node: Invoking grohtml, Next: grohtml specific registers and strings, Prev: grohtml, Up: grohtml 2296*89a07cf8Schristos 2297*89a07cf8Schristos7.7.1 Invoking `grohtml' 2298*89a07cf8Schristos------------------------ 2299*89a07cf8Schristos 2300*89a07cf8Schristos 2301*89a07cf8SchristosFile: groff, Node: grohtml specific registers and strings, Prev: Invoking grohtml, Up: grohtml 2302*89a07cf8Schristos 2303*89a07cf8Schristos7.7.2 `grohtml' specific registers and strings 2304*89a07cf8Schristos---------------------------------------------- 2305*89a07cf8Schristos 2306*89a07cf8Schristos -- Register: \n[ps4html] 2307*89a07cf8Schristos -- String: \*[www-image-template] 2308*89a07cf8Schristos The registers `ps4html' and `www-image-template' are defined by 2309*89a07cf8Schristos the `pre-grohtml' preprocessor. `pre-grohtml' reads in the 2310*89a07cf8Schristos `troff' input, marks up the inline equations and passes the result 2311*89a07cf8Schristos firstly to 2312*89a07cf8Schristos 2313*89a07cf8Schristos 2314*89a07cf8Schristos troff -Tps -rps4html=1 -dwww-image-template=TEMPLATE 2315*89a07cf8Schristos 2316*89a07cf8Schristos and secondly to 2317*89a07cf8Schristos 2318*89a07cf8Schristos 2319*89a07cf8Schristos troff -Thtml 2320*89a07cf8Schristos 2321*89a07cf8Schristos The PostScript device is used to create all the image files, and 2322*89a07cf8Schristos the register `ps4html' enables the macro sets to ignore floating 2323*89a07cf8Schristos keeps, footers, and headings. 2324*89a07cf8Schristos 2325*89a07cf8Schristos The register `www-image-template' is set to the user specified 2326*89a07cf8Schristos template name or the default name. 2327*89a07cf8Schristos 2328*89a07cf8Schristos 2329*89a07cf8SchristosFile: groff, Node: gxditview, Prev: grohtml, Up: Output Devices 2330*89a07cf8Schristos 2331*89a07cf8Schristos7.8 `gxditview' 2332*89a07cf8Schristos=============== 2333*89a07cf8Schristos 2334*89a07cf8Schristos* Menu: 2335*89a07cf8Schristos 2336*89a07cf8Schristos* Invoking gxditview:: 2337*89a07cf8Schristos 2338*89a07cf8Schristos 2339*89a07cf8SchristosFile: groff, Node: Invoking gxditview, Prev: gxditview, Up: gxditview 2340*89a07cf8Schristos 2341*89a07cf8Schristos7.8.1 Invoking `gxditview' 2342*89a07cf8Schristos-------------------------- 2343*89a07cf8Schristos 2344*89a07cf8Schristos 2345*89a07cf8SchristosFile: groff, Node: File formats, Next: Installation, Prev: Output Devices, Up: Top 2346*89a07cf8Schristos 2347*89a07cf8Schristos8 File formats 2348*89a07cf8Schristos************** 2349*89a07cf8Schristos 2350*89a07cf8SchristosAll files read and written by `gtroff' are text files. The following 2351*89a07cf8Schristostwo sections describe their format. 2352*89a07cf8Schristos 2353*89a07cf8Schristos* Menu: 2354*89a07cf8Schristos 2355*89a07cf8Schristos* gtroff Output:: 2356*89a07cf8Schristos* Font Files:: 2357*89a07cf8Schristos 2358*89a07cf8Schristos 2359*89a07cf8SchristosFile: groff, Node: gtroff Output, Next: Font Files, Prev: File formats, Up: File formats 2360*89a07cf8Schristos 2361*89a07cf8Schristos8.1 `gtroff' Output 2362*89a07cf8Schristos=================== 2363*89a07cf8Schristos 2364*89a07cf8SchristosThis section describes the intermediate output format of GNU `troff'. 2365*89a07cf8SchristosThis output is produced by a run of `gtroff' before it is fed into a 2366*89a07cf8Schristosdevice postprocessor program. 2367*89a07cf8Schristos 2368*89a07cf8Schristos As `groff' is a wrapper program around `gtroff' that automatically 2369*89a07cf8Schristoscalls a postprocessor, this output does not show up normally. This is 2370*89a07cf8Schristoswhy it is called "intermediate". `groff' provides the option `-Z' to 2371*89a07cf8Schristosinhibit postprocessing, such that the produced intermediate output is 2372*89a07cf8Schristossent to standard output just like calling `gtroff' manually. 2373*89a07cf8Schristos 2374*89a07cf8Schristos Here, the term "troff output" describes what is output by `gtroff', 2375*89a07cf8Schristoswhile "intermediate output" refers to the language that is accepted by 2376*89a07cf8Schristosthe parser that prepares this output for the postprocessors. This 2377*89a07cf8Schristosparser is smarter on whitespace and implements obsolete elements for 2378*89a07cf8Schristoscompatibility, otherwise both formats are the same.(1) (*note gtroff 2379*89a07cf8SchristosOutput-Footnote-1::) 2380*89a07cf8Schristos 2381*89a07cf8Schristos The main purpose of the intermediate output concept is to facilitate 2382*89a07cf8Schristosthe development of postprocessors by providing a common programming 2383*89a07cf8Schristosinterface for all devices. It has a language of its own that is 2384*89a07cf8Schristoscompletely different from the `gtroff' language. While the `gtroff' 2385*89a07cf8Schristoslanguage is a high-level programming language for text processing, the 2386*89a07cf8Schristosintermediate output language is a kind of low-level assembler language 2387*89a07cf8Schristosby specifying all positions on the page for writing and drawing. 2388*89a07cf8Schristos 2389*89a07cf8Schristos The intermediate output produced by `gtroff' is fairly readable, 2390*89a07cf8Schristoswhile output from AT&T `troff' is rather hard to understand because of 2391*89a07cf8Schristosstrange habits that are still supported, but not used any longer by 2392*89a07cf8Schristos`gtroff'. 2393*89a07cf8Schristos 2394*89a07cf8Schristos* Menu: 2395*89a07cf8Schristos 2396*89a07cf8Schristos* Language Concepts:: 2397*89a07cf8Schristos* Command Reference:: 2398*89a07cf8Schristos* Intermediate Output Examples:: 2399*89a07cf8Schristos* Output Language Compatibility:: 2400*89a07cf8Schristos 2401*89a07cf8Schristos 2402*89a07cf8SchristosFile: groff, Node: gtroff Output-Footnotes, Up: gtroff Output 2403*89a07cf8Schristos 2404*89a07cf8Schristos (1) The parser and postprocessor for intermediate output can be 2405*89a07cf8Schristosfound in the file 2406*89a07cf8Schristos`GROFF-SOURCE-DIR/src/libs/libdriver/input.cpp'. 2407*89a07cf8Schristos 2408*89a07cf8Schristos 2409*89a07cf8SchristosFile: groff, Node: Language Concepts, Next: Command Reference, Prev: gtroff Output, Up: gtroff Output 2410*89a07cf8Schristos 2411*89a07cf8Schristos8.1.1 Language Concepts 2412*89a07cf8Schristos----------------------- 2413*89a07cf8Schristos 2414*89a07cf8SchristosDuring the run of `gtroff', the input data is cracked down to the 2415*89a07cf8Schristosinformation on what has to be printed at what position on the intended 2416*89a07cf8Schristosdevice. So the language of the intermediate output format can be quite 2417*89a07cf8Schristossmall. Its only elements are commands with and without arguments. In 2418*89a07cf8Schristosthis section, the term "command" always refers to the intermediate 2419*89a07cf8Schristosoutput language, and never to the `gtroff' language used for document 2420*89a07cf8Schristosformatting. There are commands for positioning and text writing, for 2421*89a07cf8Schristosdrawing, and for device controlling. 2422*89a07cf8Schristos 2423*89a07cf8Schristos* Menu: 2424*89a07cf8Schristos 2425*89a07cf8Schristos* Separation:: 2426*89a07cf8Schristos* Argument Units:: 2427*89a07cf8Schristos* Document Parts:: 2428*89a07cf8Schristos 2429*89a07cf8Schristos 2430*89a07cf8SchristosFile: groff, Node: Separation, Next: Argument Units, Prev: Language Concepts, Up: Language Concepts 2431*89a07cf8Schristos 2432*89a07cf8Schristos8.1.1.1 Separation 2433*89a07cf8Schristos.................. 2434*89a07cf8Schristos 2435*89a07cf8SchristosAT&T `troff' output has strange requirements on whitespace. The 2436*89a07cf8Schristos`gtroff' output parser, however, is smart about whitespace by making it 2437*89a07cf8Schristosmaximally optional. The whitespace characters, i.e., the tab, space, 2438*89a07cf8Schristosand newline characters, always have a syntactical meaning. They are 2439*89a07cf8Schristosnever printable because spacing within the output is always done by 2440*89a07cf8Schristospositioning commands. 2441*89a07cf8Schristos 2442*89a07cf8Schristos Any sequence of space or tab characters is treated as a single 2443*89a07cf8Schristos"syntactical space". It separates commands and arguments, but is only 2444*89a07cf8Schristosrequired when there would occur a clashing between the command code and 2445*89a07cf8Schristosthe arguments without the space. Most often, this happens when 2446*89a07cf8Schristosvariable-length command names, arguments, argument lists, or command 2447*89a07cf8Schristosclusters meet. Commands and arguments with a known, fixed length need 2448*89a07cf8Schristosnot be separated by syntactical space. 2449*89a07cf8Schristos 2450*89a07cf8Schristos A line break is a syntactical element, too. Every command argument 2451*89a07cf8Schristoscan be followed by whitespace, a comment, or a newline character. Thus 2452*89a07cf8Schristosa "syntactical line break" is defined to consist of optional 2453*89a07cf8Schristossyntactical space that is optionally followed by a comment, and a 2454*89a07cf8Schristosnewline character. 2455*89a07cf8Schristos 2456*89a07cf8Schristos The normal commands, those for positioning and text, consist of a 2457*89a07cf8Schristossingle letter taking a fixed number of arguments. For historical 2458*89a07cf8Schristosreasons, the parser allows to stack such commands on the same line, but 2459*89a07cf8Schristosfortunately, in `gtroff''s intermediate output, every command with at 2460*89a07cf8Schristosleast one argument is followed by a line break, thus providing 2461*89a07cf8Schristosexcellent readability. 2462*89a07cf8Schristos 2463*89a07cf8Schristos The other commands - those for drawing and device controlling - have 2464*89a07cf8Schristosa more complicated structure; some recognize long command names, and 2465*89a07cf8Schristossome take a variable number of arguments. So all `D' and `x' commands 2466*89a07cf8Schristoswere designed to request a syntactical line break after their last 2467*89a07cf8Schristosargument. Only one command, `x X', has an argument that can stretch 2468*89a07cf8Schristosover several lines; all other commands must have all of their arguments 2469*89a07cf8Schristoson the same line as the command, i.e., the arguments may not be 2470*89a07cf8Schristossplitted by a line break. 2471*89a07cf8Schristos 2472*89a07cf8Schristos Empty lines (these are lines containing only space and/or a 2473*89a07cf8Schristoscomment), can occur everywhere. They are just ignored. 2474*89a07cf8Schristos 2475*89a07cf8Schristos 2476*89a07cf8SchristosFile: groff, Node: Argument Units, Next: Document Parts, Prev: Separation, Up: Language Concepts 2477*89a07cf8Schristos 2478*89a07cf8Schristos8.1.1.2 Argument Units 2479*89a07cf8Schristos...................... 2480*89a07cf8Schristos 2481*89a07cf8SchristosSome commands take integer arguments that are assumed to represent 2482*89a07cf8Schristosvalues in a measurement unit, but the letter for the corresponding 2483*89a07cf8Schristosscale indicator is not written with the output command arguments. Most 2484*89a07cf8Schristoscommands assume the scale indicator `u', the basic unit of the device, 2485*89a07cf8Schristossome use `z', the scaled point unit of the device, while others, such 2486*89a07cf8Schristosas the color commands, expect plain integers. 2487*89a07cf8Schristos 2488*89a07cf8Schristos Note that single characters can have the eighth bit set, as can the 2489*89a07cf8Schristosnames of fonts and special characters. The names of characters and 2490*89a07cf8Schristosfonts can be of arbitrary length. A character that is to be printed 2491*89a07cf8Schristoswill always be in the current font. 2492*89a07cf8Schristos 2493*89a07cf8Schristos A string argument is always terminated by the next whitespace 2494*89a07cf8Schristoscharacter (space, tab, or newline); an embedded `#' character is 2495*89a07cf8Schristosregarded as part of the argument, not as the beginning of a comment 2496*89a07cf8Schristoscommand. An integer argument is already terminated by the next 2497*89a07cf8Schristosnon-digit character, which then is regarded as the first character of 2498*89a07cf8Schristosthe next argument or command. 2499*89a07cf8Schristos 2500*89a07cf8Schristos 2501*89a07cf8SchristosFile: groff, Node: Document Parts, Prev: Argument Units, Up: Language Concepts 2502*89a07cf8Schristos 2503*89a07cf8Schristos8.1.1.3 Document Parts 2504*89a07cf8Schristos...................... 2505*89a07cf8Schristos 2506*89a07cf8SchristosA correct intermediate output document consists of two parts, the 2507*89a07cf8Schristos"prologue" and the "body". 2508*89a07cf8Schristos 2509*89a07cf8Schristos The task of the prologue is to set the general device parameters 2510*89a07cf8Schristosusing three exactly specified commands. `gtroff''s prologue is 2511*89a07cf8Schristosguaranteed to consist of the following three lines (in that order): 2512*89a07cf8Schristos 2513*89a07cf8Schristos 2514*89a07cf8Schristos x T DEVICE 2515*89a07cf8Schristos x res N H V 2516*89a07cf8Schristos x init 2517*89a07cf8Schristos 2518*89a07cf8Schristoswith the arguments set as outlined in *Note Device Control Commands::. 2519*89a07cf8SchristosNote that the parser for the intermediate output format is able to 2520*89a07cf8Schristosswallow additional whitespace and comments as well even in the prologue. 2521*89a07cf8Schristos 2522*89a07cf8Schristos The body is the main section for processing the document data. 2523*89a07cf8SchristosSyntactically, it is a sequence of any commands different from the ones 2524*89a07cf8Schristosused in the prologue. Processing is terminated as soon as the first 2525*89a07cf8Schristos`x stop' command is encountered; the last line of any `gtroff' 2526*89a07cf8Schristosintermediate output always contains such a command. 2527*89a07cf8Schristos 2528*89a07cf8Schristos Semantically, the body is page oriented. A new page is started by a 2529*89a07cf8Schristos`p' command. Positioning, writing, and drawing commands are always 2530*89a07cf8Schristosdone within the current page, so they cannot occur before the first `p' 2531*89a07cf8Schristoscommand. Absolute positioning (by the `H' and `V' commands) is done 2532*89a07cf8Schristosrelative to the current page; all other positioning is done relative to 2533*89a07cf8Schristosthe current location within this page. 2534*89a07cf8Schristos 2535*89a07cf8Schristos 2536*89a07cf8SchristosFile: groff, Node: Command Reference, Next: Intermediate Output Examples, Prev: Language Concepts, Up: gtroff Output 2537*89a07cf8Schristos 2538*89a07cf8Schristos8.1.2 Command Reference 2539*89a07cf8Schristos----------------------- 2540*89a07cf8Schristos 2541*89a07cf8SchristosThis section describes all intermediate output commands, both from AT&T 2542*89a07cf8Schristos`troff' as well as the `gtroff' extensions. 2543*89a07cf8Schristos 2544*89a07cf8Schristos* Menu: 2545*89a07cf8Schristos 2546*89a07cf8Schristos* Comment Command:: 2547*89a07cf8Schristos* Simple Commands:: 2548*89a07cf8Schristos* Graphics Commands:: 2549*89a07cf8Schristos* Device Control Commands:: 2550*89a07cf8Schristos* Obsolete Command:: 2551*89a07cf8Schristos 2552*89a07cf8Schristos 2553*89a07cf8SchristosFile: groff, Node: Comment Command, Next: Simple Commands, Prev: Command Reference, Up: Command Reference 2554*89a07cf8Schristos 2555*89a07cf8Schristos8.1.2.1 Comment Command 2556*89a07cf8Schristos....................... 2557*89a07cf8Schristos 2558*89a07cf8Schristos`#ANYTHING<end of line>' 2559*89a07cf8Schristos A comment. Ignore any characters from the `#' character up to the 2560*89a07cf8Schristos next newline character. 2561*89a07cf8Schristos 2562*89a07cf8Schristos This command is the only possibility for commenting in the 2563*89a07cf8Schristos intermediate output. Each comment can be preceded by arbitrary 2564*89a07cf8Schristos syntactical space; every command can be terminated by a comment. 2565*89a07cf8Schristos 2566*89a07cf8Schristos 2567*89a07cf8SchristosFile: groff, Node: Simple Commands, Next: Graphics Commands, Prev: Comment Command, Up: Command Reference 2568*89a07cf8Schristos 2569*89a07cf8Schristos8.1.2.2 Simple Commands 2570*89a07cf8Schristos....................... 2571*89a07cf8Schristos 2572*89a07cf8SchristosThe commands in this subsection have a command code consisting of a 2573*89a07cf8Schristossingle character, taking a fixed number of arguments. Most of them are 2574*89a07cf8Schristoscommands for positioning and text writing. These commands are smart 2575*89a07cf8Schristosabout whitespace. Optionally, syntactical space can be inserted 2576*89a07cf8Schristosbefore, after, and between the command letter and its arguments. All 2577*89a07cf8Schristosof these commands are stackable, i.e., they can be preceded by other 2578*89a07cf8Schristossimple commands or followed by arbitrary other commands on the same 2579*89a07cf8Schristosline. A separating syntactical space is only necessary when two 2580*89a07cf8Schristosinteger arguments would clash or if the preceding argument ends with a 2581*89a07cf8Schristosstring argument. 2582*89a07cf8Schristos 2583*89a07cf8Schristos`C XXX<whitespace>' 2584*89a07cf8Schristos Print a special character named XXX. The trailing syntactical 2585*89a07cf8Schristos space or line break is necessary to allow glyph names of arbitrary 2586*89a07cf8Schristos length. The glyph is printed at the current print position; the 2587*89a07cf8Schristos glyph's size is read from the font file. The print position is 2588*89a07cf8Schristos not changed. 2589*89a07cf8Schristos 2590*89a07cf8Schristos`c G' 2591*89a07cf8Schristos Print glyph G at the current print position;(1) (*note Simple 2592*89a07cf8Schristos Commands-Footnote-1::) the glyph's size is read from the font 2593*89a07cf8Schristos file. The print position is not changed. 2594*89a07cf8Schristos 2595*89a07cf8Schristos`f N' 2596*89a07cf8Schristos Set font to font number N (a non-negative integer). 2597*89a07cf8Schristos 2598*89a07cf8Schristos`H N' 2599*89a07cf8Schristos Move right to the absolute vertical position N (a non-negative 2600*89a07cf8Schristos integer in basic units `u' relative to left edge of current page. 2601*89a07cf8Schristos 2602*89a07cf8Schristos`h N' 2603*89a07cf8Schristos Move N (a non-negative integer) basic units `u' horizontally to 2604*89a07cf8Schristos the right. The original UNIX troff manual allows negative values 2605*89a07cf8Schristos for N also, but `gtroff' doesn't use this. 2606*89a07cf8Schristos 2607*89a07cf8Schristos`m COLOR-SCHEME [COMPONENT ...]' 2608*89a07cf8Schristos Set the color for text (glyphs), line drawing, and the outline of 2609*89a07cf8Schristos graphic objects using different color schemes; the analoguous 2610*89a07cf8Schristos command for the filling color of graphic objects is `DF'. The 2611*89a07cf8Schristos color components are specified as integer arguments between 0 and 2612*89a07cf8Schristos 65536. The number of color components and their meaning vary for 2613*89a07cf8Schristos the different color schemes. These commands are generated by 2614*89a07cf8Schristos `gtroff''s escape sequence `\m'. No position changing. These 2615*89a07cf8Schristos commands are a `gtroff' extension. 2616*89a07cf8Schristos 2617*89a07cf8Schristos `mc CYAN MAGENTA YELLOW' 2618*89a07cf8Schristos Set color using the CMY color scheme, having the 3 color 2619*89a07cf8Schristos components CYAN, MAGENTA, and YELLOW. 2620*89a07cf8Schristos 2621*89a07cf8Schristos `md' 2622*89a07cf8Schristos Set color to the default color value (black in most cases). 2623*89a07cf8Schristos No component arguments. 2624*89a07cf8Schristos 2625*89a07cf8Schristos `mg GRAY' 2626*89a07cf8Schristos Set color to the shade of gray given by the argument, an 2627*89a07cf8Schristos integer between 0 (black) and 65536 (white). 2628*89a07cf8Schristos 2629*89a07cf8Schristos `mk CYAN MAGENTA YELLOW BLACK' 2630*89a07cf8Schristos Set color using the CMYK color scheme, having the 4 color 2631*89a07cf8Schristos components CYAN, MAGENTA, YELLOW, and BLACK. 2632*89a07cf8Schristos 2633*89a07cf8Schristos `mr RED GREEN BLUE' 2634*89a07cf8Schristos Set color using the RGB color scheme, having the 3 color 2635*89a07cf8Schristos components RED, GREEN, and BLUE. 2636*89a07cf8Schristos 2637*89a07cf8Schristos`N N' 2638*89a07cf8Schristos Print glyph with index N (a non-negative integer) of the current 2639*89a07cf8Schristos font. This command is a `gtroff' extension. 2640*89a07cf8Schristos 2641*89a07cf8Schristos`n B A' 2642*89a07cf8Schristos Inform the device about a line break, but no positioning is done by 2643*89a07cf8Schristos this command. In AT&T `troff', the integer arguments B and A 2644*89a07cf8Schristos informed about the space before and after the current line to make 2645*89a07cf8Schristos the intermediate output more human readable without performing any 2646*89a07cf8Schristos action. In `groff', they are just ignored, but they must be 2647*89a07cf8Schristos provided for compatibility reasons. 2648*89a07cf8Schristos 2649*89a07cf8Schristos`p N' 2650*89a07cf8Schristos Begin a new page in the outprint. The page number is set to N. 2651*89a07cf8Schristos This page is completely independent of pages formerly processed 2652*89a07cf8Schristos even if those have the same page number. The vertical position on 2653*89a07cf8Schristos the outprint is automatically set to 0. All positioning, writing, 2654*89a07cf8Schristos and drawing is always done relative to a page, so a `p' command 2655*89a07cf8Schristos must be issued before any of these commands. 2656*89a07cf8Schristos 2657*89a07cf8Schristos`s N' 2658*89a07cf8Schristos Set point size to N scaled points (this is unit `z'). AT&T 2659*89a07cf8Schristos `troff' used the unit points (`p') instead. *Note Output Language 2660*89a07cf8Schristos Compatibility::. 2661*89a07cf8Schristos 2662*89a07cf8Schristos`t XXX<whitespace>' 2663*89a07cf8Schristos`t XXX DUMMY-ARG<whitespace>' 2664*89a07cf8Schristos Print a word, i.e., a sequence of characters XXX representing 2665*89a07cf8Schristos output glyphs which names are single characters, terminated by a 2666*89a07cf8Schristos space character or a line break; an optional second integer 2667*89a07cf8Schristos argument is ignored (this allows the formatter to generate an even 2668*89a07cf8Schristos number of arguments). The first glyph should be printed at the 2669*89a07cf8Schristos current position, the current horizontal position should then be 2670*89a07cf8Schristos increased by the width of the first glyph, and so on for each 2671*89a07cf8Schristos glyph. The widths of the glyphs are read from the font file, 2672*89a07cf8Schristos scaled for the current point size, and rounded to a multiple of 2673*89a07cf8Schristos the horizontal resolution. Special characters cannot be printed 2674*89a07cf8Schristos using this command (use the `C' command for special characters). 2675*89a07cf8Schristos This command is a `gtroff' extension; it is only used for devices 2676*89a07cf8Schristos whose `DESC' file contains the `tcommand' keyword (*note DESC File 2677*89a07cf8Schristos Format::). 2678*89a07cf8Schristos 2679*89a07cf8Schristos`u N XXX<whitespace>' 2680*89a07cf8Schristos Print word with track kerning. This is the same as the `t' 2681*89a07cf8Schristos command except that after printing each glyph, the current 2682*89a07cf8Schristos horizontal position is increased by the sum of the width of that 2683*89a07cf8Schristos glyph and N (an integer in basic units `u'). This command is a 2684*89a07cf8Schristos `gtroff' extension; it is only used for devices whose `DESC' file 2685*89a07cf8Schristos contains the `tcommand' keyword (*note DESC File Format::). 2686*89a07cf8Schristos 2687*89a07cf8Schristos`V N' 2688*89a07cf8Schristos Move down to the absolute vertical position N (a non-negative 2689*89a07cf8Schristos integer in basic units `u') relative to upper edge of current page. 2690*89a07cf8Schristos 2691*89a07cf8Schristos`v N' 2692*89a07cf8Schristos Move N basic units `u' down (N is a non-negative integer). The 2693*89a07cf8Schristos original UNIX troff manual allows negative values for N also, but 2694*89a07cf8Schristos `gtroff' doesn't use this. 2695*89a07cf8Schristos 2696*89a07cf8Schristos`w' 2697*89a07cf8Schristos Informs about a paddable white space to increase readability. The 2698*89a07cf8Schristos spacing itself must be performed explicitly by a move command. 2699*89a07cf8Schristos 2700*89a07cf8Schristos 2701*89a07cf8SchristosFile: groff, Node: Simple Commands-Footnotes, Up: Simple Commands 2702*89a07cf8Schristos 2703*89a07cf8Schristos (1) `c' is actually a misnomer since it outputs a glyph. 2704*89a07cf8Schristos 2705*89a07cf8Schristos 2706*89a07cf8SchristosFile: groff, Node: Graphics Commands, Next: Device Control Commands, Prev: Simple Commands, Up: Command Reference 2707*89a07cf8Schristos 2708*89a07cf8Schristos8.1.2.3 Graphics Commands 2709*89a07cf8Schristos......................... 2710*89a07cf8Schristos 2711*89a07cf8SchristosEach graphics or drawing command in the intermediate output starts with 2712*89a07cf8Schristosthe letter `D', followed by one or two characters that specify a 2713*89a07cf8Schristossubcommand; this is followed by a fixed or variable number of integer 2714*89a07cf8Schristosarguments that are separated by a single space character. A `D' 2715*89a07cf8Schristoscommand may not be followed by another command on the same line (apart 2716*89a07cf8Schristosfrom a comment), so each `D' command is terminated by a syntactical 2717*89a07cf8Schristosline break. 2718*89a07cf8Schristos 2719*89a07cf8Schristos `gtroff' output follows the classical spacing rules (no space 2720*89a07cf8Schristosbetween command and subcommand, all arguments are preceded by a single 2721*89a07cf8Schristosspace character), but the parser allows optional space between the 2722*89a07cf8Schristoscommand letters and makes the space before the first argument optional. 2723*89a07cf8SchristosAs usual, each space can be any sequence of tab and space characters. 2724*89a07cf8Schristos 2725*89a07cf8Schristos Some graphics commands can take a variable number of arguments. In 2726*89a07cf8Schristosthis case, they are integers representing a size measured in basic 2727*89a07cf8Schristosunits `u'. The arguments called H1, H2, ..., HN stand for horizontal 2728*89a07cf8Schristosdistances where positive means right, negative left. The arguments 2729*89a07cf8Schristoscalled V1, V2, ..., VN stand for vertical distances where positive 2730*89a07cf8Schristosmeans down, negative up. All these distances are offsets relative to 2731*89a07cf8Schristosthe current location. 2732*89a07cf8Schristos 2733*89a07cf8Schristos Each graphics command directly corresponds to a similar `gtroff' 2734*89a07cf8Schristos`\D' escape sequence. *Note Drawing Requests::. 2735*89a07cf8Schristos 2736*89a07cf8Schristos Unknown `D' commands are assumed to be device-specific. Its 2737*89a07cf8Schristosarguments are parsed as strings; the whole information is then sent to 2738*89a07cf8Schristosthe postprocessor. 2739*89a07cf8Schristos 2740*89a07cf8Schristos In the following command reference, the syntax element <line 2741*89a07cf8Schristosbreak> means a syntactical line break as defined above. 2742*89a07cf8Schristos 2743*89a07cf8Schristos`D~ H1 V1 H2 V2 ... HN VN<line break>' 2744*89a07cf8Schristos Draw B-spline from current position to offset (H1,V1), then to 2745*89a07cf8Schristos offset (H2,V2), if given, etc. up to (HN,VN). This command takes 2746*89a07cf8Schristos a variable number of argument pairs; the current position is moved 2747*89a07cf8Schristos to the terminal point of the drawn curve. 2748*89a07cf8Schristos 2749*89a07cf8Schristos`Da H1 V1 H2 V2<line break>' 2750*89a07cf8Schristos Draw arc from current position to (H1,V1)+(H2,V2) with center at 2751*89a07cf8Schristos (H1,V1); then move the current position to the final point of the 2752*89a07cf8Schristos arc. 2753*89a07cf8Schristos 2754*89a07cf8Schristos`DC D<line break>' 2755*89a07cf8Schristos`DC D DUMMY-ARG<line break>' 2756*89a07cf8Schristos Draw a solid circle using the current fill color with diameter D 2757*89a07cf8Schristos (integer in basic units `u') with leftmost point at the current 2758*89a07cf8Schristos position; then move the current position to the rightmost point of 2759*89a07cf8Schristos the circle. An optional second integer argument is ignored (this 2760*89a07cf8Schristos allows the formatter to generate an even number of arguments). 2761*89a07cf8Schristos This command is a `gtroff' extension. 2762*89a07cf8Schristos 2763*89a07cf8Schristos`Dc D<line break>' 2764*89a07cf8Schristos Draw circle line with diameter D (integer in basic units `u') with 2765*89a07cf8Schristos leftmost point at the current position; then move the current 2766*89a07cf8Schristos position to the rightmost point of the circle. 2767*89a07cf8Schristos 2768*89a07cf8Schristos`DE H V<line break>' 2769*89a07cf8Schristos Draw a solid ellipse in the current fill color with a horizontal 2770*89a07cf8Schristos diameter of H and a vertical diameter of V (both integers in basic 2771*89a07cf8Schristos units `u') with the leftmost point at the current position; then 2772*89a07cf8Schristos move to the rightmost point of the ellipse. This command is a 2773*89a07cf8Schristos `gtroff' extension. 2774*89a07cf8Schristos 2775*89a07cf8Schristos`De H V<line break>' 2776*89a07cf8Schristos Draw an outlined ellipse with a horizontal diameter of H and a 2777*89a07cf8Schristos vertical diameter of V (both integers in basic units `u') with the 2778*89a07cf8Schristos leftmost point at current position; then move to the rightmost 2779*89a07cf8Schristos point of the ellipse. 2780*89a07cf8Schristos 2781*89a07cf8Schristos`DF COLOR-SCHEME [COMPONENT ...]<line break>' 2782*89a07cf8Schristos Set fill color for solid drawing objects using different color 2783*89a07cf8Schristos schemes; the analoguous command for setting the color of text, line 2784*89a07cf8Schristos graphics, and the outline of graphic objects is `m'. The color 2785*89a07cf8Schristos components are specified as integer arguments between 0 and 65536. 2786*89a07cf8Schristos The number of color components and their meaning vary for the 2787*89a07cf8Schristos different color schemes. These commands are generated by 2788*89a07cf8Schristos `gtroff''s escape sequences `\D'F ...'' and `\M' (with no other 2789*89a07cf8Schristos corresponding graphics commands). No position changing. This 2790*89a07cf8Schristos command is a `gtroff' extension. 2791*89a07cf8Schristos 2792*89a07cf8Schristos `DFc CYAN MAGENTA YELLOW<line break>' 2793*89a07cf8Schristos Set fill color for solid drawing objects using the CMY color 2794*89a07cf8Schristos scheme, having the 3 color components CYAN, MAGENTA, and 2795*89a07cf8Schristos YELLOW. 2796*89a07cf8Schristos 2797*89a07cf8Schristos `DFd<line break>' 2798*89a07cf8Schristos Set fill color for solid drawing objects to the default fill 2799*89a07cf8Schristos color value (black in most cases). No component arguments. 2800*89a07cf8Schristos 2801*89a07cf8Schristos `DFg GRAY<line break>' 2802*89a07cf8Schristos Set fill color for solid drawing objects to the shade of gray 2803*89a07cf8Schristos given by the argument, an integer between 0 (black) and 65536 2804*89a07cf8Schristos (white). 2805*89a07cf8Schristos 2806*89a07cf8Schristos `DFk CYAN MAGENTA YELLOW BLACK<line break>' 2807*89a07cf8Schristos Set fill color for solid drawing objects using the CMYK color 2808*89a07cf8Schristos scheme, having the 4 color components CYAN, MAGENTA, YELLOW, 2809*89a07cf8Schristos and BLACK. 2810*89a07cf8Schristos 2811*89a07cf8Schristos `DFr RED GREEN BLUE<line break>' 2812*89a07cf8Schristos Set fill color for solid drawing objects using the RGB color 2813*89a07cf8Schristos scheme, having the 3 color components RED, GREEN, and BLUE. 2814*89a07cf8Schristos 2815*89a07cf8Schristos`Df N<line break>' 2816*89a07cf8Schristos The argument N must be an integer in the range -32767 to 32767. 2817*89a07cf8Schristos 2818*89a07cf8Schristos 0 <= N <= 1000 2819*89a07cf8Schristos Set the color for filling solid drawing objects to a shade of 2820*89a07cf8Schristos gray, where 0 corresponds to solid white, 1000 (the default) 2821*89a07cf8Schristos to solid black, and values in between to intermediate shades 2822*89a07cf8Schristos of gray; this is obsoleted by command `DFg'. 2823*89a07cf8Schristos 2824*89a07cf8Schristos N < 0 or N > 1000 2825*89a07cf8Schristos Set the filling color to the color that is currently being 2826*89a07cf8Schristos used for the text and the outline, see command `m'. For 2827*89a07cf8Schristos example, the command sequence 2828*89a07cf8Schristos 2829*89a07cf8Schristos 2830*89a07cf8Schristos mg 0 0 65536 2831*89a07cf8Schristos Df -1 2832*89a07cf8Schristos 2833*89a07cf8Schristos sets all colors to blue. 2834*89a07cf8Schristos 2835*89a07cf8Schristos No position changing. This command is a `gtroff' extension. 2836*89a07cf8Schristos 2837*89a07cf8Schristos`Dl H V<line break>' 2838*89a07cf8Schristos Draw line from current position to offset (H,V) (integers in basic 2839*89a07cf8Schristos units `u'); then set current position to the end of the drawn line. 2840*89a07cf8Schristos 2841*89a07cf8Schristos`Dp H1 V1 H2 V2 ... HN VN<line break>' 2842*89a07cf8Schristos Draw a polygon line from current position to offset (H1,V1), from 2843*89a07cf8Schristos there to offset (H2,V2), etc. up to offset (HN,VN), and from there 2844*89a07cf8Schristos back to the starting position. For historical reasons, the 2845*89a07cf8Schristos position is changed by adding the sum of all arguments with odd 2846*89a07cf8Schristos index to the actual horizontal position and the even ones to the 2847*89a07cf8Schristos vertical position. Although this doesn't make sense it is kept 2848*89a07cf8Schristos for compatibility. This command is a `gtroff' extension. 2849*89a07cf8Schristos 2850*89a07cf8Schristos`Dp H1 V1 H2 V2 ... HN VN<line break>' 2851*89a07cf8Schristos Draw a solid polygon in the current fill color rather than an 2852*89a07cf8Schristos outlined polygon, using the same arguments and positioning as the 2853*89a07cf8Schristos corresponding `Dp' command. This command is a `gtroff' extension. 2854*89a07cf8Schristos 2855*89a07cf8Schristos`Dt N<line break>' 2856*89a07cf8Schristos Set the current line thickness to N (an integer in basic units 2857*89a07cf8Schristos `u') if N>0; if N=0 select the smallest available line thickness; 2858*89a07cf8Schristos if N<0 set the line thickness proportional to the point size (this 2859*89a07cf8Schristos is the default before the first `Dt' command was specified). For 2860*89a07cf8Schristos historical reasons, the horizontal position is changed by adding 2861*89a07cf8Schristos the argument to the actual horizontal position, while the vertical 2862*89a07cf8Schristos position is not changed. Although this doesn't make sense it is 2863*89a07cf8Schristos kept for compatibility. This command is a `gtroff' extension. 2864*89a07cf8Schristos 2865*89a07cf8Schristos 2866*89a07cf8SchristosFile: groff, Node: Device Control Commands, Next: Obsolete Command, Prev: Graphics Commands, Up: Command Reference 2867*89a07cf8Schristos 2868*89a07cf8Schristos8.1.2.4 Device Control Commands 2869*89a07cf8Schristos............................... 2870*89a07cf8Schristos 2871*89a07cf8SchristosEach device control command starts with the letter `x', followed by a 2872*89a07cf8Schristosspace character (optional or arbitrary space or tab in `gtroff') and a 2873*89a07cf8Schristossubcommand letter or word; each argument (if any) must be preceded by a 2874*89a07cf8Schristossyntactical space. All `x' commands are terminated by a syntactical 2875*89a07cf8Schristosline break; no device control command can be followed by another 2876*89a07cf8Schristoscommand on the same line (except a comment). 2877*89a07cf8Schristos 2878*89a07cf8Schristos The subcommand is basically a single letter, but to increase 2879*89a07cf8Schristosreadability, it can be written as a word, i.e., an arbitrary sequence 2880*89a07cf8Schristosof characters terminated by the next tab, space, or newline character. 2881*89a07cf8SchristosAll characters of the subcommand word but the first are simply ignored. 2882*89a07cf8SchristosFor example, `gtroff' outputs the initialization command `x i' as 2883*89a07cf8Schristos`x init' and the resolution command `x r' as `x res'. 2884*89a07cf8Schristos 2885*89a07cf8Schristos In the following, the syntax element <line break> means a 2886*89a07cf8Schristossyntactical line break (*note Separation::). 2887*89a07cf8Schristos 2888*89a07cf8Schristos`xF NAME<line break>' 2889*89a07cf8Schristos The `F' stands for FILENAME. 2890*89a07cf8Schristos 2891*89a07cf8Schristos Use NAME as the intended name for the current file in error 2892*89a07cf8Schristos reports. This is useful for remembering the original file name 2893*89a07cf8Schristos when `gtroff' uses an internal piping mechanism. The input file is 2894*89a07cf8Schristos not changed by this command. This command is a `gtroff' extension. 2895*89a07cf8Schristos 2896*89a07cf8Schristos`xf N S<line break>' 2897*89a07cf8Schristos The `f' stands for FONT. 2898*89a07cf8Schristos 2899*89a07cf8Schristos Mount font position N (a non-negative integer) with font named S 2900*89a07cf8Schristos (a text word). *Note Font Positions::. 2901*89a07cf8Schristos 2902*89a07cf8Schristos`xH N<line break>' 2903*89a07cf8Schristos The `H' stands for HEIGHT. 2904*89a07cf8Schristos 2905*89a07cf8Schristos Set glyph height to N (a positive integer in scaled points `z'). 2906*89a07cf8Schristos AT&T `troff' uses the unit points (`p') instead. *Note Output 2907*89a07cf8Schristos Language Compatibility::. 2908*89a07cf8Schristos 2909*89a07cf8Schristos`xi<line break>' 2910*89a07cf8Schristos The `i' stands for INIT. 2911*89a07cf8Schristos 2912*89a07cf8Schristos Initialize device. This is the third command of the prologue. 2913*89a07cf8Schristos 2914*89a07cf8Schristos`xp<line break>' 2915*89a07cf8Schristos The `p' stands for PAUSE. 2916*89a07cf8Schristos 2917*89a07cf8Schristos Parsed but ignored. The original UNIX troff manual writes 2918*89a07cf8Schristos 2919*89a07cf8Schristos pause device, can be restarted 2920*89a07cf8Schristos 2921*89a07cf8Schristos`xr N H V<line break>' 2922*89a07cf8Schristos The `r' stands for RESOLUTION. 2923*89a07cf8Schristos 2924*89a07cf8Schristos Resolution is N, while H is the minimal horizontal motion, and V 2925*89a07cf8Schristos the minimal vertical motion possible with this device; all 2926*89a07cf8Schristos arguments are positive integers in basic units `u' per inch. This 2927*89a07cf8Schristos is the second command of the prologue. 2928*89a07cf8Schristos 2929*89a07cf8Schristos`xS N<line break>' 2930*89a07cf8Schristos The `S' stands for SLANT. 2931*89a07cf8Schristos 2932*89a07cf8Schristos Set slant to N (an integer in basic units `u'). 2933*89a07cf8Schristos 2934*89a07cf8Schristos`xs<line break>' 2935*89a07cf8Schristos The `s' stands for STOP. 2936*89a07cf8Schristos 2937*89a07cf8Schristos Terminates the processing of the current file; issued as the last 2938*89a07cf8Schristos command of any intermediate troff output. 2939*89a07cf8Schristos 2940*89a07cf8Schristos`xt<line break>' 2941*89a07cf8Schristos The `t' stands for TRAILER. 2942*89a07cf8Schristos 2943*89a07cf8Schristos Generate trailer information, if any. In GTROFF, this is actually 2944*89a07cf8Schristos just ignored. 2945*89a07cf8Schristos 2946*89a07cf8Schristos`xT XXX<line break>' 2947*89a07cf8Schristos The `T' stands for TYPESETTER. 2948*89a07cf8Schristos 2949*89a07cf8Schristos Set name of device to word XXX, a sequence of characters ended by 2950*89a07cf8Schristos the next white space character. The possible device names coincide 2951*89a07cf8Schristos with those from the `groff' `-T' option. This is the first 2952*89a07cf8Schristos command of the prologue. 2953*89a07cf8Schristos 2954*89a07cf8Schristos`xu N<line break>' 2955*89a07cf8Schristos The `u' stands for UNDERLINE. 2956*89a07cf8Schristos 2957*89a07cf8Schristos Configure underlining of spaces. If N is 1, start underlining of 2958*89a07cf8Schristos spaces; if N is 0, stop underlining of spaces. This is needed for 2959*89a07cf8Schristos the `cu' request in nroff mode and is ignored otherwise. This 2960*89a07cf8Schristos command is a `gtroff' extension. 2961*89a07cf8Schristos 2962*89a07cf8Schristos`xX ANYTHING<line break>' 2963*89a07cf8Schristos The `x' stands for X-ESCAPE. 2964*89a07cf8Schristos 2965*89a07cf8Schristos Send string ANYTHING uninterpreted to the device. If the line 2966*89a07cf8Schristos following this command starts with a `+' character this line is 2967*89a07cf8Schristos interpreted as a continuation line in the following sense. The 2968*89a07cf8Schristos `+' is ignored, but a newline character is sent instead to the 2969*89a07cf8Schristos device, the rest of the line is sent uninterpreted. The same 2970*89a07cf8Schristos applies to all following lines until the first character of a line 2971*89a07cf8Schristos is not a `+' character. This command is generated by the `gtroff' 2972*89a07cf8Schristos escape sequence `\X'. The line-continuing feature is a `gtroff' 2973*89a07cf8Schristos extension. 2974*89a07cf8Schristos 2975*89a07cf8Schristos 2976*89a07cf8SchristosFile: groff, Node: Obsolete Command, Prev: Device Control Commands, Up: Command Reference 2977*89a07cf8Schristos 2978*89a07cf8Schristos8.1.2.5 Obsolete Command 2979*89a07cf8Schristos........................ 2980*89a07cf8Schristos 2981*89a07cf8SchristosIn AT&T `troff' output, the writing of a single glyph is mostly done by 2982*89a07cf8Schristosa very strange command that combines a horizontal move and a single 2983*89a07cf8Schristoscharacter giving the glyph name. It doesn't have a command code, but 2984*89a07cf8Schristosis represented by a 3-character argument consisting of exactly 2 digits 2985*89a07cf8Schristosand a character. 2986*89a07cf8Schristos 2987*89a07cf8SchristosDDG 2988*89a07cf8Schristos Move right DD (exactly two decimal digits) basic units `u', then 2989*89a07cf8Schristos print glyph G (represented as a single character). 2990*89a07cf8Schristos 2991*89a07cf8Schristos In `gtroff', arbitrary syntactical space around and within this 2992*89a07cf8Schristos command is allowed to be added. Only when a preceding command on 2993*89a07cf8Schristos the same line ends with an argument of variable length a 2994*89a07cf8Schristos separating space is obligatory. In AT&T `troff', large clusters 2995*89a07cf8Schristos of these and other commands are used, mostly without spaces; this 2996*89a07cf8Schristos made such output almost unreadable. 2997*89a07cf8Schristos 2998*89a07cf8Schristos For modern high-resolution devices, this command does not make sense 2999*89a07cf8Schristosbecause the width of the glyphs can become much larger than two decimal 3000*89a07cf8Schristosdigits. In `gtroff', this is only used for the devices `X75', 3001*89a07cf8Schristos`X75-12', `X100', and `X100-12'. For other devices, the commands `t' 3002*89a07cf8Schristosand `u' provide a better functionality. 3003*89a07cf8Schristos 3004*89a07cf8Schristos 3005*89a07cf8SchristosFile: groff, Node: Intermediate Output Examples, Next: Output Language Compatibility, Prev: Command Reference, Up: gtroff Output 3006*89a07cf8Schristos 3007*89a07cf8Schristos8.1.3 Intermediate Output Examples 3008*89a07cf8Schristos---------------------------------- 3009*89a07cf8Schristos 3010*89a07cf8SchristosThis section presents the intermediate output generated from the same 3011*89a07cf8Schristosinput for three different devices. The input is the sentence `hell 3012*89a07cf8Schristosworld' fed into `gtroff' on the command line. 3013*89a07cf8Schristos 3014*89a07cf8SchristosHigh-resolution device `ps' 3015*89a07cf8Schristos This is the standard output of `gtroff' if no `-T' option is given. 3016*89a07cf8Schristos 3017*89a07cf8Schristos shell> echo "hell world" | groff -Z -T ps 3018*89a07cf8Schristos 3019*89a07cf8Schristos x T ps 3020*89a07cf8Schristos x res 72000 1 1 3021*89a07cf8Schristos x init 3022*89a07cf8Schristos p1 3023*89a07cf8Schristos x font 5 TR 3024*89a07cf8Schristos f5 3025*89a07cf8Schristos s10000 3026*89a07cf8Schristos V12000 3027*89a07cf8Schristos H72000 3028*89a07cf8Schristos thell 3029*89a07cf8Schristos wh2500 3030*89a07cf8Schristos tw 3031*89a07cf8Schristos H96620 3032*89a07cf8Schristos torld 3033*89a07cf8Schristos n12000 0 3034*89a07cf8Schristos x trailer 3035*89a07cf8Schristos V792000 3036*89a07cf8Schristos x stop 3037*89a07cf8Schristos 3038*89a07cf8Schristos This output can be fed into `grops' to get its representation as a 3039*89a07cf8Schristos PostScript file. 3040*89a07cf8Schristos 3041*89a07cf8SchristosLow-resolution device `latin1' 3042*89a07cf8Schristos This is similar to the high-resolution device except that the 3043*89a07cf8Schristos positioning is done at a minor scale. Some comments (lines 3044*89a07cf8Schristos starting with `#') were added for clarification; they were not 3045*89a07cf8Schristos generated by the formatter. 3046*89a07cf8Schristos 3047*89a07cf8Schristos shell> echo "hell world" | groff -Z -T latin1 3048*89a07cf8Schristos 3049*89a07cf8Schristos # prologue 3050*89a07cf8Schristos x T latin1 3051*89a07cf8Schristos x res 240 24 40 3052*89a07cf8Schristos x init 3053*89a07cf8Schristos # begin a new page 3054*89a07cf8Schristos p1 3055*89a07cf8Schristos # font setup 3056*89a07cf8Schristos x font 1 R 3057*89a07cf8Schristos f1 3058*89a07cf8Schristos s10 3059*89a07cf8Schristos # initial positioning on the page 3060*89a07cf8Schristos V40 3061*89a07cf8Schristos H0 3062*89a07cf8Schristos # write text `hell' 3063*89a07cf8Schristos thell 3064*89a07cf8Schristos # inform about space, and issue a horizontal jump 3065*89a07cf8Schristos wh24 3066*89a07cf8Schristos # write text `world' 3067*89a07cf8Schristos tworld 3068*89a07cf8Schristos # announce line break, but do nothing because ... 3069*89a07cf8Schristos n40 0 3070*89a07cf8Schristos # ... the end of the document has been reached 3071*89a07cf8Schristos x trailer 3072*89a07cf8Schristos V2640 3073*89a07cf8Schristos x stop 3074*89a07cf8Schristos 3075*89a07cf8Schristos This output can be fed into `grotty' to get a formatted text 3076*89a07cf8Schristos document. 3077*89a07cf8Schristos 3078*89a07cf8SchristosAT&T `troff' output 3079*89a07cf8Schristos Since a computer monitor has a very low resolution compared to 3080*89a07cf8Schristos modern printers the intermediate output for the X Window devices 3081*89a07cf8Schristos can use the jump-and-write command with its 2-digit displacements. 3082*89a07cf8Schristos 3083*89a07cf8Schristos shell> echo "hell world" | groff -Z -T X100 3084*89a07cf8Schristos 3085*89a07cf8Schristos x T X100 3086*89a07cf8Schristos x res 100 1 1 3087*89a07cf8Schristos x init 3088*89a07cf8Schristos p1 3089*89a07cf8Schristos x font 5 TR 3090*89a07cf8Schristos f5 3091*89a07cf8Schristos s10 3092*89a07cf8Schristos V16 3093*89a07cf8Schristos H100 3094*89a07cf8Schristos # write text with jump-and-write commands 3095*89a07cf8Schristos ch07e07l03lw06w11o07r05l03dh7 3096*89a07cf8Schristos n16 0 3097*89a07cf8Schristos x trailer 3098*89a07cf8Schristos V1100 3099*89a07cf8Schristos x stop 3100*89a07cf8Schristos 3101*89a07cf8Schristos This output can be fed into `xditview' or `gxditview' for 3102*89a07cf8Schristos displaying in X. 3103*89a07cf8Schristos 3104*89a07cf8Schristos Due to the obsolete jump-and-write command, the text clusters in 3105*89a07cf8Schristos the AT&T `troff' output are almost unreadable. 3106*89a07cf8Schristos 3107*89a07cf8Schristos 3108*89a07cf8SchristosFile: groff, Node: Output Language Compatibility, Prev: Intermediate Output Examples, Up: gtroff Output 3109*89a07cf8Schristos 3110*89a07cf8Schristos8.1.4 Output Language Compatibility 3111*89a07cf8Schristos----------------------------------- 3112*89a07cf8Schristos 3113*89a07cf8SchristosThe intermediate output language of AT&T `troff' was first documented 3114*89a07cf8Schristosin the UNIX troff manual, with later additions documented in `A 3115*89a07cf8SchristosTypesetter-indenpendent TROFF', written by Brian Kernighan. 3116*89a07cf8Schristos 3117*89a07cf8Schristos The `gtroff' intermediate output format is compatible with this 3118*89a07cf8Schristosspecification except for the following features. 3119*89a07cf8Schristos 3120*89a07cf8Schristos * The classical quasi device independence is not yet implemented. 3121*89a07cf8Schristos 3122*89a07cf8Schristos * The old hardware was very different from what we use today. So the 3123*89a07cf8Schristos `groff' devices are also fundamentally different from the ones in 3124*89a07cf8Schristos AT&T `troff'. For example, the AT&T PostScript device is called 3125*89a07cf8Schristos `post' and has a resolution of only 720 units per inch, suitable 3126*89a07cf8Schristos for printers 20 years ago, while `groff''s `ps' device has a 3127*89a07cf8Schristos resolution of 72000 units per inch. Maybe, by implementing some 3128*89a07cf8Schristos rescaling mechanism similar to the classical quasi device 3129*89a07cf8Schristos independence, `groff' could emulate AT&T's `post' device. 3130*89a07cf8Schristos 3131*89a07cf8Schristos * The B-spline command `D~' is correctly handled by the intermediate 3132*89a07cf8Schristos output parser, but the drawing routines aren't implemented in some 3133*89a07cf8Schristos of the postprocessor programs. 3134*89a07cf8Schristos 3135*89a07cf8Schristos * The argument of the commands `s' and `x H' has the implicit unit 3136*89a07cf8Schristos scaled point `z' in `gtroff', while AT&T `troff' has point (`p'). 3137*89a07cf8Schristos This isn't an incompatibility but a compatible extension, for both 3138*89a07cf8Schristos units coincide for all devices without a `sizescale' parameter in 3139*89a07cf8Schristos the `DESC' file, including all postprocessors from AT&T and 3140*89a07cf8Schristos `groff''s text devices. The few `groff' devices with a 3141*89a07cf8Schristos `sizescale' parameter either do not exist for AT&T `troff', have a 3142*89a07cf8Schristos different name, or seem to have a different resolution. So 3143*89a07cf8Schristos conflicts are very unlikely. 3144*89a07cf8Schristos 3145*89a07cf8Schristos * The position changing after the commands `Dp', `DP', and `Dt' is 3146*89a07cf8Schristos illogical, but as old versions of `gtroff' used this feature it is 3147*89a07cf8Schristos kept for compatibility reasons. 3148*89a07cf8Schristos 3149*89a07cf8Schristos 3150*89a07cf8Schristos 3151*89a07cf8SchristosFile: groff, Node: Font Files, Prev: gtroff Output, Up: File formats 3152*89a07cf8Schristos 3153*89a07cf8Schristos8.2 Font Files 3154*89a07cf8Schristos============== 3155*89a07cf8Schristos 3156*89a07cf8SchristosThe `gtroff' font format is roughly a superset of the `ditroff' font 3157*89a07cf8Schristosformat (as used in later versions of AT&T `troff' and its descendants). 3158*89a07cf8SchristosUnlike the `ditroff' font format, there is no associated binary 3159*89a07cf8Schristosformat; all files are text files.(1) (*note Font Files-Footnote-1::) 3160*89a07cf8SchristosThe font files for device NAME are stored in a directory `devNAME'. 3161*89a07cf8SchristosThere are two types of file: a device description file called `DESC' 3162*89a07cf8Schristosand for each font F a font file called `F'. 3163*89a07cf8Schristos 3164*89a07cf8Schristos* Menu: 3165*89a07cf8Schristos 3166*89a07cf8Schristos* DESC File Format:: 3167*89a07cf8Schristos* Font File Format:: 3168*89a07cf8Schristos 3169*89a07cf8Schristos 3170*89a07cf8SchristosFile: groff, Node: Font Files-Footnotes, Up: Font Files 3171*89a07cf8Schristos 3172*89a07cf8Schristos (1) Plan 9 `troff' has also abandoned the binary format. 3173*89a07cf8Schristos 3174*89a07cf8Schristos 3175*89a07cf8SchristosFile: groff, Node: DESC File Format, Next: Font File Format, Prev: Font Files, Up: Font Files 3176*89a07cf8Schristos 3177*89a07cf8Schristos8.2.1 `DESC' File Format 3178*89a07cf8Schristos------------------------ 3179*89a07cf8Schristos 3180*89a07cf8SchristosThe `DESC' file can contain the following types of line. Except for 3181*89a07cf8Schristosthe `charset' keyword which must comes last (if at all), the order of 3182*89a07cf8Schristosthe lines is not important. 3183*89a07cf8Schristos 3184*89a07cf8Schristos`res N' 3185*89a07cf8Schristos There are N machine units per inch. 3186*89a07cf8Schristos 3187*89a07cf8Schristos`hor N' 3188*89a07cf8Schristos The horizontal resolution is N machine units. All horizontal 3189*89a07cf8Schristos quantities are rounded to be multiples of this value. 3190*89a07cf8Schristos 3191*89a07cf8Schristos`vert N' 3192*89a07cf8Schristos The vertical resolution is N machine units. All vertical 3193*89a07cf8Schristos quantities are rounded to be multiples of this value. 3194*89a07cf8Schristos 3195*89a07cf8Schristos`sizescale N' 3196*89a07cf8Schristos The scale factor for point sizes. By default this has a value 3197*89a07cf8Schristos of 1. One scaled point is equal to one point/N. The arguments to 3198*89a07cf8Schristos the `unitwidth' and `sizes' commands are given in scaled points. 3199*89a07cf8Schristos *Note Fractional Type Sizes::, for more information. 3200*89a07cf8Schristos 3201*89a07cf8Schristos`unitwidth N' 3202*89a07cf8Schristos Quantities in the font files are given in machine units for fonts 3203*89a07cf8Schristos whose point size is N scaled points. 3204*89a07cf8Schristos 3205*89a07cf8Schristos`prepro PROGRAM' 3206*89a07cf8Schristos Call PROGRAM as a preprocessor. Currently, this keyword is used 3207*89a07cf8Schristos by `groff' with option `-Thtml' only. 3208*89a07cf8Schristos 3209*89a07cf8Schristos`postpro PROGRAM' 3210*89a07cf8Schristos Call PROGRAM as a postprocessor. For example, the line 3211*89a07cf8Schristos 3212*89a07cf8Schristos 3213*89a07cf8Schristos postpro grodvi 3214*89a07cf8Schristos 3215*89a07cf8Schristos in the file `devdvi/DESC' makes `groff' call `grodvi' if option 3216*89a07cf8Schristos `-Tdvi' is given (and `-Z' isn't used). 3217*89a07cf8Schristos 3218*89a07cf8Schristos`tcommand' 3219*89a07cf8Schristos This means that the postprocessor can handle the `t' and `u' 3220*89a07cf8Schristos intermediate output commands. 3221*89a07cf8Schristos 3222*89a07cf8Schristos`sizes S1 S2 ... SN 0' 3223*89a07cf8Schristos This means that the device has fonts at S1, S2, ... SN scaled 3224*89a07cf8Schristos points. The list of sizes must be terminated by 0 (this is digit 3225*89a07cf8Schristos zero). Each SI can also be a range of sizes M-N. The list can 3226*89a07cf8Schristos extend over more than one line. 3227*89a07cf8Schristos 3228*89a07cf8Schristos`styles S1 S2 ... SM' 3229*89a07cf8Schristos The first M font positions are associated with styles S1 ... SM. 3230*89a07cf8Schristos 3231*89a07cf8Schristos`fonts N F1 F2 F3 ... FN' 3232*89a07cf8Schristos Fonts F1 ... FN are mounted in the font positions M+1, ..., M+N 3233*89a07cf8Schristos where M is the number of styles. This command may extend over 3234*89a07cf8Schristos more than one line. A font name of 0 means no font is mounted on 3235*89a07cf8Schristos the corresponding font position. 3236*89a07cf8Schristos 3237*89a07cf8Schristos`family FAM' 3238*89a07cf8Schristos The default font family is FAM. 3239*89a07cf8Schristos 3240*89a07cf8Schristos`use_charnames_in_special' 3241*89a07cf8Schristos This command indicates that `gtroff' should encode special 3242*89a07cf8Schristos characters inside special commands. Currently, this is only used 3243*89a07cf8Schristos by the HTML output device. *Note Postprocessor Access::. 3244*89a07cf8Schristos 3245*89a07cf8Schristos`papersize STRING ...' 3246*89a07cf8Schristos Select a paper size. Valid values for STRING are the ISO paper 3247*89a07cf8Schristos types `A0'-`A7', `B0'-`B7', `C0'-`C7', `D0'-`D7', `DL', and the US 3248*89a07cf8Schristos paper types `letter', `legal', `tabloid', `ledger', `statement', 3249*89a07cf8Schristos `executive', `com10', and `monarch'. Case is not significant for 3250*89a07cf8Schristos STRING if it holds predefined paper types. Alternatively, STRING 3251*89a07cf8Schristos can be a file name (e.g. `/etc/papersize'); if the file can be 3252*89a07cf8Schristos opened, `groff' reads the first line and tests for the above paper 3253*89a07cf8Schristos sizes. Finally, STRING can be a custom paper size in the format 3254*89a07cf8Schristos `LENGTH,WIDTH' (no spaces before and after the comma). Both 3255*89a07cf8Schristos LENGTH and WIDTH must have a unit appended; valid values are `i' 3256*89a07cf8Schristos for inches, `C' for centimeters, `p' for points, and `P' for 3257*89a07cf8Schristos picas. Example: `12c,235p'. An argument which starts with a 3258*89a07cf8Schristos digit is always treated as a custom paper format. `papersize' 3259*89a07cf8Schristos sets both the vertical and horizontal dimension of the output 3260*89a07cf8Schristos medium. 3261*89a07cf8Schristos 3262*89a07cf8Schristos More than one argument can be specified; `groff' scans from left to 3263*89a07cf8Schristos right and uses the first valid paper specification. 3264*89a07cf8Schristos 3265*89a07cf8Schristos`pass_filenames' 3266*89a07cf8Schristos Tell `gtroff' to emit the name of the source file currently being 3267*89a07cf8Schristos processed. This is achieved by the intermediate output command 3268*89a07cf8Schristos `F'. Currently, this is only used by the HTML output device. 3269*89a07cf8Schristos 3270*89a07cf8Schristos`print PROGRAM' 3271*89a07cf8Schristos Use PROGRAM as a spooler program for printing. If omitted, the 3272*89a07cf8Schristos `-l' and `-L' options of `groff' are ignored. 3273*89a07cf8Schristos 3274*89a07cf8Schristos`charset' 3275*89a07cf8Schristos This line and everything following in the file are ignored. It is 3276*89a07cf8Schristos allowed for the sake of backwards compatibility. 3277*89a07cf8Schristos 3278*89a07cf8Schristos The `res', `unitwidth', `fonts', and `sizes' lines are mandatory. 3279*89a07cf8SchristosOther commands are ignored by `gtroff' but may be used by 3280*89a07cf8Schristospostprocessors to store arbitrary information about the device in the 3281*89a07cf8Schristos`DESC' file. 3282*89a07cf8Schristos 3283*89a07cf8Schristos Here a list of obsolete keywords which are recognized by `groff' but 3284*89a07cf8Schristoscompletely ignored: `spare1', `spare2', `biggestfont'. 3285*89a07cf8Schristos 3286*89a07cf8Schristos 3287*89a07cf8SchristosFile: groff, Node: Font File Format, Prev: DESC File Format, Up: Font Files 3288*89a07cf8Schristos 3289*89a07cf8Schristos8.2.2 Font File Format 3290*89a07cf8Schristos---------------------- 3291*89a07cf8Schristos 3292*89a07cf8SchristosA "font file", also (and probably better) called a "font description 3293*89a07cf8Schristosfile", has two sections. The first section is a sequence of lines each 3294*89a07cf8Schristoscontaining a sequence of blank delimited words; the first word in the 3295*89a07cf8Schristosline is a key, and subsequent words give a value for that key. 3296*89a07cf8Schristos 3297*89a07cf8Schristos`name F' 3298*89a07cf8Schristos The name of the font is F. 3299*89a07cf8Schristos 3300*89a07cf8Schristos`spacewidth N' 3301*89a07cf8Schristos The normal width of a space is N. 3302*89a07cf8Schristos 3303*89a07cf8Schristos`slant N' 3304*89a07cf8Schristos The glyphs of the font have a slant of N degrees. (Positive means 3305*89a07cf8Schristos forward.) 3306*89a07cf8Schristos 3307*89a07cf8Schristos`ligatures LIG1 LIG2 ... LIGN [0]' 3308*89a07cf8Schristos Glyphs LIG1, LIG2, ..., LIGN are ligatures; possible ligatures are 3309*89a07cf8Schristos `ff', `fi', `fl', `ffi' and `ffl'. For backwards compatibility, 3310*89a07cf8Schristos the list of ligatures may be terminated with a 0. The list of 3311*89a07cf8Schristos ligatures may not extend over more than one line. 3312*89a07cf8Schristos 3313*89a07cf8Schristos`special' 3314*89a07cf8Schristos The font is "special"; this means that when a glyph is requested 3315*89a07cf8Schristos that is not present in the current font, it is searched for in any 3316*89a07cf8Schristos special fonts that are mounted. 3317*89a07cf8Schristos 3318*89a07cf8Schristos Other commands are ignored by `gtroff' but may be used by 3319*89a07cf8Schristospostprocessors to store arbitrary information about the font in the font 3320*89a07cf8Schristosfile. 3321*89a07cf8Schristos 3322*89a07cf8Schristos The first section can contain comments which start with the `#' 3323*89a07cf8Schristoscharacter and extend to the end of a line. 3324*89a07cf8Schristos 3325*89a07cf8Schristos The second section contains one or two subsections. It must contain 3326*89a07cf8Schristosa `charset' subsection and it may also contain a `kernpairs' 3327*89a07cf8Schristossubsection. These subsections can appear in any order. Each 3328*89a07cf8Schristossubsection starts with a word on a line by itself. 3329*89a07cf8Schristos 3330*89a07cf8Schristos The word `charset' starts the character set subsection.(1) (*note 3331*89a07cf8SchristosFont File Format-Footnote-1::) The `charset' line is followed by a 3332*89a07cf8Schristossequence of lines. Each line gives information for one glyph. A line 3333*89a07cf8Schristoscomprises a number of fields separated by blanks or tabs. The format is 3334*89a07cf8Schristos 3335*89a07cf8Schristos NAME METRICS TYPE CODE [ENTITY-NAME] [`--' COMMENT] 3336*89a07cf8Schristos 3337*89a07cf8SchristosNAME identifies the glyph name(2) (*note Font File Format-Footnote-2::): 3338*89a07cf8SchristosIf NAME is a single character C then it corresponds to the `gtroff' 3339*89a07cf8Schristosinput character C; if it is of the form `\C' where C is a single 3340*89a07cf8Schristoscharacter, then it corresponds to the special character `\[C]'; 3341*89a07cf8Schristosotherwise it corresponds to the special character `\[NAME]'. If it is 3342*89a07cf8Schristosexactly two characters XX it can be entered as `\(XX'. Note that 3343*89a07cf8Schristossingle-letter special characters can't be accessed as `\C'; the only 3344*89a07cf8Schristosexception is `\-' which is identical to `\[-]'. 3345*89a07cf8Schristos 3346*89a07cf8Schristos `gtroff' supports 8-bit input characters; however some utilities 3347*89a07cf8Schristoshave difficulties with eight-bit characters. For this reason, there is 3348*89a07cf8Schristosa convention that the entity name `charN' is equivalent to the single 3349*89a07cf8Schristosinput character whose code is N. For example, `char163' would be 3350*89a07cf8Schristosequivalent to the character with code 163 which is the pounds sterling 3351*89a07cf8Schristossign in the ISO Latin-1 character set. You shouldn't use `charN' 3352*89a07cf8Schristosentities in font description files since they are related to input, not 3353*89a07cf8Schristosoutput. Otherwise, you get hard-coded connections between input and 3354*89a07cf8Schristosoutput encoding which prevents use of different (input) character sets. 3355*89a07cf8Schristos 3356*89a07cf8Schristos The name `---' is special and indicates that the glyph is unnamed; 3357*89a07cf8Schristossuch glyphs can only be used by means of the `\N' escape sequence in 3358*89a07cf8Schristos`gtroff'. 3359*89a07cf8Schristos 3360*89a07cf8Schristos The TYPE field gives the glyph type: 3361*89a07cf8Schristos 3362*89a07cf8Schristos`1' 3363*89a07cf8Schristos the glyph has a descender, for example, `p'; 3364*89a07cf8Schristos 3365*89a07cf8Schristos`2' 3366*89a07cf8Schristos the glyph has an ascender, for example, `b'; 3367*89a07cf8Schristos 3368*89a07cf8Schristos`3' 3369*89a07cf8Schristos the glyph has both an ascender and a descender, for example, `('. 3370*89a07cf8Schristos 3371*89a07cf8Schristos The CODE field gives the code which the postprocessor uses to print 3372*89a07cf8Schristosthe glyph. The glyph can also be input to `gtroff' using this code by 3373*89a07cf8Schristosmeans of the `\N' escape sequence. CODE can be any integer. If it 3374*89a07cf8Schristosstarts with `0' it is interpreted as octal; if it starts with `0x' or 3375*89a07cf8Schristos`0X' it is interpreted as hexadecimal. Note, however, that the `\N' 3376*89a07cf8Schristosescape sequence only accepts a decimal integer. 3377*89a07cf8Schristos 3378*89a07cf8Schristos The ENTITY-NAME field gives an ASCII string identifying the glyph 3379*89a07cf8Schristoswhich the postprocessor uses to print the `gtroff' glyph NAME. This 3380*89a07cf8Schristosfield is optional and has been introduced so that the HTML device 3381*89a07cf8Schristosdriver can encode its character set. For example, the glyph `\[Po]' is 3382*89a07cf8Schristosrepresented as `£' in HTML 4.0. 3383*89a07cf8Schristos 3384*89a07cf8Schristos Anything on the line after the ENTITY-NAME field resp. after `--' 3385*89a07cf8Schristoswill be ignored. 3386*89a07cf8Schristos 3387*89a07cf8Schristos The METRICS field has the form: 3388*89a07cf8Schristos 3389*89a07cf8Schristos WIDTH[`,'HEIGHT[`,'DEPTH[`,'ITALIC-CORRECTION 3390*89a07cf8Schristos [`,'LEFT-ITALIC-CORRECTION[`,'SUBSCRIPT-CORRECTION]]]]] 3391*89a07cf8Schristos 3392*89a07cf8SchristosThere must not be any spaces between these subfields (it has been split 3393*89a07cf8Schristoshere into two lines for better legibility only). Missing subfields are 3394*89a07cf8Schristosassumed to be 0. The subfields are all decimal integers. Since there 3395*89a07cf8Schristosis no associated binary format, these values are not required to fit 3396*89a07cf8Schristosinto a variable of type `char' as they are in `ditroff'. The WIDTH 3397*89a07cf8Schristossubfield gives the width of the glyph. The HEIGHT subfield gives the 3398*89a07cf8Schristosheight of the glyph (upwards is positive); if a glyph does not extend 3399*89a07cf8Schristosabove the baseline, it should be given a zero height, rather than a 3400*89a07cf8Schristosnegative height. The DEPTH subfield gives the depth of the glyph, that 3401*89a07cf8Schristosis, the distance from the baseline to the lowest point below the 3402*89a07cf8Schristosbaseline to which the glyph extends (downwards is positive); if a glyph 3403*89a07cf8Schristosdoes not extend below the baseline, it should be given a zero depth, 3404*89a07cf8Schristosrather than a negative depth. The ITALIC-CORRECTION subfield gives the 3405*89a07cf8Schristosamount of space that should be added after the glyph when it is 3406*89a07cf8Schristosimmediately to be followed by a glyph from a roman font. The 3407*89a07cf8SchristosLEFT-ITALIC-CORRECTION subfield gives the amount of space that should 3408*89a07cf8Schristosbe added before the glyph when it is immediately to be preceded by a 3409*89a07cf8Schristosglyph from a roman font. The SUBSCRIPT-CORRECTION gives the amount of 3410*89a07cf8Schristosspace that should be added after a glyph before adding a subscript. 3411*89a07cf8SchristosThis should be less than the italic correction. 3412*89a07cf8Schristos 3413*89a07cf8Schristos A line in the `charset' section can also have the format 3414*89a07cf8Schristos 3415*89a07cf8Schristos 3416*89a07cf8Schristos NAME " 3417*89a07cf8Schristos 3418*89a07cf8SchristosThis indicates that NAME is just another name for the glyph mentioned 3419*89a07cf8Schristosin the preceding line. 3420*89a07cf8Schristos 3421*89a07cf8Schristos The word `kernpairs' starts the kernpairs section. This contains a 3422*89a07cf8Schristossequence of lines of the form: 3423*89a07cf8Schristos 3424*89a07cf8Schristos 3425*89a07cf8Schristos C1 C2 N 3426*89a07cf8Schristos 3427*89a07cf8SchristosThis means that when glyph C1 appears next to glyph C2 the space 3428*89a07cf8Schristosbetween them should be increased by N. Most entries in the kernpairs 3429*89a07cf8Schristossection have a negative value for N. 3430*89a07cf8Schristos 3431*89a07cf8Schristos 3432*89a07cf8SchristosFile: groff, Node: Font File Format-Footnotes, Up: Font File Format 3433*89a07cf8Schristos 3434*89a07cf8Schristos (1) This keyword is misnamed since it starts a list of ordered 3435*89a07cf8Schristosglyphs, not characters. 3436*89a07cf8Schristos 3437*89a07cf8Schristos (2) The distinction between input, characters, and output, glyphs, 3438*89a07cf8Schristosis not clearly separated in the terminology of `groff'; for example, 3439*89a07cf8Schristosthe `char' request should be called `glyph' since it defines an output 3440*89a07cf8Schristosentity. 3441*89a07cf8Schristos 3442*89a07cf8Schristos 3443*89a07cf8SchristosFile: groff, Node: Installation, Next: Copying This Manual, Prev: File formats, Up: Top 3444*89a07cf8Schristos 3445*89a07cf8Schristos9 Installation 3446*89a07cf8Schristos************** 3447*89a07cf8Schristos 3448*89a07cf8Schristos 3449*89a07cf8SchristosFile: groff, Node: Copying This Manual, Next: Request Index, Prev: Installation, Up: Top 3450*89a07cf8Schristos 3451*89a07cf8SchristosAppendix A Copying This Manual 3452*89a07cf8Schristos****************************** 3453*89a07cf8Schristos 3454*89a07cf8Schristos* Menu: 3455*89a07cf8Schristos 3456*89a07cf8Schristos* GNU Free Documentation License:: License for copying this manual. 3457*89a07cf8Schristos 3458*89a07cf8Schristos 3459*89a07cf8SchristosFile: groff, Node: GNU Free Documentation License, Up: Copying This Manual 3460*89a07cf8Schristos 3461*89a07cf8SchristosA.1 GNU Free Documentation License 3462*89a07cf8Schristos================================== 3463*89a07cf8Schristos 3464*89a07cf8Schristos Version 1.2, November 2002 3465*89a07cf8Schristos 3466*89a07cf8Schristos Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 3467*89a07cf8Schristos 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 3468*89a07cf8Schristos 3469*89a07cf8Schristos Everyone is permitted to copy and distribute verbatim copies 3470*89a07cf8Schristos of this license document, but changing it is not allowed. 3471*89a07cf8Schristos 3472*89a07cf8Schristos 0. PREAMBLE 3473*89a07cf8Schristos 3474*89a07cf8Schristos The purpose of this License is to make a manual, textbook, or other 3475*89a07cf8Schristos functional and useful document "free" in the sense of freedom: to 3476*89a07cf8Schristos assure everyone the effective freedom to copy and redistribute it, 3477*89a07cf8Schristos with or without modifying it, either commercially or 3478*89a07cf8Schristos noncommercially. Secondarily, this License preserves for the 3479*89a07cf8Schristos author and publisher a way to get credit for their work, while not 3480*89a07cf8Schristos being considered responsible for modifications made by others. 3481*89a07cf8Schristos 3482*89a07cf8Schristos This License is a kind of "copyleft", which means that derivative 3483*89a07cf8Schristos works of the document must themselves be free in the same sense. 3484*89a07cf8Schristos It complements the GNU General Public License, which is a copyleft 3485*89a07cf8Schristos license designed for free software. 3486*89a07cf8Schristos 3487*89a07cf8Schristos We have designed this License in order to use it for manuals for 3488*89a07cf8Schristos free software, because free software needs free documentation: a 3489*89a07cf8Schristos free program should come with manuals providing the same freedoms 3490*89a07cf8Schristos that the software does. But this License is not limited to 3491*89a07cf8Schristos software manuals; it can be used for any textual work, regardless 3492*89a07cf8Schristos of subject matter or whether it is published as a printed book. 3493*89a07cf8Schristos We recommend this License principally for works whose purpose is 3494*89a07cf8Schristos instruction or reference. 3495*89a07cf8Schristos 3496*89a07cf8Schristos 1. APPLICABILITY AND DEFINITIONS 3497*89a07cf8Schristos 3498*89a07cf8Schristos This License applies to any manual or other work, in any medium, 3499*89a07cf8Schristos that contains a notice placed by the copyright holder saying it 3500*89a07cf8Schristos can be distributed under the terms of this License. Such a notice 3501*89a07cf8Schristos grants a world-wide, royalty-free license, unlimited in duration, 3502*89a07cf8Schristos to use that work under the conditions stated herein. The 3503*89a07cf8Schristos "Document", below, refers to any such manual or work. Any member 3504*89a07cf8Schristos of the public is a licensee, and is addressed as "you". You 3505*89a07cf8Schristos accept the license if you copy, modify or distribute the work in a 3506*89a07cf8Schristos way requiring permission under copyright law. 3507*89a07cf8Schristos 3508*89a07cf8Schristos A "Modified Version" of the Document means any work containing the 3509*89a07cf8Schristos Document or a portion of it, either copied verbatim, or with 3510*89a07cf8Schristos modifications and/or translated into another language. 3511*89a07cf8Schristos 3512*89a07cf8Schristos A "Secondary Section" is a named appendix or a front-matter section 3513*89a07cf8Schristos of the Document that deals exclusively with the relationship of the 3514*89a07cf8Schristos publishers or authors of the Document to the Document's overall 3515*89a07cf8Schristos subject (or to related matters) and contains nothing that could 3516*89a07cf8Schristos fall directly within that overall subject. (Thus, if the Document 3517*89a07cf8Schristos is in part a textbook of mathematics, a Secondary Section may not 3518*89a07cf8Schristos explain any mathematics.) The relationship could be a matter of 3519*89a07cf8Schristos historical connection with the subject or with related matters, or 3520*89a07cf8Schristos of legal, commercial, philosophical, ethical or political position 3521*89a07cf8Schristos regarding them. 3522*89a07cf8Schristos 3523*89a07cf8Schristos The "Invariant Sections" are certain Secondary Sections whose 3524*89a07cf8Schristos titles are designated, as being those of Invariant Sections, in 3525*89a07cf8Schristos the notice that says that the Document is released under this 3526*89a07cf8Schristos License. If a section does not fit the above definition of 3527*89a07cf8Schristos Secondary then it is not allowed to be designated as Invariant. 3528*89a07cf8Schristos The Document may contain zero Invariant Sections. If the Document 3529*89a07cf8Schristos does not identify any Invariant Sections then there are none. 3530*89a07cf8Schristos 3531*89a07cf8Schristos The "Cover Texts" are certain short passages of text that are 3532*89a07cf8Schristos listed, as Front-Cover Texts or Back-Cover Texts, in the notice 3533*89a07cf8Schristos that says that the Document is released under this License. A 3534*89a07cf8Schristos Front-Cover Text may be at most 5 words, and a Back-Cover Text may 3535*89a07cf8Schristos be at most 25 words. 3536*89a07cf8Schristos 3537*89a07cf8Schristos A "Transparent" copy of the Document means a machine-readable copy, 3538*89a07cf8Schristos represented in a format whose specification is available to the 3539*89a07cf8Schristos general public, that is suitable for revising the document 3540*89a07cf8Schristos straightforwardly with generic text editors or (for images 3541*89a07cf8Schristos composed of pixels) generic paint programs or (for drawings) some 3542*89a07cf8Schristos widely available drawing editor, and that is suitable for input to 3543*89a07cf8Schristos text formatters or for automatic translation to a variety of 3544*89a07cf8Schristos formats suitable for input to text formatters. A copy made in an 3545*89a07cf8Schristos otherwise Transparent file format whose markup, or absence of 3546*89a07cf8Schristos markup, has been arranged to thwart or discourage subsequent 3547*89a07cf8Schristos modification by readers is not Transparent. An image format is 3548*89a07cf8Schristos not Transparent if used for any substantial amount of text. A 3549*89a07cf8Schristos copy that is not "Transparent" is called "Opaque". 3550*89a07cf8Schristos 3551*89a07cf8Schristos Examples of suitable formats for Transparent copies include plain 3552*89a07cf8Schristos ASCII without markup, Texinfo input format, LaTeX input format, 3553*89a07cf8Schristos SGML or XML using a publicly available DTD, and 3554*89a07cf8Schristos standard-conforming simple HTML, PostScript or PDF designed for 3555*89a07cf8Schristos human modification. Examples of transparent image formats include 3556*89a07cf8Schristos PNG, XCF and JPG. Opaque formats include proprietary formats that 3557*89a07cf8Schristos can be read and edited only by proprietary word processors, SGML or 3558*89a07cf8Schristos XML for which the DTD and/or processing tools are not generally 3559*89a07cf8Schristos available, and the machine-generated HTML, PostScript or PDF 3560*89a07cf8Schristos produced by some word processors for output purposes only. 3561*89a07cf8Schristos 3562*89a07cf8Schristos The "Title Page" means, for a printed book, the title page itself, 3563*89a07cf8Schristos plus such following pages as are needed to hold, legibly, the 3564*89a07cf8Schristos material this License requires to appear in the title page. For 3565*89a07cf8Schristos works in formats which do not have any title page as such, "Title 3566*89a07cf8Schristos Page" means the text near the most prominent appearance of the 3567*89a07cf8Schristos work's title, preceding the beginning of the body of the text. 3568*89a07cf8Schristos 3569*89a07cf8Schristos A section "Entitled XYZ" means a named subunit of the Document 3570*89a07cf8Schristos whose title either is precisely XYZ or contains XYZ in parentheses 3571*89a07cf8Schristos following text that translates XYZ in another language. (Here XYZ 3572*89a07cf8Schristos stands for a specific section name mentioned below, such as 3573*89a07cf8Schristos "Acknowledgements", "Dedications", "Endorsements", or "History".) 3574*89a07cf8Schristos To "Preserve the Title" of such a section when you modify the 3575*89a07cf8Schristos Document means that it remains a section "Entitled XYZ" according 3576*89a07cf8Schristos to this definition. 3577*89a07cf8Schristos 3578*89a07cf8Schristos The Document may include Warranty Disclaimers next to the notice 3579*89a07cf8Schristos which states that this License applies to the Document. These 3580*89a07cf8Schristos Warranty Disclaimers are considered to be included by reference in 3581*89a07cf8Schristos this License, but only as regards disclaiming warranties: any other 3582*89a07cf8Schristos implication that these Warranty Disclaimers may have is void and 3583*89a07cf8Schristos has no effect on the meaning of this License. 3584*89a07cf8Schristos 3585*89a07cf8Schristos 2. VERBATIM COPYING 3586*89a07cf8Schristos 3587*89a07cf8Schristos You may copy and distribute the Document in any medium, either 3588*89a07cf8Schristos commercially or noncommercially, provided that this License, the 3589*89a07cf8Schristos copyright notices, and the license notice saying this License 3590*89a07cf8Schristos applies to the Document are reproduced in all copies, and that you 3591*89a07cf8Schristos add no other conditions whatsoever to those of this License. You 3592*89a07cf8Schristos may not use technical measures to obstruct or control the reading 3593*89a07cf8Schristos or further copying of the copies you make or distribute. However, 3594*89a07cf8Schristos you may accept compensation in exchange for copies. If you 3595*89a07cf8Schristos distribute a large enough number of copies you must also follow 3596*89a07cf8Schristos the conditions in section 3. 3597*89a07cf8Schristos 3598*89a07cf8Schristos You may also lend copies, under the same conditions stated above, 3599*89a07cf8Schristos and you may publicly display copies. 3600*89a07cf8Schristos 3601*89a07cf8Schristos 3. COPYING IN QUANTITY 3602*89a07cf8Schristos 3603*89a07cf8Schristos If you publish printed copies (or copies in media that commonly 3604*89a07cf8Schristos have printed covers) of the Document, numbering more than 100, and 3605*89a07cf8Schristos the Document's license notice requires Cover Texts, you must 3606*89a07cf8Schristos enclose the copies in covers that carry, clearly and legibly, all 3607*89a07cf8Schristos these Cover Texts: Front-Cover Texts on the front cover, and 3608*89a07cf8Schristos Back-Cover Texts on the back cover. Both covers must also clearly 3609*89a07cf8Schristos and legibly identify you as the publisher of these copies. The 3610*89a07cf8Schristos front cover must present the full title with all words of the 3611*89a07cf8Schristos title equally prominent and visible. You may add other material 3612*89a07cf8Schristos on the covers in addition. Copying with changes limited to the 3613*89a07cf8Schristos covers, as long as they preserve the title of the Document and 3614*89a07cf8Schristos satisfy these conditions, can be treated as verbatim copying in 3615*89a07cf8Schristos other respects. 3616*89a07cf8Schristos 3617*89a07cf8Schristos If the required texts for either cover are too voluminous to fit 3618*89a07cf8Schristos legibly, you should put the first ones listed (as many as fit 3619*89a07cf8Schristos reasonably) on the actual cover, and continue the rest onto 3620*89a07cf8Schristos adjacent pages. 3621*89a07cf8Schristos 3622*89a07cf8Schristos If you publish or distribute Opaque copies of the Document 3623*89a07cf8Schristos numbering more than 100, you must either include a 3624*89a07cf8Schristos machine-readable Transparent copy along with each Opaque copy, or 3625*89a07cf8Schristos state in or with each Opaque copy a computer-network location from 3626*89a07cf8Schristos which the general network-using public has access to download 3627*89a07cf8Schristos using public-standard network protocols a complete Transparent 3628*89a07cf8Schristos copy of the Document, free of added material. If you use the 3629*89a07cf8Schristos latter option, you must take reasonably prudent steps, when you 3630*89a07cf8Schristos begin distribution of Opaque copies in quantity, to ensure that 3631*89a07cf8Schristos this Transparent copy will remain thus accessible at the stated 3632*89a07cf8Schristos location until at least one year after the last time you 3633*89a07cf8Schristos distribute an Opaque copy (directly or through your agents or 3634*89a07cf8Schristos retailers) of that edition to the public. 3635*89a07cf8Schristos 3636*89a07cf8Schristos It is requested, but not required, that you contact the authors of 3637*89a07cf8Schristos the Document well before redistributing any large number of 3638*89a07cf8Schristos copies, to give them a chance to provide you with an updated 3639*89a07cf8Schristos version of the Document. 3640*89a07cf8Schristos 3641*89a07cf8Schristos 4. MODIFICATIONS 3642*89a07cf8Schristos 3643*89a07cf8Schristos You may copy and distribute a Modified Version of the Document 3644*89a07cf8Schristos under the conditions of sections 2 and 3 above, provided that you 3645*89a07cf8Schristos release the Modified Version under precisely this License, with 3646*89a07cf8Schristos the Modified Version filling the role of the Document, thus 3647*89a07cf8Schristos licensing distribution and modification of the Modified Version to 3648*89a07cf8Schristos whoever possesses a copy of it. In addition, you must do these 3649*89a07cf8Schristos things in the Modified Version: 3650*89a07cf8Schristos 3651*89a07cf8Schristos A. Use in the Title Page (and on the covers, if any) a title 3652*89a07cf8Schristos distinct from that of the Document, and from those of 3653*89a07cf8Schristos previous versions (which should, if there were any, be listed 3654*89a07cf8Schristos in the History section of the Document). You may use the 3655*89a07cf8Schristos same title as a previous version if the original publisher of 3656*89a07cf8Schristos that version gives permission. 3657*89a07cf8Schristos 3658*89a07cf8Schristos B. List on the Title Page, as authors, one or more persons or 3659*89a07cf8Schristos entities responsible for authorship of the modifications in 3660*89a07cf8Schristos the Modified Version, together with at least five of the 3661*89a07cf8Schristos principal authors of the Document (all of its principal 3662*89a07cf8Schristos authors, if it has fewer than five), unless they release you 3663*89a07cf8Schristos from this requirement. 3664*89a07cf8Schristos 3665*89a07cf8Schristos C. State on the Title page the name of the publisher of the 3666*89a07cf8Schristos Modified Version, as the publisher. 3667*89a07cf8Schristos 3668*89a07cf8Schristos D. Preserve all the copyright notices of the Document. 3669*89a07cf8Schristos 3670*89a07cf8Schristos E. Add an appropriate copyright notice for your modifications 3671*89a07cf8Schristos adjacent to the other copyright notices. 3672*89a07cf8Schristos 3673*89a07cf8Schristos F. Include, immediately after the copyright notices, a license 3674*89a07cf8Schristos notice giving the public permission to use the Modified 3675*89a07cf8Schristos Version under the terms of this License, in the form shown in 3676*89a07cf8Schristos the Addendum below. 3677*89a07cf8Schristos 3678*89a07cf8Schristos G. Preserve in that license notice the full lists of Invariant 3679*89a07cf8Schristos Sections and required Cover Texts given in the Document's 3680*89a07cf8Schristos license notice. 3681*89a07cf8Schristos 3682*89a07cf8Schristos H. Include an unaltered copy of this License. 3683*89a07cf8Schristos 3684*89a07cf8Schristos I. Preserve the section Entitled "History", Preserve its Title, 3685*89a07cf8Schristos and add to it an item stating at least the title, year, new 3686*89a07cf8Schristos authors, and publisher of the Modified Version as given on 3687*89a07cf8Schristos the Title Page. If there is no section Entitled "History" in 3688*89a07cf8Schristos the Document, create one stating the title, year, authors, 3689*89a07cf8Schristos and publisher of the Document as given on its Title Page, 3690*89a07cf8Schristos then add an item describing the Modified Version as stated in 3691*89a07cf8Schristos the previous sentence. 3692*89a07cf8Schristos 3693*89a07cf8Schristos J. Preserve the network location, if any, given in the Document 3694*89a07cf8Schristos for public access to a Transparent copy of the Document, and 3695*89a07cf8Schristos likewise the network locations given in the Document for 3696*89a07cf8Schristos previous versions it was based on. These may be placed in 3697*89a07cf8Schristos the "History" section. You may omit a network location for a 3698*89a07cf8Schristos work that was published at least four years before the 3699*89a07cf8Schristos Document itself, or if the original publisher of the version 3700*89a07cf8Schristos it refers to gives permission. 3701*89a07cf8Schristos 3702*89a07cf8Schristos K. For any section Entitled "Acknowledgements" or "Dedications", 3703*89a07cf8Schristos Preserve the Title of the section, and preserve in the 3704*89a07cf8Schristos section all the substance and tone of each of the contributor 3705*89a07cf8Schristos acknowledgements and/or dedications given therein. 3706*89a07cf8Schristos 3707*89a07cf8Schristos L. Preserve all the Invariant Sections of the Document, 3708*89a07cf8Schristos unaltered in their text and in their titles. Section numbers 3709*89a07cf8Schristos or the equivalent are not considered part of the section 3710*89a07cf8Schristos titles. 3711*89a07cf8Schristos 3712*89a07cf8Schristos M. Delete any section Entitled "Endorsements". Such a section 3713*89a07cf8Schristos may not be included in the Modified Version. 3714*89a07cf8Schristos 3715*89a07cf8Schristos N. Do not retitle any existing section to be Entitled 3716*89a07cf8Schristos "Endorsements" or to conflict in title with any Invariant 3717*89a07cf8Schristos Section. 3718*89a07cf8Schristos 3719*89a07cf8Schristos O. Preserve any Warranty Disclaimers. 3720*89a07cf8Schristos 3721*89a07cf8Schristos If the Modified Version includes new front-matter sections or 3722*89a07cf8Schristos appendices that qualify as Secondary Sections and contain no 3723*89a07cf8Schristos material copied from the Document, you may at your option 3724*89a07cf8Schristos designate some or all of these sections as invariant. To do this, 3725*89a07cf8Schristos add their titles to the list of Invariant Sections in the Modified 3726*89a07cf8Schristos Version's license notice. These titles must be distinct from any 3727*89a07cf8Schristos other section titles. 3728*89a07cf8Schristos 3729*89a07cf8Schristos You may add a section Entitled "Endorsements", provided it contains 3730*89a07cf8Schristos nothing but endorsements of your Modified Version by various 3731*89a07cf8Schristos parties--for example, statements of peer review or that the text 3732*89a07cf8Schristos has been approved by an organization as the authoritative 3733*89a07cf8Schristos definition of a standard. 3734*89a07cf8Schristos 3735*89a07cf8Schristos You may add a passage of up to five words as a Front-Cover Text, 3736*89a07cf8Schristos and a passage of up to 25 words as a Back-Cover Text, to the end 3737*89a07cf8Schristos of the list of Cover Texts in the Modified Version. Only one 3738*89a07cf8Schristos passage of Front-Cover Text and one of Back-Cover Text may be 3739*89a07cf8Schristos added by (or through arrangements made by) any one entity. If the 3740*89a07cf8Schristos Document already includes a cover text for the same cover, 3741*89a07cf8Schristos previously added by you or by arrangement made by the same entity 3742*89a07cf8Schristos you are acting on behalf of, you may not add another; but you may 3743*89a07cf8Schristos replace the old one, on explicit permission from the previous 3744*89a07cf8Schristos publisher that added the old one. 3745*89a07cf8Schristos 3746*89a07cf8Schristos The author(s) and publisher(s) of the Document do not by this 3747*89a07cf8Schristos License give permission to use their names for publicity for or to 3748*89a07cf8Schristos assert or imply endorsement of any Modified Version. 3749*89a07cf8Schristos 3750*89a07cf8Schristos 5. COMBINING DOCUMENTS 3751*89a07cf8Schristos 3752*89a07cf8Schristos You may combine the Document with other documents released under 3753*89a07cf8Schristos this License, under the terms defined in section 4 above for 3754*89a07cf8Schristos modified versions, provided that you include in the combination 3755*89a07cf8Schristos all of the Invariant Sections of all of the original documents, 3756*89a07cf8Schristos unmodified, and list them all as Invariant Sections of your 3757*89a07cf8Schristos combined work in its license notice, and that you preserve all 3758*89a07cf8Schristos their Warranty Disclaimers. 3759*89a07cf8Schristos 3760*89a07cf8Schristos The combined work need only contain one copy of this License, and 3761*89a07cf8Schristos multiple identical Invariant Sections may be replaced with a single 3762*89a07cf8Schristos copy. If there are multiple Invariant Sections with the same name 3763*89a07cf8Schristos but different contents, make the title of each such section unique 3764*89a07cf8Schristos by adding at the end of it, in parentheses, the name of the 3765*89a07cf8Schristos original author or publisher of that section if known, or else a 3766*89a07cf8Schristos unique number. Make the same adjustment to the section titles in 3767*89a07cf8Schristos the list of Invariant Sections in the license notice of the 3768*89a07cf8Schristos combined work. 3769*89a07cf8Schristos 3770*89a07cf8Schristos In the combination, you must combine any sections Entitled 3771*89a07cf8Schristos "History" in the various original documents, forming one section 3772*89a07cf8Schristos Entitled "History"; likewise combine any sections Entitled 3773*89a07cf8Schristos "Acknowledgements", and any sections Entitled "Dedications". You 3774*89a07cf8Schristos must delete all sections Entitled "Endorsements." 3775*89a07cf8Schristos 3776*89a07cf8Schristos 6. COLLECTIONS OF DOCUMENTS 3777*89a07cf8Schristos 3778*89a07cf8Schristos You may make a collection consisting of the Document and other 3779*89a07cf8Schristos documents released under this License, and replace the individual 3780*89a07cf8Schristos copies of this License in the various documents with a single copy 3781*89a07cf8Schristos that is included in the collection, provided that you follow the 3782*89a07cf8Schristos rules of this License for verbatim copying of each of the 3783*89a07cf8Schristos documents in all other respects. 3784*89a07cf8Schristos 3785*89a07cf8Schristos You may extract a single document from such a collection, and 3786*89a07cf8Schristos distribute it individually under this License, provided you insert 3787*89a07cf8Schristos a copy of this License into the extracted document, and follow 3788*89a07cf8Schristos this License in all other respects regarding verbatim copying of 3789*89a07cf8Schristos that document. 3790*89a07cf8Schristos 3791*89a07cf8Schristos 7. AGGREGATION WITH INDEPENDENT WORKS 3792*89a07cf8Schristos 3793*89a07cf8Schristos A compilation of the Document or its derivatives with other 3794*89a07cf8Schristos separate and independent documents or works, in or on a volume of 3795*89a07cf8Schristos a storage or distribution medium, is called an "aggregate" if the 3796*89a07cf8Schristos copyright resulting from the compilation is not used to limit the 3797*89a07cf8Schristos legal rights of the compilation's users beyond what the individual 3798*89a07cf8Schristos works permit. When the Document is included in an aggregate, this 3799*89a07cf8Schristos License does not apply to the other works in the aggregate which 3800*89a07cf8Schristos are not themselves derivative works of the Document. 3801*89a07cf8Schristos 3802*89a07cf8Schristos If the Cover Text requirement of section 3 is applicable to these 3803*89a07cf8Schristos copies of the Document, then if the Document is less than one half 3804*89a07cf8Schristos of the entire aggregate, the Document's Cover Texts may be placed 3805*89a07cf8Schristos on covers that bracket the Document within the aggregate, or the 3806*89a07cf8Schristos electronic equivalent of covers if the Document is in electronic 3807*89a07cf8Schristos form. Otherwise they must appear on printed covers that bracket 3808*89a07cf8Schristos the whole aggregate. 3809*89a07cf8Schristos 3810*89a07cf8Schristos 8. TRANSLATION 3811*89a07cf8Schristos 3812*89a07cf8Schristos Translation is considered a kind of modification, so you may 3813*89a07cf8Schristos distribute translations of the Document under the terms of section 3814*89a07cf8Schristos 4. Replacing Invariant Sections with translations requires special 3815*89a07cf8Schristos permission from their copyright holders, but you may include 3816*89a07cf8Schristos translations of some or all Invariant Sections in addition to the 3817*89a07cf8Schristos original versions of these Invariant Sections. You may include a 3818*89a07cf8Schristos translation of this License, and all the license notices in the 3819*89a07cf8Schristos Document, and any Warranty Disclaimers, provided that you also 3820*89a07cf8Schristos include the original English version of this License and the 3821*89a07cf8Schristos original versions of those notices and disclaimers. In case of a 3822*89a07cf8Schristos disagreement between the translation and the original version of 3823*89a07cf8Schristos this License or a notice or disclaimer, the original version will 3824*89a07cf8Schristos prevail. 3825*89a07cf8Schristos 3826*89a07cf8Schristos If a section in the Document is Entitled "Acknowledgements", 3827*89a07cf8Schristos "Dedications", or "History", the requirement (section 4) to 3828*89a07cf8Schristos Preserve its Title (section 1) will typically require changing the 3829*89a07cf8Schristos actual title. 3830*89a07cf8Schristos 3831*89a07cf8Schristos 9. TERMINATION 3832*89a07cf8Schristos 3833*89a07cf8Schristos You may not copy, modify, sublicense, or distribute the Document 3834*89a07cf8Schristos except as expressly provided for under this License. Any other 3835*89a07cf8Schristos attempt to copy, modify, sublicense or distribute the Document is 3836*89a07cf8Schristos void, and will automatically terminate your rights under this 3837*89a07cf8Schristos License. However, parties who have received copies, or rights, 3838*89a07cf8Schristos from you under this License will not have their licenses 3839*89a07cf8Schristos terminated so long as such parties remain in full compliance. 3840*89a07cf8Schristos 3841*89a07cf8Schristos 10. FUTURE REVISIONS OF THIS LICENSE 3842*89a07cf8Schristos 3843*89a07cf8Schristos The Free Software Foundation may publish new, revised versions of 3844*89a07cf8Schristos the GNU Free Documentation License from time to time. Such new 3845*89a07cf8Schristos versions will be similar in spirit to the present version, but may 3846*89a07cf8Schristos differ in detail to address new problems or concerns. See 3847*89a07cf8Schristos `http://www.gnu.org/copyleft/'. 3848*89a07cf8Schristos 3849*89a07cf8Schristos Each version of the License is given a distinguishing version 3850*89a07cf8Schristos number. If the Document specifies that a particular numbered 3851*89a07cf8Schristos version of this License "or any later version" applies to it, you 3852*89a07cf8Schristos have the option of following the terms and conditions either of 3853*89a07cf8Schristos that specified version or of any later version that has been 3854*89a07cf8Schristos published (not as a draft) by the Free Software Foundation. If 3855*89a07cf8Schristos the Document does not specify a version number of this License, 3856*89a07cf8Schristos you may choose any version ever published (not as a draft) by the 3857*89a07cf8Schristos Free Software Foundation. 3858*89a07cf8Schristos 3859*89a07cf8SchristosA.1.1 ADDENDUM: How to use this License for your documents 3860*89a07cf8Schristos---------------------------------------------------------- 3861*89a07cf8Schristos 3862*89a07cf8SchristosTo use this License in a document you have written, include a copy of 3863*89a07cf8Schristosthe License in the document and put the following copyright and license 3864*89a07cf8Schristosnotices just after the title page: 3865*89a07cf8Schristos 3866*89a07cf8Schristos Copyright (C) YEAR YOUR NAME. 3867*89a07cf8Schristos Permission is granted to copy, distribute and/or modify this document 3868*89a07cf8Schristos under the terms of the GNU Free Documentation License, Version 1.2 3869*89a07cf8Schristos or any later version published by the Free Software Foundation; 3870*89a07cf8Schristos with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 3871*89a07cf8Schristos Texts. A copy of the license is included in the section entitled ``GNU 3872*89a07cf8Schristos Free Documentation License''. 3873*89a07cf8Schristos 3874*89a07cf8Schristos If you have Invariant Sections, Front-Cover Texts and Back-Cover 3875*89a07cf8SchristosTexts, replace the "with...Texts." line with this: 3876*89a07cf8Schristos 3877*89a07cf8Schristos with the Invariant Sections being LIST THEIR TITLES, with 3878*89a07cf8Schristos the Front-Cover Texts being LIST, and with the Back-Cover Texts 3879*89a07cf8Schristos being LIST. 3880*89a07cf8Schristos 3881*89a07cf8Schristos If you have Invariant Sections without Cover Texts, or some other 3882*89a07cf8Schristoscombination of the three, merge those two alternatives to suit the 3883*89a07cf8Schristossituation. 3884*89a07cf8Schristos 3885*89a07cf8Schristos If your document contains nontrivial examples of program code, we 3886*89a07cf8Schristosrecommend releasing these examples in parallel under your choice of 3887*89a07cf8Schristosfree software license, such as the GNU General Public License, to 3888*89a07cf8Schristospermit their use in free software. 3889*89a07cf8Schristos 3890*89a07cf8Schristos 3891*89a07cf8SchristosFile: groff, Node: Request Index, Next: Escape Index, Prev: Copying This Manual, Up: Top 3892*89a07cf8Schristos 3893*89a07cf8SchristosAppendix B Request Index 3894*89a07cf8Schristos************************ 3895*89a07cf8Schristos 3896*89a07cf8SchristosRequests appear without the leading control character (normally either 3897*89a07cf8Schristos`.' or `''). 3898*89a07cf8Schristos 3899*89a07cf8Schristos[index] 3900*89a07cf8Schristos* Menu: 3901*89a07cf8Schristos 3902*89a07cf8Schristos* ab: Debugging. (line 40) 3903*89a07cf8Schristos* ad: Manipulating Filling and Adjusting. 3904*89a07cf8Schristos (line 52) 3905*89a07cf8Schristos* af: Assigning Formats. (line 13) 3906*89a07cf8Schristos* aln: Setting Registers. (line 79) 3907*89a07cf8Schristos* als: Strings. (line 224) 3908*89a07cf8Schristos* am: Writing Macros. (line 107) 3909*89a07cf8Schristos* am1: Writing Macros. (line 108) 3910*89a07cf8Schristos* ami: Writing Macros. (line 109) 3911*89a07cf8Schristos* ami1: Writing Macros. (line 110) 3912*89a07cf8Schristos* as: Strings. (line 170) 3913*89a07cf8Schristos* as1: Strings. (line 171) 3914*89a07cf8Schristos* asciify: Diversions. (line 195) 3915*89a07cf8Schristos* backtrace: Debugging. (line 94) 3916*89a07cf8Schristos* bd: Artificial Fonts. (line 96) 3917*89a07cf8Schristos* blm: Blank Line Traps. (line 7) 3918*89a07cf8Schristos* box: Diversions. (line 25) 3919*89a07cf8Schristos* boxa: Diversions. (line 26) 3920*89a07cf8Schristos* bp: Page Control. (line 7) 3921*89a07cf8Schristos* br: Manipulating Filling and Adjusting. 3922*89a07cf8Schristos (line 12) 3923*89a07cf8Schristos* break: while. (line 73) 3924*89a07cf8Schristos* brp: Manipulating Filling and Adjusting. 3925*89a07cf8Schristos (line 112) 3926*89a07cf8Schristos* c2: Character Translations. 3927*89a07cf8Schristos (line 16) 3928*89a07cf8Schristos* cc: Character Translations. 3929*89a07cf8Schristos (line 10) 3930*89a07cf8Schristos* ce: Manipulating Filling and Adjusting. 3931*89a07cf8Schristos (line 189) 3932*89a07cf8Schristos* cf: I/O. (line 49) 3933*89a07cf8Schristos* cflags: Using Symbols. (line 241) 3934*89a07cf8Schristos* ch: Page Location Traps. (line 106) 3935*89a07cf8Schristos* char: Using Symbols. (line 281) 3936*89a07cf8Schristos* chop: Strings. (line 231) 3937*89a07cf8Schristos* close: I/O. (line 230) 3938*89a07cf8Schristos* color: Colors. (line 7) 3939*89a07cf8Schristos* composite: Using Symbols. (line 197) 3940*89a07cf8Schristos* continue: while. (line 77) 3941*89a07cf8Schristos* cp: Implementation Differences. 3942*89a07cf8Schristos (line 23) 3943*89a07cf8Schristos* cs: Artificial Fonts. (line 127) 3944*89a07cf8Schristos* cu: Artificial Fonts. (line 87) 3945*89a07cf8Schristos* da: Diversions. (line 18) 3946*89a07cf8Schristos* de: Writing Macros. (line 10) 3947*89a07cf8Schristos* de1: Writing Macros. (line 11) 3948*89a07cf8Schristos* defcolor: Colors. (line 21) 3949*89a07cf8Schristos* dei: Writing Macros. (line 12) 3950*89a07cf8Schristos* dei1: Writing Macros. (line 13) 3951*89a07cf8Schristos* di: Diversions. (line 17) 3952*89a07cf8Schristos* do: Implementation Differences. 3953*89a07cf8Schristos (line 24) 3954*89a07cf8Schristos* ds: Strings. (line 11) 3955*89a07cf8Schristos* ds1: Strings. (line 12) 3956*89a07cf8Schristos* dt: Diversion Traps. (line 7) 3957*89a07cf8Schristos* ec: Character Translations. 3958*89a07cf8Schristos (line 47) 3959*89a07cf8Schristos* ecr: Character Translations. 3960*89a07cf8Schristos (line 59) 3961*89a07cf8Schristos* ecs: Character Translations. 3962*89a07cf8Schristos (line 58) 3963*89a07cf8Schristos* el: if-else. (line 28) 3964*89a07cf8Schristos* em: End-of-input Traps. (line 7) 3965*89a07cf8Schristos* eo: Character Translations. 3966*89a07cf8Schristos (line 22) 3967*89a07cf8Schristos* ev: Environments. (line 38) 3968*89a07cf8Schristos* evc: Environments. (line 72) 3969*89a07cf8Schristos* ex: Debugging. (line 45) 3970*89a07cf8Schristos* fam: Font Families. (line 19) 3971*89a07cf8Schristos* fc: Fields. (line 18) 3972*89a07cf8Schristos* fchar: Using Symbols. (line 282) 3973*89a07cf8Schristos* fcolor: Colors. (line 85) 3974*89a07cf8Schristos* fi: Manipulating Filling and Adjusting. 3975*89a07cf8Schristos (line 30) 3976*89a07cf8Schristos* fl: Debugging. (line 85) 3977*89a07cf8Schristos* fp: Font Positions. (line 11) 3978*89a07cf8Schristos* fschar: Using Symbols. (line 283) 3979*89a07cf8Schristos* fspecial: Special Fonts. (line 18) 3980*89a07cf8Schristos* ft <1>: Font Positions. (line 58) 3981*89a07cf8Schristos* ft: Changing Fonts. (line 7) 3982*89a07cf8Schristos* ftr: Changing Fonts. (line 53) 3983*89a07cf8Schristos* gcolor: Colors. (line 51) 3984*89a07cf8Schristos* hc: Manipulating Hyphenation. 3985*89a07cf8Schristos (line 105) 3986*89a07cf8Schristos* hcode: Manipulating Hyphenation. 3987*89a07cf8Schristos (line 174) 3988*89a07cf8Schristos* hla: Manipulating Hyphenation. 3989*89a07cf8Schristos (line 253) 3990*89a07cf8Schristos* hlm: Manipulating Hyphenation. 3991*89a07cf8Schristos (line 45) 3992*89a07cf8Schristos* hpf: Manipulating Hyphenation. 3993*89a07cf8Schristos (line 114) 3994*89a07cf8Schristos* hpfa: Manipulating Hyphenation. 3995*89a07cf8Schristos (line 115) 3996*89a07cf8Schristos* hpfcode: Manipulating Hyphenation. 3997*89a07cf8Schristos (line 116) 3998*89a07cf8Schristos* hw: Manipulating Hyphenation. 3999*89a07cf8Schristos (line 61) 4000*89a07cf8Schristos* hy: Manipulating Hyphenation. 4001*89a07cf8Schristos (line 9) 4002*89a07cf8Schristos* hym: Manipulating Hyphenation. 4003*89a07cf8Schristos (line 209) 4004*89a07cf8Schristos* hys: Manipulating Hyphenation. 4005*89a07cf8Schristos (line 224) 4006*89a07cf8Schristos* ie: if-else. (line 27) 4007*89a07cf8Schristos* if: if-else. (line 10) 4008*89a07cf8Schristos* ig: Comments. (line 67) 4009*89a07cf8Schristos* in: Line Layout. (line 91) 4010*89a07cf8Schristos* it: Input Line Traps. (line 7) 4011*89a07cf8Schristos* itc: Input Line Traps. (line 8) 4012*89a07cf8Schristos* kern: Ligatures and Kerning. 4013*89a07cf8Schristos (line 41) 4014*89a07cf8Schristos* lc: Leaders. (line 23) 4015*89a07cf8Schristos* length: Strings. (line 204) 4016*89a07cf8Schristos* lf: Debugging. (line 10) 4017*89a07cf8Schristos* lg: Ligatures and Kerning. 4018*89a07cf8Schristos (line 23) 4019*89a07cf8Schristos* linetabs: Tabs and Fields. (line 147) 4020*89a07cf8Schristos* ll: Line Layout. (line 145) 4021*89a07cf8Schristos* ls: Manipulating Spacing. 4022*89a07cf8Schristos (line 51) 4023*89a07cf8Schristos* lt: Page Layout. (line 60) 4024*89a07cf8Schristos* mc: Miscellaneous. (line 76) 4025*89a07cf8Schristos* mk: Page Motions. (line 10) 4026*89a07cf8Schristos* mso: I/O. (line 41) 4027*89a07cf8Schristos* na: Manipulating Filling and Adjusting. 4028*89a07cf8Schristos (line 104) 4029*89a07cf8Schristos* ne: Page Control. (line 34) 4030*89a07cf8Schristos* nf: Manipulating Filling and Adjusting. 4031*89a07cf8Schristos (line 41) 4032*89a07cf8Schristos* nh: Manipulating Hyphenation. 4033*89a07cf8Schristos (line 37) 4034*89a07cf8Schristos* nm: Miscellaneous. (line 10) 4035*89a07cf8Schristos* nn: Miscellaneous. (line 72) 4036*89a07cf8Schristos* nop: if-else. (line 24) 4037*89a07cf8Schristos* nr <1>: Auto-increment. (line 11) 4038*89a07cf8Schristos* nr: Setting Registers. (line 9) 4039*89a07cf8Schristos* nroff: Troff and Nroff Mode. 4040*89a07cf8Schristos (line 32) 4041*89a07cf8Schristos* ns: Manipulating Spacing. 4042*89a07cf8Schristos (line 113) 4043*89a07cf8Schristos* nx: I/O. (line 74) 4044*89a07cf8Schristos* open: I/O. (line 198) 4045*89a07cf8Schristos* opena: I/O. (line 199) 4046*89a07cf8Schristos* os: Page Control. (line 55) 4047*89a07cf8Schristos* output: Diversions. (line 180) 4048*89a07cf8Schristos* pc: Page Layout. (line 89) 4049*89a07cf8Schristos* pi: I/O. (line 138) 4050*89a07cf8Schristos* pl: Page Layout. (line 10) 4051*89a07cf8Schristos* pm: Debugging. (line 64) 4052*89a07cf8Schristos* pn: Page Layout. (line 77) 4053*89a07cf8Schristos* pnr: Debugging. (line 75) 4054*89a07cf8Schristos* po: Line Layout. (line 61) 4055*89a07cf8Schristos* ps: Changing Type Sizes. (line 7) 4056*89a07cf8Schristos* psbb: Miscellaneous. (line 141) 4057*89a07cf8Schristos* pso: I/O. (line 30) 4058*89a07cf8Schristos* ptr: Debugging. (line 79) 4059*89a07cf8Schristos* pvs: Changing Type Sizes. (line 133) 4060*89a07cf8Schristos* rchar: Using Symbols. (line 340) 4061*89a07cf8Schristos* rd: I/O. (line 79) 4062*89a07cf8Schristos* return: Writing Macros. (line 143) 4063*89a07cf8Schristos* rfschar: Using Symbols. (line 341) 4064*89a07cf8Schristos* rj: Manipulating Filling and Adjusting. 4065*89a07cf8Schristos (line 238) 4066*89a07cf8Schristos* rm: Strings. (line 219) 4067*89a07cf8Schristos* rn: Strings. (line 216) 4068*89a07cf8Schristos* rnn: Setting Registers. (line 75) 4069*89a07cf8Schristos* rr: Setting Registers. (line 71) 4070*89a07cf8Schristos* rs: Manipulating Spacing. 4071*89a07cf8Schristos (line 114) 4072*89a07cf8Schristos* rt: Page Motions. (line 11) 4073*89a07cf8Schristos* schar: Using Symbols. (line 284) 4074*89a07cf8Schristos* shc: Manipulating Hyphenation. 4075*89a07cf8Schristos (line 240) 4076*89a07cf8Schristos* shift: Parameters. (line 30) 4077*89a07cf8Schristos* sizes: Changing Type Sizes. (line 69) 4078*89a07cf8Schristos* so: I/O. (line 9) 4079*89a07cf8Schristos* sp: Manipulating Spacing. 4080*89a07cf8Schristos (line 7) 4081*89a07cf8Schristos* special: Special Fonts. (line 17) 4082*89a07cf8Schristos* spreadwarn: Debugging. (line 131) 4083*89a07cf8Schristos* ss: Manipulating Filling and Adjusting. 4084*89a07cf8Schristos (line 134) 4085*89a07cf8Schristos* sty: Font Families. (line 61) 4086*89a07cf8Schristos* substring: Strings. (line 188) 4087*89a07cf8Schristos* sv: Page Control. (line 54) 4088*89a07cf8Schristos* sy: I/O. (line 160) 4089*89a07cf8Schristos* ta: Tabs and Fields. (line 14) 4090*89a07cf8Schristos* tc: Tabs and Fields. (line 139) 4091*89a07cf8Schristos* ti: Line Layout. (line 117) 4092*89a07cf8Schristos* tkf: Ligatures and Kerning. 4093*89a07cf8Schristos (line 60) 4094*89a07cf8Schristos* tl: Page Layout. (line 35) 4095*89a07cf8Schristos* tm: Debugging. (line 25) 4096*89a07cf8Schristos* tm1: Debugging. (line 26) 4097*89a07cf8Schristos* tmc: Debugging. (line 27) 4098*89a07cf8Schristos* tr: Character Translations. 4099*89a07cf8Schristos (line 153) 4100*89a07cf8Schristos* trf: I/O. (line 48) 4101*89a07cf8Schristos* trin: Character Translations. 4102*89a07cf8Schristos (line 154) 4103*89a07cf8Schristos* trnt: Character Translations. 4104*89a07cf8Schristos (line 245) 4105*89a07cf8Schristos* troff: Troff and Nroff Mode. 4106*89a07cf8Schristos (line 24) 4107*89a07cf8Schristos* uf: Artificial Fonts. (line 91) 4108*89a07cf8Schristos* ul: Artificial Fonts. (line 65) 4109*89a07cf8Schristos* unformat: Diversions. (line 215) 4110*89a07cf8Schristos* vpt: Page Location Traps. (line 17) 4111*89a07cf8Schristos* vs: Changing Type Sizes. (line 84) 4112*89a07cf8Schristos* warn: Debugging. (line 154) 4113*89a07cf8Schristos* warnscale: Debugging. (line 127) 4114*89a07cf8Schristos* wh: Page Location Traps. (line 29) 4115*89a07cf8Schristos* while: while. (line 10) 4116*89a07cf8Schristos* write: I/O. (line 210) 4117*89a07cf8Schristos* writec: I/O. (line 211) 4118*89a07cf8Schristos* writem: I/O. (line 221) 4119*89a07cf8Schristos 4120*89a07cf8Schristos 4121*89a07cf8SchristosFile: groff, Node: Escape Index, Next: Operator Index, Prev: Request Index, Up: Top 4122*89a07cf8Schristos 4123*89a07cf8SchristosAppendix C Escape Index 4124*89a07cf8Schristos*********************** 4125*89a07cf8Schristos 4126*89a07cf8SchristosAny escape sequence `\X' with X not in the list below emits a warning, 4127*89a07cf8Schristosprinting glyph X. 4128*89a07cf8Schristos 4129*89a07cf8Schristos[index] 4130*89a07cf8Schristos* Menu: 4131*89a07cf8Schristos 4132*89a07cf8Schristos* \: Using Symbols. (line 139) 4133*89a07cf8Schristos* \!: Diversions. (line 133) 4134*89a07cf8Schristos* \": Comments. (line 10) 4135*89a07cf8Schristos* \#: Comments. (line 50) 4136*89a07cf8Schristos* \$: Parameters. (line 19) 4137*89a07cf8Schristos* \$*: Parameters. (line 38) 4138*89a07cf8Schristos* \$0: Parameters. (line 48) 4139*89a07cf8Schristos* \$@: Parameters. (line 39) 4140*89a07cf8Schristos* \%: Manipulating Hyphenation. 4141*89a07cf8Schristos (line 84) 4142*89a07cf8Schristos* \&: Ligatures and Kerning. 4143*89a07cf8Schristos (line 102) 4144*89a07cf8Schristos* \': Using Symbols. (line 229) 4145*89a07cf8Schristos* \): Ligatures and Kerning. 4146*89a07cf8Schristos (line 131) 4147*89a07cf8Schristos* \*: Strings. (line 13) 4148*89a07cf8Schristos* \,: Ligatures and Kerning. 4149*89a07cf8Schristos (line 92) 4150*89a07cf8Schristos* \-: Using Symbols. (line 238) 4151*89a07cf8Schristos* \.: Character Translations. 4152*89a07cf8Schristos (line 126) 4153*89a07cf8Schristos* \/: Ligatures and Kerning. 4154*89a07cf8Schristos (line 80) 4155*89a07cf8Schristos* \0: Page Motions. (line 139) 4156*89a07cf8Schristos* \<colon>: Manipulating Hyphenation. 4157*89a07cf8Schristos (line 85) 4158*89a07cf8Schristos* \<RET>: Line Control. (line 43) 4159*89a07cf8Schristos* \<SP>: Page Motions. (line 123) 4160*89a07cf8Schristos* \?: Diversions. (line 134) 4161*89a07cf8Schristos* \\: Character Translations. 4162*89a07cf8Schristos (line 68) 4163*89a07cf8Schristos* \^: Page Motions. (line 135) 4164*89a07cf8Schristos* \`: Using Symbols. (line 234) 4165*89a07cf8Schristos* \a: Leaders. (line 18) 4166*89a07cf8Schristos* \A: Identifiers. (line 55) 4167*89a07cf8Schristos* \b: Drawing Requests. (line 223) 4168*89a07cf8Schristos* \B: Expressions. (line 65) 4169*89a07cf8Schristos* \C: Using Symbols. (line 191) 4170*89a07cf8Schristos* \c: Line Control. (line 44) 4171*89a07cf8Schristos* \D: Drawing Requests. (line 71) 4172*89a07cf8Schristos* \d: Page Motions. (line 109) 4173*89a07cf8Schristos* \E: Character Translations. 4174*89a07cf8Schristos (line 70) 4175*89a07cf8Schristos* \e: Character Translations. 4176*89a07cf8Schristos (line 69) 4177*89a07cf8Schristos* \f: Font Positions. (line 59) 4178*89a07cf8Schristos* \F: Font Families. (line 21) 4179*89a07cf8Schristos* \f: Changing Fonts. (line 8) 4180*89a07cf8Schristos* \g: Assigning Formats. (line 75) 4181*89a07cf8Schristos* \h: Page Motions. (line 112) 4182*89a07cf8Schristos* \H: Artificial Fonts. (line 13) 4183*89a07cf8Schristos* \k: Page Motions. (line 203) 4184*89a07cf8Schristos* \L: Drawing Requests. (line 50) 4185*89a07cf8Schristos* \l: Drawing Requests. (line 16) 4186*89a07cf8Schristos* \M: Colors. (line 86) 4187*89a07cf8Schristos* \m: Colors. (line 52) 4188*89a07cf8Schristos* \N: Using Symbols. (line 207) 4189*89a07cf8Schristos* \n <1>: Auto-increment. (line 19) 4190*89a07cf8Schristos* \n: Interpolating Registers. 4191*89a07cf8Schristos (line 9) 4192*89a07cf8Schristos* \O: Suppressing output. (line 7) 4193*89a07cf8Schristos* \o: Page Motions. (line 218) 4194*89a07cf8Schristos* \p: Manipulating Filling and Adjusting. 4195*89a07cf8Schristos (line 113) 4196*89a07cf8Schristos* \r: Page Motions. (line 103) 4197*89a07cf8Schristos* \R: Setting Registers. (line 10) 4198*89a07cf8Schristos* \s: Changing Type Sizes. (line 10) 4199*89a07cf8Schristos* \S: Artificial Fonts. (line 45) 4200*89a07cf8Schristos* \t: Tabs and Fields. (line 10) 4201*89a07cf8Schristos* \u: Page Motions. (line 106) 4202*89a07cf8Schristos* \V: I/O. (line 248) 4203*89a07cf8Schristos* \v: Page Motions. (line 87) 4204*89a07cf8Schristos* \w: Page Motions. (line 147) 4205*89a07cf8Schristos* \X: Postprocessor Access. 4206*89a07cf8Schristos (line 11) 4207*89a07cf8Schristos* \x: Manipulating Spacing. 4208*89a07cf8Schristos (line 71) 4209*89a07cf8Schristos* \Y: Postprocessor Access. 4210*89a07cf8Schristos (line 25) 4211*89a07cf8Schristos* \Z: Page Motions. (line 226) 4212*89a07cf8Schristos* \z: Page Motions. (line 222) 4213*89a07cf8Schristos* \{: if-else. (line 38) 4214*89a07cf8Schristos* \|: Page Motions. (line 131) 4215*89a07cf8Schristos* \}: if-else. (line 38) 4216*89a07cf8Schristos* \~: Page Motions. (line 127) 4217*89a07cf8Schristos 4218*89a07cf8Schristos 4219*89a07cf8SchristosFile: groff, Node: Operator Index, Next: Register Index, Prev: Escape Index, Up: Top 4220*89a07cf8Schristos 4221*89a07cf8SchristosAppendix D Operator Index 4222*89a07cf8Schristos************************* 4223*89a07cf8Schristos 4224*89a07cf8Schristos[index] 4225*89a07cf8Schristos* Menu: 4226*89a07cf8Schristos 4227*89a07cf8Schristos* !: Expressions. (line 21) 4228*89a07cf8Schristos* %: Expressions. (line 8) 4229*89a07cf8Schristos* &: Expressions. (line 19) 4230*89a07cf8Schristos* (: Expressions. (line 41) 4231*89a07cf8Schristos* ): Expressions. (line 41) 4232*89a07cf8Schristos* *: Expressions. (line 8) 4233*89a07cf8Schristos* +: Expressions. (line 8) 4234*89a07cf8Schristos* -: Expressions. (line 8) 4235*89a07cf8Schristos* /: Expressions. (line 8) 4236*89a07cf8Schristos* <: Expressions. (line 15) 4237*89a07cf8Schristos* <=: Expressions. (line 15) 4238*89a07cf8Schristos* <?: Expressions. (line 26) 4239*89a07cf8Schristos* <colon>: Expressions. (line 19) 4240*89a07cf8Schristos* =: Expressions. (line 15) 4241*89a07cf8Schristos* ==: Expressions. (line 15) 4242*89a07cf8Schristos* >: Expressions. (line 15) 4243*89a07cf8Schristos* >=: Expressions. (line 15) 4244*89a07cf8Schristos* >?: Expressions. (line 26) 4245*89a07cf8Schristos 4246*89a07cf8Schristos 4247*89a07cf8SchristosFile: groff, Node: Register Index, Next: Macro Index, Prev: Operator Index, Up: Top 4248*89a07cf8Schristos 4249*89a07cf8SchristosAppendix E Register Index 4250*89a07cf8Schristos************************* 4251*89a07cf8Schristos 4252*89a07cf8SchristosThe macro package or program a specific register belongs to is appended 4253*89a07cf8Schristosin brackets. 4254*89a07cf8Schristos 4255*89a07cf8Schristos A register name `x' consisting of exactly one character can be 4256*89a07cf8Schristosaccessed as `\nx'. A register name `xx' consisting of exactly two 4257*89a07cf8Schristoscharacters can be accessed as `\n(xx'. Register names `xxx' of any 4258*89a07cf8Schristoslength can be accessed as `\n[xxx]'. 4259*89a07cf8Schristos 4260*89a07cf8Schristos[index] 4261*89a07cf8Schristos* Menu: 4262*89a07cf8Schristos 4263*89a07cf8Schristos* $$: Built-in Registers. (line 96) 4264*89a07cf8Schristos* % <1>: Page Control. (line 10) 4265*89a07cf8Schristos* %: Page Layout. (line 89) 4266*89a07cf8Schristos* .$: Parameters. (line 10) 4267*89a07cf8Schristos* .a: Manipulating Spacing. 4268*89a07cf8Schristos (line 72) 4269*89a07cf8Schristos* .A: Built-in Registers. (line 103) 4270*89a07cf8Schristos* .b: Artificial Fonts. (line 98) 4271*89a07cf8Schristos* .C: Implementation Differences. 4272*89a07cf8Schristos (line 25) 4273*89a07cf8Schristos* .c: Built-in Registers. (line 73) 4274*89a07cf8Schristos* .cdp: Environments. (line 96) 4275*89a07cf8Schristos* .ce: Manipulating Filling and Adjusting. 4276*89a07cf8Schristos (line 190) 4277*89a07cf8Schristos* .cht: Environments. (line 95) 4278*89a07cf8Schristos* .color: Colors. (line 8) 4279*89a07cf8Schristos* .csk: Environments. (line 97) 4280*89a07cf8Schristos* .d: Diversions. (line 62) 4281*89a07cf8Schristos* .ev: Environments. (line 39) 4282*89a07cf8Schristos* .f: Font Positions. (line 12) 4283*89a07cf8Schristos* .F: Built-in Registers. (line 12) 4284*89a07cf8Schristos* .fam: Font Families. (line 20) 4285*89a07cf8Schristos* .fn: Font Families. (line 24) 4286*89a07cf8Schristos* .fp: Font Positions. (line 13) 4287*89a07cf8Schristos* .g: Built-in Registers. (line 99) 4288*89a07cf8Schristos* .h: Diversions. (line 69) 4289*89a07cf8Schristos* .H: Built-in Registers. (line 15) 4290*89a07cf8Schristos* .height: Artificial Fonts. (line 16) 4291*89a07cf8Schristos* .hla: Manipulating Hyphenation. 4292*89a07cf8Schristos (line 254) 4293*89a07cf8Schristos* .hlc: Manipulating Hyphenation. 4294*89a07cf8Schristos (line 47) 4295*89a07cf8Schristos* .hlm: Manipulating Hyphenation. 4296*89a07cf8Schristos (line 46) 4297*89a07cf8Schristos* .hy: Manipulating Hyphenation. 4298*89a07cf8Schristos (line 10) 4299*89a07cf8Schristos* .hym: Manipulating Hyphenation. 4300*89a07cf8Schristos (line 210) 4301*89a07cf8Schristos* .hys: Manipulating Hyphenation. 4302*89a07cf8Schristos (line 225) 4303*89a07cf8Schristos* .i: Line Layout. (line 94) 4304*89a07cf8Schristos* .in: Line Layout. (line 120) 4305*89a07cf8Schristos* .int: Line Control. (line 45) 4306*89a07cf8Schristos* .j: Manipulating Filling and Adjusting. 4307*89a07cf8Schristos (line 53) 4308*89a07cf8Schristos* .k: Page Motions. (line 214) 4309*89a07cf8Schristos* .kern: Ligatures and Kerning. 4310*89a07cf8Schristos (line 42) 4311*89a07cf8Schristos* .l: Line Layout. (line 148) 4312*89a07cf8Schristos* .L: Manipulating Spacing. 4313*89a07cf8Schristos (line 52) 4314*89a07cf8Schristos* .lg: Ligatures and Kerning. 4315*89a07cf8Schristos (line 24) 4316*89a07cf8Schristos* .linetabs: Tabs and Fields. (line 148) 4317*89a07cf8Schristos* .ll: Line Layout. (line 149) 4318*89a07cf8Schristos* .lt: Page Layout. (line 63) 4319*89a07cf8Schristos* .M: Colors. (line 89) 4320*89a07cf8Schristos* .m: Colors. (line 55) 4321*89a07cf8Schristos* .n: Environments. (line 112) 4322*89a07cf8Schristos* .ne: Page Location Traps. (line 118) 4323*89a07cf8Schristos* .ns: Manipulating Spacing. 4324*89a07cf8Schristos (line 115) 4325*89a07cf8Schristos* .o: Line Layout. (line 64) 4326*89a07cf8Schristos* .p: Page Layout. (line 13) 4327*89a07cf8Schristos* .P: Built-in Registers. (line 108) 4328*89a07cf8Schristos* .pe: Page Location Traps. (line 139) 4329*89a07cf8Schristos* .pn: Page Layout. (line 80) 4330*89a07cf8Schristos* .ps: Fractional Type Sizes. 4331*89a07cf8Schristos (line 35) 4332*89a07cf8Schristos* .psr: Fractional Type Sizes. 4333*89a07cf8Schristos (line 42) 4334*89a07cf8Schristos* .pvs: Changing Type Sizes. (line 136) 4335*89a07cf8Schristos* .rj: Manipulating Filling and Adjusting. 4336*89a07cf8Schristos (line 239) 4337*89a07cf8Schristos* .s: Changing Type Sizes. (line 11) 4338*89a07cf8Schristos* .slant: Artificial Fonts. (line 46) 4339*89a07cf8Schristos* .sr: Fractional Type Sizes. 4340*89a07cf8Schristos (line 43) 4341*89a07cf8Schristos* .ss: Manipulating Filling and Adjusting. 4342*89a07cf8Schristos (line 135) 4343*89a07cf8Schristos* .sss: Manipulating Filling and Adjusting. 4344*89a07cf8Schristos (line 136) 4345*89a07cf8Schristos* .sty: Changing Fonts. (line 11) 4346*89a07cf8Schristos* .t: Page Location Traps. (line 97) 4347*89a07cf8Schristos* .T: Built-in Registers. (line 114) 4348*89a07cf8Schristos* .tabs: Tabs and Fields. (line 15) 4349*89a07cf8Schristos* .trunc: Page Location Traps. (line 127) 4350*89a07cf8Schristos* .u: Manipulating Filling and Adjusting. 4351*89a07cf8Schristos (line 31) 4352*89a07cf8Schristos* .v: Changing Type Sizes. (line 87) 4353*89a07cf8Schristos* .V: Built-in Registers. (line 23) 4354*89a07cf8Schristos* .vpt: Page Location Traps. (line 18) 4355*89a07cf8Schristos* .w: Environments. (line 94) 4356*89a07cf8Schristos* .warn: Debugging. (line 155) 4357*89a07cf8Schristos* .x: Built-in Registers. (line 85) 4358*89a07cf8Schristos* .Y: Built-in Registers. (line 93) 4359*89a07cf8Schristos* .y: Built-in Registers. (line 89) 4360*89a07cf8Schristos* .z: Diversions. (line 61) 4361*89a07cf8Schristos* c.: Built-in Registers. (line 74) 4362*89a07cf8Schristos* ct: Page Motions. (line 152) 4363*89a07cf8Schristos* dl: Diversions. (line 87) 4364*89a07cf8Schristos* dn: Diversions. (line 86) 4365*89a07cf8Schristos* dw: Built-in Registers. (line 39) 4366*89a07cf8Schristos* dy: Built-in Registers. (line 42) 4367*89a07cf8Schristos* FAM [ms]: ms Document Control Registers. 4368*89a07cf8Schristos (line 110) 4369*89a07cf8Schristos* FF [ms]: ms Document Control Registers. 4370*89a07cf8Schristos (line 184) 4371*89a07cf8Schristos* FI [ms]: ms Document Control Registers. 4372*89a07cf8Schristos (line 177) 4373*89a07cf8Schristos* FL [ms]: ms Document Control Registers. 4374*89a07cf8Schristos (line 170) 4375*89a07cf8Schristos* FM [ms]: ms Document Control Registers. 4376*89a07cf8Schristos (line 47) 4377*89a07cf8Schristos* FPD [ms]: ms Document Control Registers. 4378*89a07cf8Schristos (line 221) 4379*89a07cf8Schristos* FPS [ms]: ms Document Control Registers. 4380*89a07cf8Schristos (line 204) 4381*89a07cf8Schristos* FVS [ms]: ms Document Control Registers. 4382*89a07cf8Schristos (line 212) 4383*89a07cf8Schristos* GROWPS [ms]: ms Document Control Registers. 4384*89a07cf8Schristos (line 88) 4385*89a07cf8Schristos* GS [ms]: Differences from AT&T ms. 4386*89a07cf8Schristos (line 46) 4387*89a07cf8Schristos* HM [ms]: ms Document Control Registers. 4388*89a07cf8Schristos (line 40) 4389*89a07cf8Schristos* HORPHANS [ms]: ms Document Control Registers. 4390*89a07cf8Schristos (line 154) 4391*89a07cf8Schristos* hours: Built-in Registers. (line 35) 4392*89a07cf8Schristos* hp: Page Motions. (line 211) 4393*89a07cf8Schristos* HY [ms]: ms Document Control Registers. 4394*89a07cf8Schristos (line 101) 4395*89a07cf8Schristos* LL [ms]: ms Document Control Registers. 4396*89a07cf8Schristos (line 25) 4397*89a07cf8Schristos* llx: Miscellaneous. (line 142) 4398*89a07cf8Schristos* lly: Miscellaneous. (line 143) 4399*89a07cf8Schristos* ln: Built-in Registers. (line 79) 4400*89a07cf8Schristos* LT [ms]: ms Document Control Registers. 4401*89a07cf8Schristos (line 32) 4402*89a07cf8Schristos* MINGW [ms] <1>: Additional ms Macros. 4403*89a07cf8Schristos (line 28) 4404*89a07cf8Schristos* MINGW [ms]: ms Document Control Registers. 4405*89a07cf8Schristos (line 231) 4406*89a07cf8Schristos* minutes: Built-in Registers. (line 31) 4407*89a07cf8Schristos* mo: Built-in Registers. (line 45) 4408*89a07cf8Schristos* nl: Page Control. (line 68) 4409*89a07cf8Schristos* opmaxx: Suppressing output. (line 19) 4410*89a07cf8Schristos* opmaxy: Suppressing output. (line 19) 4411*89a07cf8Schristos* opminx: Suppressing output. (line 19) 4412*89a07cf8Schristos* opminy: Suppressing output. (line 19) 4413*89a07cf8Schristos* PD [ms]: ms Document Control Registers. 4414*89a07cf8Schristos (line 127) 4415*89a07cf8Schristos* PI [ms]: ms Document Control Registers. 4416*89a07cf8Schristos (line 120) 4417*89a07cf8Schristos* PO [ms]: ms Document Control Registers. 4418*89a07cf8Schristos (line 16) 4419*89a07cf8Schristos* PORPHANS [ms]: ms Document Control Registers. 4420*89a07cf8Schristos (line 142) 4421*89a07cf8Schristos* PS [ms]: ms Document Control Registers. 4422*89a07cf8Schristos (line 57) 4423*89a07cf8Schristos* ps4html [grohtml]: grohtml specific registers and strings. 4424*89a07cf8Schristos (line 7) 4425*89a07cf8Schristos* PSINCR [ms]: ms Document Control Registers. 4426*89a07cf8Schristos (line 77) 4427*89a07cf8Schristos* QI [ms]: ms Document Control Registers. 4428*89a07cf8Schristos (line 134) 4429*89a07cf8Schristos* rsb: Page Motions. (line 151) 4430*89a07cf8Schristos* rst: Page Motions. (line 150) 4431*89a07cf8Schristos* sb: Page Motions. (line 149) 4432*89a07cf8Schristos* seconds: Built-in Registers. (line 26) 4433*89a07cf8Schristos* skw: Page Motions. (line 154) 4434*89a07cf8Schristos* slimit: Debugging. (line 119) 4435*89a07cf8Schristos* ssc: Page Motions. (line 153) 4436*89a07cf8Schristos* st: Page Motions. (line 148) 4437*89a07cf8Schristos* systat: I/O. (line 161) 4438*89a07cf8Schristos* urx: Miscellaneous. (line 144) 4439*89a07cf8Schristos* ury: Miscellaneous. (line 145) 4440*89a07cf8Schristos* VS [ms]: ms Document Control Registers. 4441*89a07cf8Schristos (line 67) 4442*89a07cf8Schristos* year: Built-in Registers. (line 48) 4443*89a07cf8Schristos* yr: Built-in Registers. (line 51) 4444*89a07cf8Schristos 4445*89a07cf8Schristos 4446*89a07cf8SchristosFile: groff, Node: Macro Index, Next: String Index, Prev: Register Index, Up: Top 4447*89a07cf8Schristos 4448*89a07cf8SchristosAppendix F Macro Index 4449*89a07cf8Schristos********************** 4450*89a07cf8Schristos 4451*89a07cf8SchristosThe macro package a specific macro belongs to is appended in brackets. 4452*89a07cf8SchristosThey appear without the leading control character (normally `.'). 4453*89a07cf8Schristos 4454*89a07cf8Schristos[index] 4455*89a07cf8Schristos* Menu: 4456*89a07cf8Schristos 4457*89a07cf8Schristos* 1C [ms]: ms Multiple Columns. (line 13) 4458*89a07cf8Schristos* 2C [ms]: ms Multiple Columns. (line 16) 4459*89a07cf8Schristos* [ [ms]: ms Insertions. (line 33) 4460*89a07cf8Schristos* ] [ms]: ms Insertions. (line 34) 4461*89a07cf8Schristos* AB [ms]: ms Cover Page Macros. 4462*89a07cf8Schristos (line 60) 4463*89a07cf8Schristos* AE [ms]: ms Cover Page Macros. 4464*89a07cf8Schristos (line 65) 4465*89a07cf8Schristos* AI [ms]: ms Cover Page Macros. 4466*89a07cf8Schristos (line 56) 4467*89a07cf8Schristos* AM [ms] <1>: Additional ms Macros. 4468*89a07cf8Schristos (line 10) 4469*89a07cf8Schristos* AM [ms]: ms Strings and Special Characters. 4470*89a07cf8Schristos (line 51) 4471*89a07cf8Schristos* AT [man]: Miscellaneous man macros. 4472*89a07cf8Schristos (line 26) 4473*89a07cf8Schristos* AU [ms]: ms Cover Page Macros. 4474*89a07cf8Schristos (line 38) 4475*89a07cf8Schristos* B [man]: Man font macros. (line 48) 4476*89a07cf8Schristos* B [ms]: Highlighting in ms. (line 10) 4477*89a07cf8Schristos* B1 [ms]: ms Displays and Keeps. 4478*89a07cf8Schristos (line 94) 4479*89a07cf8Schristos* B2 [ms]: ms Displays and Keeps. 4480*89a07cf8Schristos (line 95) 4481*89a07cf8Schristos* BD [ms]: ms Displays and Keeps. 4482*89a07cf8Schristos (line 31) 4483*89a07cf8Schristos* BI [man]: Man font macros. (line 18) 4484*89a07cf8Schristos* BI [ms]: Highlighting in ms. (line 39) 4485*89a07cf8Schristos* BR [man]: Man font macros. (line 40) 4486*89a07cf8Schristos* BT [man]: Optional man extensions. 4487*89a07cf8Schristos (line 21) 4488*89a07cf8Schristos* BX [ms]: Highlighting in ms. (line 43) 4489*89a07cf8Schristos* CD [ms]: ms Displays and Keeps. 4490*89a07cf8Schristos (line 41) 4491*89a07cf8Schristos* CT [man]: Optional man extensions. 4492*89a07cf8Schristos (line 36) 4493*89a07cf8Schristos* CW [man]: Optional man extensions. 4494*89a07cf8Schristos (line 39) 4495*89a07cf8Schristos* CW [ms] <1>: Additional ms Macros. 4496*89a07cf8Schristos (line 19) 4497*89a07cf8Schristos* CW [ms]: Highlighting in ms. (line 35) 4498*89a07cf8Schristos* DA [ms]: ms Cover Page Macros. 4499*89a07cf8Schristos (line 23) 4500*89a07cf8Schristos* De [man]: Optional man extensions. 4501*89a07cf8Schristos (line 45) 4502*89a07cf8Schristos* De [ms]: ms Displays and Keeps. 4503*89a07cf8Schristos (line 57) 4504*89a07cf8Schristos* DE [ms]: ms Displays and Keeps. 4505*89a07cf8Schristos (line 16) 4506*89a07cf8Schristos* Ds [man]: Optional man extensions. 4507*89a07cf8Schristos (line 42) 4508*89a07cf8Schristos* DS [ms]: Additional ms Macros. 4509*89a07cf8Schristos (line 14) 4510*89a07cf8Schristos* Ds [ms]: ms Displays and Keeps. 4511*89a07cf8Schristos (line 56) 4512*89a07cf8Schristos* DS [ms]: ms Displays and Keeps. 4513*89a07cf8Schristos (line 14) 4514*89a07cf8Schristos* DT [man]: Miscellaneous man macros. 4515*89a07cf8Schristos (line 10) 4516*89a07cf8Schristos* EE [man]: Optional man extensions. 4517*89a07cf8Schristos (line 52) 4518*89a07cf8Schristos* EF [ms]: ms Headers and Footers. 4519*89a07cf8Schristos (line 26) 4520*89a07cf8Schristos* EH [ms]: ms Headers and Footers. 4521*89a07cf8Schristos (line 24) 4522*89a07cf8Schristos* EN [ms]: ms Insertions. (line 28) 4523*89a07cf8Schristos* EQ [ms]: ms Insertions. (line 27) 4524*89a07cf8Schristos* EX [man]: Optional man extensions. 4525*89a07cf8Schristos (line 48) 4526*89a07cf8Schristos* FE [ms]: ms Footnotes. (line 15) 4527*89a07cf8Schristos* FS [ms]: ms Footnotes. (line 14) 4528*89a07cf8Schristos* G [man]: Optional man extensions. 4529*89a07cf8Schristos (line 55) 4530*89a07cf8Schristos* GL [man]: Optional man extensions. 4531*89a07cf8Schristos (line 60) 4532*89a07cf8Schristos* HB [man]: Optional man extensions. 4533*89a07cf8Schristos (line 65) 4534*89a07cf8Schristos* HP [man]: Man usage. (line 98) 4535*89a07cf8Schristos* I [man]: Man font macros. (line 53) 4536*89a07cf8Schristos* I [ms]: Highlighting in ms. (line 31) 4537*89a07cf8Schristos* IB [man]: Man font macros. (line 28) 4538*89a07cf8Schristos* ID [ms]: ms Displays and Keeps. 4539*89a07cf8Schristos (line 23) 4540*89a07cf8Schristos* IP [man]: Man usage. (line 78) 4541*89a07cf8Schristos* IP [ms]: Lists in ms. (line 9) 4542*89a07cf8Schristos* IR [man]: Man font macros. (line 36) 4543*89a07cf8Schristos* IX [ms]: Additional ms Macros. 4544*89a07cf8Schristos (line 22) 4545*89a07cf8Schristos* KE [ms]: ms Displays and Keeps. 4546*89a07cf8Schristos (line 73) 4547*89a07cf8Schristos* KF [ms]: ms Displays and Keeps. 4548*89a07cf8Schristos (line 77) 4549*89a07cf8Schristos* KS [ms]: ms Displays and Keeps. 4550*89a07cf8Schristos (line 72) 4551*89a07cf8Schristos* LD [ms]: ms Displays and Keeps. 4552*89a07cf8Schristos (line 15) 4553*89a07cf8Schristos* LG [ms]: Highlighting in ms. (line 52) 4554*89a07cf8Schristos* LP [man]: Man usage. (line 68) 4555*89a07cf8Schristos* LP [ms]: Paragraphs in ms. (line 10) 4556*89a07cf8Schristos* MC [ms]: ms Multiple Columns. (line 19) 4557*89a07cf8Schristos* MS [man]: Optional man extensions. 4558*89a07cf8Schristos (line 73) 4559*89a07cf8Schristos* ND [ms]: ms Cover Page Macros. 4560*89a07cf8Schristos (line 28) 4561*89a07cf8Schristos* NE [man]: Optional man extensions. 4562*89a07cf8Schristos (line 85) 4563*89a07cf8Schristos* NH [ms]: Headings in ms. (line 13) 4564*89a07cf8Schristos* NL [ms]: Highlighting in ms. (line 64) 4565*89a07cf8Schristos* NT [man]: Optional man extensions. 4566*89a07cf8Schristos (line 78) 4567*89a07cf8Schristos* OF [ms]: ms Headers and Footers. 4568*89a07cf8Schristos (line 25) 4569*89a07cf8Schristos* OH [ms]: ms Headers and Footers. 4570*89a07cf8Schristos (line 23) 4571*89a07cf8Schristos* P [man]: Man usage. (line 70) 4572*89a07cf8Schristos* P1 [ms]: ms Cover Page Macros. 4573*89a07cf8Schristos (line 19) 4574*89a07cf8Schristos* PD [man]: Miscellaneous man macros. 4575*89a07cf8Schristos (line 15) 4576*89a07cf8Schristos* PE [ms]: ms Insertions. (line 21) 4577*89a07cf8Schristos* Pn [man]: Optional man extensions. 4578*89a07cf8Schristos (line 92) 4579*89a07cf8Schristos* PN [man]: Optional man extensions. 4580*89a07cf8Schristos (line 88) 4581*89a07cf8Schristos* PP [man]: Man usage. (line 69) 4582*89a07cf8Schristos* PP [ms]: Paragraphs in ms. (line 9) 4583*89a07cf8Schristos* PS [ms]: ms Insertions. (line 20) 4584*89a07cf8Schristos* PT [man]: Optional man extensions. 4585*89a07cf8Schristos (line 16) 4586*89a07cf8Schristos* PX [ms]: ms TOC. (line 65) 4587*89a07cf8Schristos* QP [ms]: Paragraphs in ms. (line 13) 4588*89a07cf8Schristos* R [man]: Optional man extensions. 4589*89a07cf8Schristos (line 98) 4590*89a07cf8Schristos* R [ms]: Highlighting in ms. (line 27) 4591*89a07cf8Schristos* RB [man]: Man font macros. (line 44) 4592*89a07cf8Schristos* RD [ms]: ms Displays and Keeps. 4593*89a07cf8Schristos (line 49) 4594*89a07cf8Schristos* RE [man]: Man usage. (line 115) 4595*89a07cf8Schristos* RE [ms]: Indentation values in ms. 4596*89a07cf8Schristos (line 12) 4597*89a07cf8Schristos* RI [man]: Man font macros. (line 32) 4598*89a07cf8Schristos* RN [man]: Optional man extensions. 4599*89a07cf8Schristos (line 101) 4600*89a07cf8Schristos* RP [ms]: ms Cover Page Macros. 4601*89a07cf8Schristos (line 10) 4602*89a07cf8Schristos* RS [man]: Man usage. (line 106) 4603*89a07cf8Schristos* RS [ms]: Indentation values in ms. 4604*89a07cf8Schristos (line 11) 4605*89a07cf8Schristos* SB [man]: Man font macros. (line 14) 4606*89a07cf8Schristos* SH [man]: Man usage. (line 32) 4607*89a07cf8Schristos* SH [ms]: Headings in ms. (line 43) 4608*89a07cf8Schristos* SM [man]: Man font macros. (line 10) 4609*89a07cf8Schristos* SM [ms]: Highlighting in ms. (line 58) 4610*89a07cf8Schristos* SS [man]: Man usage. (line 41) 4611*89a07cf8Schristos* TA [ms]: Tabstops in ms. (line 10) 4612*89a07cf8Schristos* TB [man]: Optional man extensions. 4613*89a07cf8Schristos (line 70) 4614*89a07cf8Schristos* TC [ms]: ms TOC. (line 55) 4615*89a07cf8Schristos* TE [ms]: ms Insertions. (line 12) 4616*89a07cf8Schristos* TH [man]: Man usage. (line 11) 4617*89a07cf8Schristos* TL [ms]: ms Cover Page Macros. 4618*89a07cf8Schristos (line 33) 4619*89a07cf8Schristos* TP [man]: Man usage. (line 49) 4620*89a07cf8Schristos* TS [ms]: ms Insertions. (line 11) 4621*89a07cf8Schristos* UC [man]: Miscellaneous man macros. 4622*89a07cf8Schristos (line 43) 4623*89a07cf8Schristos* UL [ms]: Highlighting in ms. (line 47) 4624*89a07cf8Schristos* VE [man]: Optional man extensions. 4625*89a07cf8Schristos (line 108) 4626*89a07cf8Schristos* VS [man]: Optional man extensions. 4627*89a07cf8Schristos (line 104) 4628*89a07cf8Schristos* XA [ms]: ms TOC. (line 13) 4629*89a07cf8Schristos* XE [ms]: ms TOC. (line 14) 4630*89a07cf8Schristos* XP [ms]: Paragraphs in ms. (line 18) 4631*89a07cf8Schristos* XS [ms]: ms TOC. (line 12) 4632*89a07cf8Schristos 4633*89a07cf8Schristos 4634*89a07cf8SchristosFile: groff, Node: String Index, Next: Glyph Name Index, Prev: Macro Index, Up: Top 4635*89a07cf8Schristos 4636*89a07cf8SchristosAppendix G String Index 4637*89a07cf8Schristos*********************** 4638*89a07cf8Schristos 4639*89a07cf8SchristosThe macro package or program a specific string belongs to is appended in 4640*89a07cf8Schristosbrackets. 4641*89a07cf8Schristos 4642*89a07cf8Schristos A string name `x' consisting of exactly one character can be 4643*89a07cf8Schristosaccessed as `\*x'. A string name `xx' consisting of exactly two 4644*89a07cf8Schristoscharacters can be accessed as `\*(xx'. String names `xxx' of any 4645*89a07cf8Schristoslength can be accessed as `\*[xxx]'. 4646*89a07cf8Schristos 4647*89a07cf8Schristos[index] 4648*89a07cf8Schristos* Menu: 4649*89a07cf8Schristos 4650*89a07cf8Schristos* ! [ms]: ms Strings and Special Characters. 4651*89a07cf8Schristos (line 101) 4652*89a07cf8Schristos* ' [ms]: ms Strings and Special Characters. 4653*89a07cf8Schristos (line 65) 4654*89a07cf8Schristos* * [ms]: ms Footnotes. (line 11) 4655*89a07cf8Schristos* , [ms]: ms Strings and Special Characters. 4656*89a07cf8Schristos (line 74) 4657*89a07cf8Schristos* - [ms]: ms Strings and Special Characters. 4658*89a07cf8Schristos (line 41) 4659*89a07cf8Schristos* . [ms]: ms Strings and Special Characters. 4660*89a07cf8Schristos (line 89) 4661*89a07cf8Schristos* .T: Built-in Registers. (line 119) 4662*89a07cf8Schristos* 3 [ms]: ms Strings and Special Characters. 4663*89a07cf8Schristos (line 107) 4664*89a07cf8Schristos* 8 [ms]: ms Strings and Special Characters. 4665*89a07cf8Schristos (line 104) 4666*89a07cf8Schristos* ? [ms]: ms Strings and Special Characters. 4667*89a07cf8Schristos (line 98) 4668*89a07cf8Schristos* \*[<colon>] [ms]: ms Strings and Special Characters. 4669*89a07cf8Schristos (line 80) 4670*89a07cf8Schristos* ^ [ms]: ms Strings and Special Characters. 4671*89a07cf8Schristos (line 71) 4672*89a07cf8Schristos* _ [ms]: ms Strings and Special Characters. 4673*89a07cf8Schristos (line 86) 4674*89a07cf8Schristos* ` [ms]: ms Strings and Special Characters. 4675*89a07cf8Schristos (line 68) 4676*89a07cf8Schristos* ABSTRACT [ms]: ms Strings and Special Characters. 4677*89a07cf8Schristos (line 15) 4678*89a07cf8Schristos* Ae [ms]: ms Strings and Special Characters. 4679*89a07cf8Schristos (line 128) 4680*89a07cf8Schristos* ae [ms]: ms Strings and Special Characters. 4681*89a07cf8Schristos (line 125) 4682*89a07cf8Schristos* CF [ms]: ms Headers and Footers. 4683*89a07cf8Schristos (line 16) 4684*89a07cf8Schristos* CH [ms]: ms Headers and Footers. 4685*89a07cf8Schristos (line 11) 4686*89a07cf8Schristos* d- [ms]: ms Strings and Special Characters. 4687*89a07cf8Schristos (line 119) 4688*89a07cf8Schristos* D- [ms]: ms Strings and Special Characters. 4689*89a07cf8Schristos (line 116) 4690*89a07cf8Schristos* HF [man]: Predefined man strings. 4691*89a07cf8Schristos (line 12) 4692*89a07cf8Schristos* LF [ms]: ms Headers and Footers. 4693*89a07cf8Schristos (line 15) 4694*89a07cf8Schristos* LH [ms]: ms Headers and Footers. 4695*89a07cf8Schristos (line 10) 4696*89a07cf8Schristos* lq [man]: Predefined man strings. 4697*89a07cf8Schristos (line 21) 4698*89a07cf8Schristos* MONTH1 [ms]: ms Strings and Special Characters. 4699*89a07cf8Schristos (line 23) 4700*89a07cf8Schristos* MONTH10 [ms]: ms Strings and Special Characters. 4701*89a07cf8Schristos (line 32) 4702*89a07cf8Schristos* MONTH11 [ms]: ms Strings and Special Characters. 4703*89a07cf8Schristos (line 33) 4704*89a07cf8Schristos* MONTH12 [ms]: ms Strings and Special Characters. 4705*89a07cf8Schristos (line 34) 4706*89a07cf8Schristos* MONTH2 [ms]: ms Strings and Special Characters. 4707*89a07cf8Schristos (line 24) 4708*89a07cf8Schristos* MONTH3 [ms]: ms Strings and Special Characters. 4709*89a07cf8Schristos (line 25) 4710*89a07cf8Schristos* MONTH4 [ms]: ms Strings and Special Characters. 4711*89a07cf8Schristos (line 26) 4712*89a07cf8Schristos* MONTH5 [ms]: ms Strings and Special Characters. 4713*89a07cf8Schristos (line 27) 4714*89a07cf8Schristos* MONTH6 [ms]: ms Strings and Special Characters. 4715*89a07cf8Schristos (line 28) 4716*89a07cf8Schristos* MONTH7 [ms]: ms Strings and Special Characters. 4717*89a07cf8Schristos (line 29) 4718*89a07cf8Schristos* MONTH8 [ms]: ms Strings and Special Characters. 4719*89a07cf8Schristos (line 30) 4720*89a07cf8Schristos* MONTH9 [ms]: ms Strings and Special Characters. 4721*89a07cf8Schristos (line 31) 4722*89a07cf8Schristos* o [ms]: ms Strings and Special Characters. 4723*89a07cf8Schristos (line 92) 4724*89a07cf8Schristos* q [ms]: ms Strings and Special Characters. 4725*89a07cf8Schristos (line 122) 4726*89a07cf8Schristos* Q [ms]: ms Strings and Special Characters. 4727*89a07cf8Schristos (line 44) 4728*89a07cf8Schristos* R [man]: Predefined man strings. 4729*89a07cf8Schristos (line 15) 4730*89a07cf8Schristos* REFERENCES [ms]: ms Strings and Special Characters. 4731*89a07cf8Schristos (line 11) 4732*89a07cf8Schristos* RF [ms]: ms Headers and Footers. 4733*89a07cf8Schristos (line 17) 4734*89a07cf8Schristos* RH [ms]: ms Headers and Footers. 4735*89a07cf8Schristos (line 12) 4736*89a07cf8Schristos* rq [man]: Predefined man strings. 4737*89a07cf8Schristos (line 22) 4738*89a07cf8Schristos* S [man]: Predefined man strings. 4739*89a07cf8Schristos (line 9) 4740*89a07cf8Schristos* SN [ms]: Headings in ms. (line 22) 4741*89a07cf8Schristos* SN-DOT [ms]: Headings in ms. (line 23) 4742*89a07cf8Schristos* SN-NO-DOT [ms]: Headings in ms. (line 24) 4743*89a07cf8Schristos* th [ms]: ms Strings and Special Characters. 4744*89a07cf8Schristos (line 113) 4745*89a07cf8Schristos* Th [ms]: ms Strings and Special Characters. 4746*89a07cf8Schristos (line 110) 4747*89a07cf8Schristos* Tm [man]: Predefined man strings. 4748*89a07cf8Schristos (line 18) 4749*89a07cf8Schristos* TOC [ms]: ms Strings and Special Characters. 4750*89a07cf8Schristos (line 19) 4751*89a07cf8Schristos* U [ms]: ms Strings and Special Characters. 4752*89a07cf8Schristos (line 45) 4753*89a07cf8Schristos* v [ms]: ms Strings and Special Characters. 4754*89a07cf8Schristos (line 83) 4755*89a07cf8Schristos* www-image-template [grohtml]: grohtml specific registers and strings. 4756*89a07cf8Schristos (line 8) 4757*89a07cf8Schristos* { [ms]: Highlighting in ms. (line 68) 4758*89a07cf8Schristos* } [ms]: Highlighting in ms. (line 69) 4759*89a07cf8Schristos* ~ [ms]: ms Strings and Special Characters. 4760*89a07cf8Schristos (line 77) 4761*89a07cf8Schristos 4762*89a07cf8Schristos 4763*89a07cf8SchristosFile: groff, Node: Glyph Name Index, Next: Font File Keyword Index, Prev: String Index, Up: Top 4764*89a07cf8Schristos 4765*89a07cf8SchristosAppendix H Glyph Name Index 4766*89a07cf8Schristos*************************** 4767*89a07cf8Schristos 4768*89a07cf8SchristosA glyph name `xx' consisting of exactly two characters can be accessed 4769*89a07cf8Schristosas `\(xx'. Glyph names `xxx' of any length can be accessed as `\[xxx]'. 4770*89a07cf8Schristos 4771*89a07cf8Schristos 4772*89a07cf8SchristosFile: groff, Node: Font File Keyword Index, Next: Program and File Index, Prev: Glyph Name Index, Up: Top 4773*89a07cf8Schristos 4774*89a07cf8SchristosAppendix I Font File Keyword Index 4775*89a07cf8Schristos********************************** 4776*89a07cf8Schristos 4777*89a07cf8Schristos[index] 4778*89a07cf8Schristos* Menu: 4779*89a07cf8Schristos 4780*89a07cf8Schristos* #: Font File Format. (line 36) 4781*89a07cf8Schristos* ---: Font File Format. (line 51) 4782*89a07cf8Schristos* biggestfont: DESC File Format. (line 109) 4783*89a07cf8Schristos* charset <1>: Font File Format. (line 44) 4784*89a07cf8Schristos* charset: DESC File Format. (line 101) 4785*89a07cf8Schristos* family <1>: DESC File Format. (line 64) 4786*89a07cf8Schristos* family <2>: Font Positions. (line 61) 4787*89a07cf8Schristos* family: Changing Fonts. (line 11) 4788*89a07cf8Schristos* fonts <1>: DESC File Format. (line 58) 4789*89a07cf8Schristos* fonts <2>: Special Fonts. (line 18) 4790*89a07cf8Schristos* fonts: Using Symbols. (line 15) 4791*89a07cf8Schristos* hor: DESC File Format. (line 14) 4792*89a07cf8Schristos* kernpairs: Font File Format. (line 135) 4793*89a07cf8Schristos* ligatures: Font File Format. (line 22) 4794*89a07cf8Schristos* name: Font File Format. (line 12) 4795*89a07cf8Schristos* papersize: DESC File Format. (line 72) 4796*89a07cf8Schristos* pass_filenames: DESC File Format. (line 92) 4797*89a07cf8Schristos* postpro: DESC File Format. (line 36) 4798*89a07cf8Schristos* prepro: DESC File Format. (line 32) 4799*89a07cf8Schristos* print: DESC File Format. (line 97) 4800*89a07cf8Schristos* res: DESC File Format. (line 11) 4801*89a07cf8Schristos* sizes: DESC File Format. (line 49) 4802*89a07cf8Schristos* sizescale: DESC File Format. (line 22) 4803*89a07cf8Schristos* slant: Font File Format. (line 18) 4804*89a07cf8Schristos* spacewidth: Font File Format. (line 15) 4805*89a07cf8Schristos* spare1: DESC File Format. (line 109) 4806*89a07cf8Schristos* spare2: DESC File Format. (line 109) 4807*89a07cf8Schristos* special <1>: Font File Format. (line 28) 4808*89a07cf8Schristos* special: Artificial Fonts. (line 116) 4809*89a07cf8Schristos* styles <1>: DESC File Format. (line 55) 4810*89a07cf8Schristos* styles <2>: Font Positions. (line 61) 4811*89a07cf8Schristos* styles <3>: Font Families. (line 76) 4812*89a07cf8Schristos* styles: Changing Fonts. (line 11) 4813*89a07cf8Schristos* tcommand: DESC File Format. (line 45) 4814*89a07cf8Schristos* unitwidth: DESC File Format. (line 28) 4815*89a07cf8Schristos* use_charnames_in_special <1>: DESC File Format. (line 67) 4816*89a07cf8Schristos* use_charnames_in_special: Postprocessor Access. 4817*89a07cf8Schristos (line 17) 4818*89a07cf8Schristos* vert: DESC File Format. (line 18) 4819*89a07cf8Schristos 4820*89a07cf8Schristos 4821*89a07cf8SchristosFile: groff, Node: Program and File Index, Next: Concept Index, Prev: Font File Keyword Index, Up: Top 4822*89a07cf8Schristos 4823*89a07cf8SchristosAppendix J Program and File Index 4824*89a07cf8Schristos********************************* 4825*89a07cf8Schristos 4826*89a07cf8Schristos[index] 4827*89a07cf8Schristos* Menu: 4828*89a07cf8Schristos 4829*89a07cf8Schristos* an.tmac: man. (line 6) 4830*89a07cf8Schristos* changebar: Miscellaneous. (line 111) 4831*89a07cf8Schristos* composite.tmac: Using Symbols. (line 197) 4832*89a07cf8Schristos* cp1047.tmac: Input Encodings. (line 9) 4833*89a07cf8Schristos* DESC <1>: Special Fonts. (line 18) 4834*89a07cf8Schristos* DESC <2>: Using Symbols. (line 15) 4835*89a07cf8Schristos* DESC <3>: Font Positions. (line 61) 4836*89a07cf8Schristos* DESC <4>: Font Families. (line 76) 4837*89a07cf8Schristos* DESC: Changing Fonts. (line 11) 4838*89a07cf8Schristos* DESC file format: DESC File Format. (line 6) 4839*89a07cf8Schristos* DESC, and font mounting: Font Positions. (line 37) 4840*89a07cf8Schristos* DESC, and use_charnames_in_special: Postprocessor Access. 4841*89a07cf8Schristos (line 17) 4842*89a07cf8Schristos* ditroff: History. (line 58) 4843*89a07cf8Schristos* ec.tmac: Input Encodings. (line 41) 4844*89a07cf8Schristos* eqn: ms Insertions. (line 7) 4845*89a07cf8Schristos* freeeuro.pfa: Input Encodings. (line 41) 4846*89a07cf8Schristos* geqn: Groff Options. (line 6) 4847*89a07cf8Schristos* geqn, invocation in manual pages: Preprocessors in man pages. 4848*89a07cf8Schristos (line 12) 4849*89a07cf8Schristos* ggrn: Groff Options. (line 6) 4850*89a07cf8Schristos* gpic: Groff Options. (line 6) 4851*89a07cf8Schristos* grap: Groff Options. (line 6) 4852*89a07cf8Schristos* grefer: Groff Options. (line 6) 4853*89a07cf8Schristos* grefer, invocation in manual pages: Preprocessors in man pages. 4854*89a07cf8Schristos (line 12) 4855*89a07cf8Schristos* groff: Groff Options. (line 6) 4856*89a07cf8Schristos* grog: grog. (line 6) 4857*89a07cf8Schristos* grohtml: Miscellaneous man macros. 4858*89a07cf8Schristos (line 6) 4859*89a07cf8Schristos* gsoelim: Groff Options. (line 6) 4860*89a07cf8Schristos* gtbl: Groff Options. (line 6) 4861*89a07cf8Schristos* gtbl, invocation in manual pages: Preprocessors in man pages. 4862*89a07cf8Schristos (line 12) 4863*89a07cf8Schristos* gtroff: Groff Options. (line 6) 4864*89a07cf8Schristos* hyphen.us: Manipulating Hyphenation. 4865*89a07cf8Schristos (line 161) 4866*89a07cf8Schristos* hyphenex.us: Manipulating Hyphenation. 4867*89a07cf8Schristos (line 161) 4868*89a07cf8Schristos* latin1.tmac: Input Encodings. (line 14) 4869*89a07cf8Schristos* latin2.tmac: Input Encodings. (line 18) 4870*89a07cf8Schristos* latin9.tmac: Input Encodings. (line 23) 4871*89a07cf8Schristos* makeindex: Indices. (line 10) 4872*89a07cf8Schristos* man, invocation of preprocessors: Preprocessors in man pages. 4873*89a07cf8Schristos (line 12) 4874*89a07cf8Schristos* man-old.tmac: man. (line 6) 4875*89a07cf8Schristos* man.local <1>: Optional man extensions. 4876*89a07cf8Schristos (line 6) 4877*89a07cf8Schristos* man.local: Man usage. (line 6) 4878*89a07cf8Schristos* man.tmac: man. (line 6) 4879*89a07cf8Schristos* man.ultrix: Optional man extensions. 4880*89a07cf8Schristos (line 30) 4881*89a07cf8Schristos* nrchbar: Miscellaneous. (line 111) 4882*89a07cf8Schristos* papersize.tmac: Paper Size. (line 16) 4883*89a07cf8Schristos* perl: I/O. (line 171) 4884*89a07cf8Schristos* pic: ms Insertions. (line 7) 4885*89a07cf8Schristos* post-grohtml: Groff Options. (line 165) 4886*89a07cf8Schristos* pre-grohtml: Groff Options. (line 165) 4887*89a07cf8Schristos* refer: ms Insertions. (line 7) 4888*89a07cf8Schristos* soelim: Debugging. (line 10) 4889*89a07cf8Schristos* tbl: ms Insertions. (line 7) 4890*89a07cf8Schristos* trace.tmac: Writing Macros. (line 101) 4891*89a07cf8Schristos* troffrc <1>: Line Layout. (line 64) 4892*89a07cf8Schristos* troffrc <2>: Troff and Nroff Mode. 4893*89a07cf8Schristos (line 24) 4894*89a07cf8Schristos* troffrc <3>: Manipulating Hyphenation. 4895*89a07cf8Schristos (line 161) 4896*89a07cf8Schristos* troffrc <4>: Paper Size. (line 16) 4897*89a07cf8Schristos* troffrc: Groff Options. (line 80) 4898*89a07cf8Schristos* troffrc-end <1>: Troff and Nroff Mode. 4899*89a07cf8Schristos (line 24) 4900*89a07cf8Schristos* troffrc-end <2>: Manipulating Hyphenation. 4901*89a07cf8Schristos (line 161) 4902*89a07cf8Schristos* troffrc-end: Groff Options. (line 80) 4903*89a07cf8Schristos* tty.tmac: Troff and Nroff Mode. 4904*89a07cf8Schristos (line 32) 4905*89a07cf8Schristos 4906*89a07cf8Schristos 4907*89a07cf8Schristos 4908*89a07cf8SchristosLocal Variables: 4909*89a07cf8Schristoscoding: iso-8859-1 4910*89a07cf8SchristosEnd: 4911