1151497SruThis is groff, produced by makeinfo version 4.8 from ./groff.texinfo. 2104862Sru 3151497Sru This manual documents GNU `troff' version 1.19.2. 4104862Sru 5151497Sru Copyright (C) 1994-2000, 2001, 2002, 2003, 2004, 2005 Free Software 6151497SruFoundation, Inc. 7104862Sru 8104862Sru Permission is granted to copy, distribute and/or modify this 9104862Sru document under the terms of the GNU Free Documentation License, 10104862Sru Version 1.1 or any later version published by the Free Software 11104862Sru Foundation; with no Invariant Sections, with the Front-Cover texts 12104862Sru being `A GNU Manual," and with the Back-Cover Texts as in (a) 13104862Sru below. A copy of the license is included in the section entitled 14104862Sru `GNU Free Documentation License." 15104862Sru 16104862Sru (a) The FSF's Back-Cover Text is: `You have freedom to copy and 17104862Sru modify this GNU Manual, like GNU software. Copies published by 18104862Sru the Free Software Foundation raise funds for GNU development." 19151497Sru 20114402SruINFO-DIR-SECTION Typesetting 21104862SruSTART-INFO-DIR-ENTRY 22104862Sru* Groff: (groff). The GNU troff document formatting system. 23104862SruEND-INFO-DIR-ENTRY 24104862Sru 25104862Sru 26151497SruFile: groff, Node: Drawing Requests, Next: Traps, Prev: Page Motions, Up: gtroff Reference 27114402Sru 28151497Sru5.23 Drawing Requests 29151497Sru===================== 30114402Sru 31151497Sru`gtroff' provides a number of ways to draw lines and other figures on 32151497Sruthe page. Used in combination with the page motion commands (see *Note 33151497SruPage Motions::, for more info), a wide variety of figures can be drawn. 34151497SruHowever, for complex drawings these operations can be quite 35151497Srucumbersome, and it may be wise to use graphic preprocessors like `gpic' 36151497Sruor `ggrn'. *Note gpic::, and *Note ggrn::, for more information. 37114402Sru 38151497Sru All drawing is done via escapes. 39114402Sru 40151497Sru -- Escape: \l'l' 41151497Sru -- Escape: \l'lg' 42151497Sru Draw a line horizontally. L is the length of the line to be 43151497Sru drawn. If it is positive, start the line at the current location 44151497Sru and draw to the right; its end point is the new current location. 45151497Sru Negative values are handled differently: The line starts at the 46151497Sru current location and draws to the left, but the current location 47151497Sru doesn't move. 48114402Sru 49151497Sru L can also be specified absolutely (i.e. with a leading `|') which 50151497Sru draws back to the beginning of the input line. Default scaling 51151497Sru indicator is `m'. 52114402Sru 53151497Sru The optional second parameter G is a glyph to draw the line with. 54151497Sru If this second argument is not specified, `gtroff' uses the 55151497Sru underscore glyph, `\[ru]'. 56114402Sru 57151497Sru To separate the two arguments (to prevent `gtroff' from 58151497Sru interpreting a drawing glyph as a scaling indicator if the glyph is 59151497Sru represented by a single character) use `\&'. 60114402Sru 61151497Sru Here a small useful example: 62114402Sru 63114402Sru 64151497Sru .de box 65151497Sru \[br]\\$*\[br]\l'|0\[rn]'\l'|0\[ul]' 66151497Sru .. 67114402Sru 68151497Sru Note that this works by outputting a box rule (a vertical line), 69151497Sru then the text given as an argument and then another box rule. 70151497Sru Finally, the line drawing escapes both draw from the current 71151497Sru location to the beginning of the _input_ line - this works because 72151497Sru the line length is negative, not moving the current point. 73114402Sru 74151497Sru -- Escape: \L'l' 75151497Sru -- Escape: \L'lg' 76151497Sru Draw vertical lines. Its parameters are similar to the `\l' 77151497Sru escape, except that the default scaling indicator is `v'. The 78151497Sru movement is downwards for positive values, and upwards for 79151497Sru negative values. The default glyph is the box rule glyph, 80151497Sru `\[br]'. As with the vertical motion escapes, text processing 81151497Sru blindly continues where the line ends. 82114402Sru 83114402Sru 84151497Sru This is a \L'3v'test. 85114402Sru 86151497Sru Here the result, produced with `grotty'. 87114402Sru 88114402Sru 89151497Sru This is a 90151497Sru | 91151497Sru | 92151497Sru |test. 93114402Sru 94151497Sru 95151497Sru -- Escape: \D'command arg ...' 96151497Sru The `\D' escape provides a variety of drawing functions. Note 97151497Sru that on character devices, only vertical and horizontal lines are 98151497Sru supported within `grotty'; other devices may only support a subset 99151497Sru of the available drawing functions. 100151497Sru 101151497Sru The default scaling indicator for all subcommands of `\D' is `m' 102151497Sru for horizontal distances and `v' for vertical ones. Exceptions 103151497Sru are `\D'f ...'' and `\D't ...'' which use `u' as the default, and 104151497Sru `\D'FX ...'' which arguments are treated similar to the `defcolor' 105151497Sru request. 106151497Sru 107151497Sru `\D'l DX DY'' 108151497Sru Draw a line from the current location to the relative point 109151497Sru specified by (DX,DY), where positive values mean down and 110151497Sru right, respectively. The end point of the line is the new 111151497Sru current location. 112151497Sru 113151497Sru The following example is a macro for creating a box around a 114151497Sru text string; for simplicity, the box margin is taken as a 115151497Sru fixed value, 0.2m. 116151497Sru 117151497Sru 118151497Sru .de BOX 119151497Sru . nr @wd \w'\\$1' 120151497Sru \h'.2m'\ 121151497Sru \h'-.2m'\v'(.2m - \\n[rsb]u)'\ 122151497Sru \D'l 0 -(\\n[rst]u - \\n[rsb]u + .4m)'\ 123151497Sru \D'l (\\n[@wd]u + .4m) 0'\ 124151497Sru \D'l 0 (\\n[rst]u - \\n[rsb]u + .4m)'\ 125151497Sru \D'l -(\\n[@wd]u + .4m) 0'\ 126151497Sru \h'.2m'\v'-(.2m - \\n[rsb]u)'\ 127151497Sru \\$1\ 128151497Sru \h'.2m' 129151497Sru .. 130151497Sru 131151497Sru First, the width of the string is stored in register `@wd'. 132151497Sru Then, four lines are drawn to form a box, properly offset by 133151497Sru the box margin. The registers `rst' and `rsb' are set by the 134151497Sru `\w' escape, containing the largest height and depth of the 135151497Sru whole string. 136151497Sru 137151497Sru `\D'c D'' 138151497Sru Draw a circle with a diameter of D with the leftmost point at 139151497Sru the current position. After drawing, the current location is 140151497Sru positioned at the rightmost point of the circle. 141151497Sru 142151497Sru `\D'C D'' 143151497Sru Draw a solid circle with the same parameters and behaviour as 144151497Sru an outlined circle. No outline is drawn. 145151497Sru 146151497Sru `\D'e X Y'' 147151497Sru Draw an ellipse with a horizontal diameter of X and a vertical 148151497Sru diameter of Y with the leftmost point at the current position. 149151497Sru After drawing, the current location is positioned at the 150151497Sru rightmost point of the ellipse. 151151497Sru 152151497Sru `\D'E X Y'' 153151497Sru Draw a solid ellipse with the same parameters and behaviour 154151497Sru as an outlined ellipse. No outline is drawn. 155151497Sru 156151497Sru `\D'a DX1 DY1 DX2 DY2'' 157151497Sru Draw an arc clockwise from the current location through the 158151497Sru two specified relative locations (DX1,DY1) and (DX2,DY2). 159151497Sru The coordinates of the first point are relative to the 160151497Sru current position, and the coordinates of the second point are 161151497Sru relative to the first point. After drawing, the current 162151497Sru position is moved to the final point of the arc. 163151497Sru 164151497Sru `\D'~ DX1 DY1 DX2 DY2 ...'' 165151497Sru Draw a spline from the current location to the relative point 166151497Sru (DX1,DY1) and then to (DX2,DY2), and so on. The current 167151497Sru position is moved to the terminal point of the drawn curve. 168151497Sru 169151497Sru `\D'f N'' 170151497Sru Set the shade of gray to be used for filling solid objects 171151497Sru to N; N must be an integer between 0 and 1000, where 0 172151497Sru corresponds solid white and 1000 to solid black, and values 173151497Sru in between correspond to intermediate shades of gray. This 174151497Sru applies only to solid circles, solid ellipses, and solid 175151497Sru polygons. By default, a level of 1000 is used. 176151497Sru 177151497Sru Despite of being silly, the current point is moved 178151497Sru horizontally to the right by N. 179151497Sru 180151497Sru Don't use this command! It has the serious drawback that it 181151497Sru will be always rounded to the next integer multiple of the 182151497Sru horizontal resolution (the value of the `hor' keyword in the 183151497Sru `DESC' file). Use `\M' (*note Colors::) or `\D'Fg ...'' 184151497Sru instead. 185151497Sru 186151497Sru `\D'p DX1 DY1 DX2 DY2 ...'' 187151497Sru Draw a polygon from the current location to the relative 188151497Sru position (DX1,DY1) and then to (DX2,DY2) and so on. When the 189151497Sru specified data points are exhausted, a line is drawn back to 190151497Sru the starting point. The current position is changed by 191151497Sru adding the sum of all arguments with odd index to the actual 192151497Sru horizontal position and the even ones to the vertical 193151497Sru position. 194151497Sru 195151497Sru `\D'P DX1 DY1 DX2 DY2 ...'' 196151497Sru Draw a solid polygon with the same parameters and behaviour 197151497Sru as an outlined polygon. No outline is drawn. 198151497Sru 199151497Sru Here a better variant of the box macro to fill the box with 200151497Sru some color. Note that the box must be drawn before the text 201151497Sru since colors in `gtroff' are not transparent; the filled 202151497Sru polygon would hide the text completely. 203151497Sru 204151497Sru 205151497Sru .de BOX 206151497Sru . nr @wd \w'\\$1' 207151497Sru \h'.2m'\ 208151497Sru \h'-.2m'\v'(.2m - \\n[rsb]u)'\ 209151497Sru \M[lightcyan]\ 210151497Sru \D'P 0 -(\\n[rst]u - \\n[rsb]u + .4m) \ 211151497Sru (\\n[@wd]u + .4m) 0 \ 212151497Sru 0 (\\n[rst]u - \\n[rsb]u + .4m) \ 213151497Sru -(\\n[@wd]u + .4m) 0'\ 214151497Sru \h'.2m'\v'-(.2m - \\n[rsb]u)'\ 215151497Sru \M[]\ 216151497Sru \\$1\ 217151497Sru \h'.2m' 218151497Sru .. 219151497Sru 220151497Sru `\D't N'' 221151497Sru Set the current line thickness to N machine units. A value of 222151497Sru zero selects the smallest available line thickness. A 223151497Sru negative value makes the line thickness proportional to the 224151497Sru current point size (this is the default behaviour of AT&T 225151497Sru `troff'). 226151497Sru 227151497Sru Despite of being silly, the current point is moved 228151497Sru horizontally to the right by N. 229151497Sru 230151497Sru `\D'FSCHEME COLOR_COMPONENTS'' 231151497Sru Change current fill color. SCHEME is a single letter 232151497Sru denoting the color scheme: `r' (rgb), `c' (cmy), `k' (cmyk), 233151497Sru `g' (gray), or `d' (default color). The color components use 234151497Sru exactly the same syntax as in the `defcolor' request (*note 235151497Sru Colors::); the command `\D'Fd'' doesn't take an argument. 236151497Sru 237151497Sru _No_ position changing! 238151497Sru 239151497Sru Examples: 240151497Sru 241151497Sru 242151497Sru \D'Fg .3' \" same gray as \D'f 700' \D'Fr #0000ff' \" 243151497Sru blue 244151497Sru 245151497Sru *Note Graphics Commands::. 246151497Sru 247151497Sru -- Escape: \b'string' 248151497Sru "Pile" a sequence of glyphs vertically, and center it vertically 249151497Sru on the current line. Use it to build large brackets and braces. 250151497Sru 251151497Sru Here an example how to create a large opening brace: 252151497Sru 253151497Sru 254151497Sru \b'\[lt]\[bv]\[lk]\[bv]\[lb]' 255151497Sru 256151497Sru The first glyph is on the top, the last glyph in STRING is at the 257151497Sru bottom. Note that `gtroff' separates the glyphs vertically by 1m, 258151497Sru and the whole object is centered 0.5m above the current baseline; 259151497Sru the largest glyph width is used as the width for the whole object. 260151497Sru This rather unflexible positioning algorithm doesn't work with 261151497Sru `-Tdvi' since the bracket pieces vary in height for this device. 262151497Sru Instead, use the `eqn' preprocessor. 263151497Sru 264151497Sru *Note Manipulating Spacing::, how to adjust the vertical spacing 265151497Sru with the `\x' escape. 266151497Sru 267114402Sru 268151497SruFile: groff, Node: Traps, Next: Diversions, Prev: Drawing Requests, Up: gtroff Reference 269104862Sru 270151497Sru5.24 Traps 271151497Sru========== 272104862Sru 273151497Sru"Traps" are locations, which, when reached, call a specified macro. 274151497SruThese traps can occur at a given location on the page, at a given 275151497Srulocation in the current diversion, at a blank line, after a certain 276151497Srunumber of input lines, or at the end of input. 277104862Sru 278151497Sru Setting a trap is also called "planting". It is also said that a 279151497Srutrap is "sprung" if the associated macro is executed. 280104862Sru 281151497Sru* Menu: 282104862Sru 283151497Sru* Page Location Traps:: 284151497Sru* Diversion Traps:: 285151497Sru* Input Line Traps:: 286151497Sru* Blank Line Traps:: 287151497Sru* End-of-input Traps:: 288104862Sru 289151497Sru 290151497SruFile: groff, Node: Page Location Traps, Next: Diversion Traps, Prev: Traps, Up: Traps 291104862Sru 292151497Sru5.24.1 Page Location Traps 293151497Sru-------------------------- 294104862Sru 295151497Sru"Page location traps" perform an action when `gtroff' reaches or passes 296151497Srua certain vertical location on the page. Page location traps have a 297151497Sruvariety of purposes, including: 298104862Sru 299151497Sru * setting headers and footers 300104862Sru 301151497Sru * setting body text in multiple columns 302104862Sru 303151497Sru * setting footnotes 304104862Sru 305151497Sru -- Request: .vpt flag 306151497Sru -- Register: \n[.vpt] 307151497Sru Enable vertical position traps if FLAG is non-zero, or disables 308151497Sru them otherwise. Vertical position traps are traps set by the `wh' 309151497Sru or `dt' requests. Traps set by the `it' request are not vertical 310151497Sru position traps. The parameter that controls whether vertical 311151497Sru position traps are enabled is global. Initially vertical position 312151497Sru traps are enabled. The current setting of this is available in the 313151497Sru `.vpt' read-only number register. 314104862Sru 315151497Sru Note that a page can't be ejected if `vpt' is set to zero. 316114402Sru 317151497Sru -- Request: .wh dist [macro] 318151497Sru Set a page location trap. Non-negative values for DIST set the 319151497Sru trap relative to the top of the page; negative values set the trap 320151497Sru relative to the bottom of the page. Default scaling indicator is 321151497Sru `v'. 322104862Sru 323151497Sru MACRO is the name of the macro to execute when the trap is sprung. 324151497Sru If MACRO is missing, remove the first trap (if any) at DIST. 325104862Sru 326151497Sru The following is a simple example of how many macro packages set 327151497Sru headers and footers. 328104862Sru 329104862Sru 330151497Sru .de hd \" Page header 331151497Sru ' sp .5i 332151497Sru . tl 'Title''date' 333151497Sru ' sp .3i 334151497Sru .. 335151497Sru . 336151497Sru .de fo \" Page footer 337151497Sru ' sp 1v 338151497Sru . tl ''%'' 339151497Sru ' bp 340151497Sru .. 341151497Sru . 342151497Sru .wh 0 hd \" trap at top of the page 343151497Sru .wh -1i fo \" trap one inch from bottom 344104862Sru 345151497Sru A trap at or below the bottom of the page is ignored; it can be 346151497Sru made active by either moving it up or increasing the page length 347151497Sru so that the trap is on the page. 348104862Sru 349151497Sru It is possible to have more than one trap at the same location; to 350151497Sru do so, the traps must be defined at different locations, then 351151497Sru moved together with the `ch' request; otherwise the second trap 352151497Sru would replace the first one. Earlier defined traps hide later 353151497Sru defined traps if moved to the same position (the many empty lines 354151497Sru caused by the `bp' request are omitted in the following example): 355114402Sru 356104862Sru 357151497Sru .de a 358151497Sru . nop a 359151497Sru .. 360151497Sru .de b 361151497Sru . nop b 362151497Sru .. 363151497Sru .de c 364151497Sru . nop c 365151497Sru .. 366151497Sru . 367151497Sru .wh 1i a 368151497Sru .wh 2i b 369151497Sru .wh 3i c 370151497Sru .bp 371151497Sru => a b c 372104862Sru 373104862Sru 374151497Sru .ch b 1i 375151497Sru .ch c 1i 376151497Sru .bp 377151497Sru => a 378104862Sru 379151497Sru 380151497Sru .ch a 0.5i 381151497Sru .bp 382151497Sru => a b 383151497Sru 384151497Sru 385151497Sru -- Register: \n[.t] 386151497Sru A read-only number register holding the distance to the next trap. 387151497Sru 388151497Sru If there are no traps between the current position and the bottom 389151497Sru of the page, it contains the distance to the page bottom. In a 390151497Sru diversion, the distance to the page bottom is infinite (the 391151497Sru returned value is the biggest integer which can be represented in 392151497Sru `groff') if there are no diversion traps. 393151497Sru 394151497Sru -- Request: .ch macro [dist] 395151497Sru Change the location of a trap. The first argument is the name of 396151497Sru the macro to be invoked at the trap, and the second argument is 397151497Sru the new location for the trap (note that the parameters are 398151497Sru specified in opposite order as in the `wh' request). This is 399151497Sru useful for building up footnotes in a diversion to allow more 400151497Sru space at the bottom of the page for them. 401151497Sru 402151497Sru Default scaling indicator for DIST is `v'. If DIST is missing, 403151497Sru the trap is removed. 404151497Sru 405151497Sru 406151497Sru -- Register: \n[.ne] 407151497Sru The read-only number register `.ne' contains the amount of space 408151497Sru that was needed in the last `ne' request that caused a trap to be 409151497Sru sprung. Useful in conjunction with the `.trunc' register. *Note 410151497Sru Page Control::, for more information. 411151497Sru 412151497Sru Since the `.ne' register is only set by traps it doesn't make much 413151497Sru sense to use it outside of trap macros. 414151497Sru 415151497Sru -- Register: \n[.trunc] 416151497Sru A read-only register containing the amount of vertical space 417151497Sru truncated by the most recently sprung vertical position trap, or, 418151497Sru if the trap was sprung by an `ne' request, minus the amount of 419151497Sru vertical motion produced by the `ne' request. In other words, at 420151497Sru the point a trap is sprung, it represents the difference of what 421151497Sru the vertical position would have been but for the trap, and what 422151497Sru the vertical position actually is. 423151497Sru 424151497Sru Since the `.trunc' register is only set by traps it doesn't make 425151497Sru much sense to use it outside of trap macros. 426151497Sru 427151497Sru -- Register: \n[.pe] 428151497Sru A read-only register which is set to 1 while a page is ejected with 429151497Sru the `bp' request (or by the end of input). 430151497Sru 431151497Sru Outside of traps this register is always zero. In the following 432151497Sru example, only the second call to `x' is caused by `bp'. 433151497Sru 434151497Sru 435151497Sru .de x 436151497Sru \&.pe=\\n[.pe] 437151497Sru .br 438151497Sru .. 439151497Sru .wh 1v x 440151497Sru .wh 4v x 441151497Sru A line. 442151497Sru .br 443151497Sru Another line. 444151497Sru .br 445151497Sru => A line. 446151497Sru .pe=0 447151497Sru Another line. 448151497Sru 449151497Sru .pe=1 450151497Sru 451151497Sru 452151497Sru An important fact to consider while designing macros is that 453151497Srudiversions and traps do not interact normally. For example, if a trap 454151497Sruinvokes a header macro (while outputting a diversion) which tries to 455151497Sruchange the font on the current page, the effect will not be visible 456151497Srubefore the diversion has completely been printed (except for input 457151497Sruprotected with `\!' or `\?') since the data in the diversion is already 458151497Sruformatted. In most cases, this is not the expected behaviour. 459151497Sru 460104862Sru 461151497SruFile: groff, Node: Diversion Traps, Next: Input Line Traps, Prev: Page Location Traps, Up: Traps 462104862Sru 463151497Sru5.24.2 Diversion Traps 464151497Sru---------------------- 465104862Sru 466151497Sru -- Request: .dt [dist macro] 467151497Sru Set a trap _within_ a diversion. DIST is the location of the trap 468151497Sru (identical to the `wh' request; default scaling indicator is `v') 469151497Sru and MACRO is the name of the macro to be invoked. If called 470151497Sru without arguments, the diversion trap is removed. 471104862Sru 472151497Sru Note that there exists only a single diversion trap. 473104862Sru 474151497Sru The number register `.t' still works within diversions. *Note 475151497Sru Diversions::, for more information. 476104862Sru 477151497Sru 478151497SruFile: groff, Node: Input Line Traps, Next: Blank Line Traps, Prev: Diversion Traps, Up: Traps 479104862Sru 480151497Sru5.24.3 Input Line Traps 481151497Sru----------------------- 482104862Sru 483151497Sru -- Request: .it n macro 484151497Sru -- Request: .itc n macro 485151497Sru Set an input line trap. N is the number of lines of input which 486151497Sru may be read before springing the trap, MACRO is the macro to be 487151497Sru invoked. Request lines are not counted as input lines. 488104862Sru 489151497Sru For example, one possible use is to have a macro which prints the 490151497Sru next N lines in a bold font. 491104862Sru 492104862Sru 493151497Sru .de B 494151497Sru . it \\$1 B-end 495151497Sru . ft B 496151497Sru .. 497151497Sru . 498151497Sru .de B-end 499151497Sru . ft R 500151497Sru .. 501104862Sru 502151497Sru The `itc' request is identical except that an interrupted text 503151497Sru line (ending with `\c') is not counted as a separate line. 504104862Sru 505151497Sru Both requests are associated with the current environment (*note 506151497Sru Environments::); switching to another environment disables the 507151497Sru current input trap, and going back reactivates it, restoring the 508151497Sru number of already processed lines. 509104862Sru 510151497Sru 511151497SruFile: groff, Node: Blank Line Traps, Next: End-of-input Traps, Prev: Input Line Traps, Up: Traps 512104862Sru 513151497Sru5.24.4 Blank Line Traps 514151497Sru----------------------- 515104862Sru 516151497Sru -- Request: .blm macro 517151497Sru Set a blank line trap. `gtroff' executes MACRO when it encounters 518151497Sru a blank line in the input file. 519104862Sru 520104862Sru 521151497SruFile: groff, Node: End-of-input Traps, Prev: Blank Line Traps, Up: Traps 522104862Sru 523151497Sru5.24.5 End-of-input Traps 524151497Sru------------------------- 525104862Sru 526151497Sru -- Request: .em macro 527151497Sru Set a trap at the end of input. MACRO is executed after the last 528151497Sru line of the input file has been processed. 529104862Sru 530151497Sru For example, if the document had to have a section at the bottom 531151497Sru of the last page for someone to approve it, the `em' request could 532151497Sru be used. 533104862Sru 534104862Sru 535151497Sru .de approval 536151497Sru . ne 5v 537151497Sru . sp |(\\n[.t] - 6v) 538151497Sru . in +4i 539151497Sru . lc _ 540151497Sru . br 541151497Sru Approved:\t\a 542151497Sru . sp 543151497Sru Date:\t\t\a 544151497Sru .. 545151497Sru . 546151497Sru .em approval 547104862Sru 548114402Sru 549151497Sru 550151497SruFile: groff, Node: Diversions, Next: Environments, Prev: Traps, Up: gtroff Reference 551114402Sru 552151497Sru5.25 Diversions 553151497Sru=============== 554114402Sru 555151497SruIn `gtroff' it is possible to "divert" text into a named storage area. 556151497SruDue to the similarity to defining macros it is sometimes said to be 557151497Srustored in a macro. This is used for saving text for output at a later 558151497Srutime, which is useful for keeping blocks of text on the same page, 559151497Srufootnotes, tables of contents, and indices. 560114402Sru 561151497Sru For orthogonality it is said that `gtroff' is in the "top-level 562151497Srudiversion" if no diversion is active (i.e., the data is diverted to the 563151497Sruoutput device). 564114402Sru 565151497Sru -- Request: .di macro 566151497Sru -- Request: .da macro 567151497Sru Begin a diversion. Like the `de' request, it takes an argument of 568151497Sru a macro name to divert subsequent text into. The `da' macro 569151497Sru appends to an existing diversion. 570114402Sru 571151497Sru `di' or `da' without an argument ends the diversion. 572114402Sru 573151497Sru -- Request: .box macro 574151497Sru -- Request: .boxa macro 575151497Sru Begin (or appends to) a diversion like the `di' and `da' requests. 576151497Sru The difference is that `box' and `boxa' do not include a 577151497Sru partially-filled line in the diversion. 578114402Sru 579151497Sru Compare this: 580114402Sru 581114402Sru 582151497Sru Before the box. 583151497Sru .box xxx 584151497Sru In the box. 585151497Sru .br 586151497Sru .box 587151497Sru After the box. 588151497Sru .br 589151497Sru => Before the box. After the box. 590151497Sru .xxx 591151497Sru => In the box. 592114402Sru 593151497Sru with this: 594114402Sru 595151497Sru 596151497Sru Before the diversion. 597151497Sru .di yyy 598151497Sru In the diversion. 599151497Sru .br 600151497Sru .di 601151497Sru After the diversion. 602151497Sru .br 603151497Sru => After the diversion. 604151497Sru .yyy 605151497Sru => Before the diversion. In the diversion. 606151497Sru 607151497Sru `box' or `boxa' without an argument ends the diversion. 608151497Sru 609151497Sru -- Register: \n[.z] 610151497Sru -- Register: \n[.d] 611151497Sru Diversions may be nested. The read-only number register `.z' 612151497Sru contains the name of the current diversion (this is a string-valued 613151497Sru register). The read-only number register `.d' contains the current 614151497Sru vertical place in the diversion. If not in a diversion it is the 615151497Sru same as register `nl'. 616151497Sru 617151497Sru -- Register: \n[.h] 618151497Sru The "high-water mark" on the current page. It corresponds to the 619151497Sru text baseline of the lowest line on the page. This is a read-only 620151497Sru register. 621151497Sru 622151497Sru 623151497Sru .tm .h==\n[.h], nl==\n[nl] 624151497Sru => .h==0, nl==-1 625151497Sru This is a test. 626151497Sru .br 627151497Sru .sp 2 628151497Sru .tm .h==\n[.h], nl==\n[nl] 629151497Sru => .h==40, nl==120 630151497Sru 631151497Sru As can be seen in the previous example, empty lines are not 632151497Sru considered in the return value of the `.h' register. 633151497Sru 634151497Sru -- Register: \n[dn] 635151497Sru -- Register: \n[dl] 636151497Sru After completing a diversion, the read-write number registers `dn' 637151497Sru and `dl' contain the vertical and horizontal size of the diversion. 638151497Sru Note that only the just processed lines are counted: For the 639151497Sru computation of `dn' and `dl', the requests `da' and `boxa' are 640151497Sru handled as if `di' and `box' had been used - lines which have been 641151497Sru already stored in a macro are not taken into account. 642151497Sru 643151497Sru 644151497Sru .\" Center text both horizontally & vertically 645151497Sru . 646151497Sru .\" Enclose macro definitions in .eo and .ec 647151497Sru .\" to avoid the doubling of the backslash 648151497Sru .eo 649151497Sru .\" macro .(c starts centering mode 650151497Sru .de (c 651151497Sru . br 652151497Sru . ev (c 653151497Sru . evc 0 654151497Sru . in 0 655151497Sru . nf 656151497Sru . di @c 657151497Sru .. 658151497Sru 659151497Sru 660151497Sru .\" macro .)c terminates centering mode 661151497Sru .de )c 662151497Sru . br 663151497Sru . ev 664151497Sru . di 665151497Sru . nr @s (((\n[.t]u - \n[dn]u) / 2u) - 1v) 666151497Sru . sp \n[@s]u 667151497Sru . ce 1000 668151497Sru . @c 669151497Sru . ce 0 670151497Sru . sp \n[@s]u 671151497Sru . br 672151497Sru . fi 673151497Sru . rr @s 674151497Sru . rm @s 675151497Sru . rm @c 676151497Sru .. 677151497Sru .\" End of macro definitions, restore escape mechanism 678151497Sru .ec 679151497Sru 680151497Sru 681151497Sru -- Escape: \! 682151497Sru -- Escape: \?anything\? 683151497Sru Prevent requests, macros, and escapes from being interpreted when 684151497Sru read into a diversion. Both escapes take the given text and 685151497Sru "transparently" embed it into the diversion. This is useful for 686151497Sru macros which shouldn't be invoked until the diverted text is 687151497Sru actually output. 688151497Sru 689151497Sru The `\!' escape transparently embeds text up to and including the 690151497Sru end of the line. The `\?' escape transparently embeds text until 691151497Sru the next occurrence of the `\?' escape. Example: 692151497Sru 693151497Sru 694151497Sru \?ANYTHING\? 695151497Sru 696151497Sru ANYTHING may not contain newlines; use `\!' to embed newlines in 697151497Sru a diversion. The escape sequence `\?' is also recognized in copy 698151497Sru mode and turned into a single internal code; it is this code that 699151497Sru terminates ANYTHING. Thus the following example prints 4. 700151497Sru 701151497Sru 702151497Sru .nr x 1 703151497Sru .nf 704151497Sru .di d 705151497Sru \?\\?\\\\?\\\\\\\\nx\\\\?\\?\? 706151497Sru .di 707151497Sru .nr x 2 708151497Sru .di e 709151497Sru .d 710151497Sru .di 711151497Sru .nr x 3 712151497Sru .di f 713151497Sru .e 714151497Sru .di 715151497Sru .nr x 4 716151497Sru .f 717151497Sru 718151497Sru Both escapes read the data in copy mode. 719151497Sru 720151497Sru If `\!' is used in the top-level diversion, its argument is 721151497Sru directly embedded into the `gtroff' intermediate output. This can 722151497Sru be used for example to control a postprocessor which processes the 723151497Sru data before it is sent to the device driver. 724151497Sru 725151497Sru The `\?' escape used in the top-level diversion produces no output 726151497Sru at all; its argument is simply ignored. 727151497Sru 728151497Sru -- Request: .output string 729151497Sru Emit STRING directly to the `gtroff' intermediate output (subject 730151497Sru to copy-mode interpretation); this is similar to `\!' used at the 731151497Sru top level. An initial double quote in STRING is stripped off to 732151497Sru allow initial blanks. 733151497Sru 734151497Sru This request can't be used before the first page has started - if 735151497Sru you get an error, simply insert `.br' before the `output' request. 736151497Sru 737151497Sru Without argument, `output' is ignored. 738151497Sru 739151497Sru Use with caution! It is normally only needed for mark-up used by a 740151497Sru postprocessor which does something with the output before sending 741151497Sru it to the output device, filtering out STRING again. 742151497Sru 743151497Sru -- Request: .asciify div 744151497Sru "Unformat" the diversion specified by DIV in such a way that ASCII 745151497Sru characters, characters translated with the `trin' request, space 746151497Sru characters, and some escape sequences that were formatted and 747151497Sru diverted are treated like ordinary input characters when the 748151497Sru diversion is reread. It can be also used for gross hacks; for 749151497Sru example, the following sets register `n' to 1. 750151497Sru 751151497Sru 752151497Sru .tr @. 753151497Sru .di x 754151497Sru @nr n 1 755151497Sru .br 756151497Sru .di 757151497Sru .tr @@ 758151497Sru .asciify x 759151497Sru .x 760151497Sru 761151497Sru *Note Copy-in Mode::. 762151497Sru 763151497Sru -- Request: .unformat div 764151497Sru Like `asciify', unformat the specified diversion. However, 765151497Sru `unformat' only unformats spaces and tabs between words. 766151497Sru Unformatted tabs are treated as input tokens, and spaces are 767151497Sru stretchable again. 768151497Sru 769151497Sru The vertical size of lines is not preserved; glyph information 770151497Sru (font, font size, space width, etc.) is retained. 771151497Sru 772104862Sru 773151497SruFile: groff, Node: Environments, Next: Suppressing output, Prev: Diversions, Up: gtroff Reference 774104862Sru 775151497Sru5.26 Environments 776151497Sru================= 777104862Sru 778151497SruIt happens frequently that some text should be printed in a certain 779151497Sruformat regardless of what may be in effect at the time, for example, in 780151497Srua trap invoked macro to print headers and footers. To solve this 781151497Sru`gtroff' processes text in "environments". An environment contains 782151497Srumost of the parameters that control text processing. It is possible to 783151497Sruswitch amongst these environments; by default `gtroff' processes text 784151497Sruin environment 0. The following is the information kept in an 785151497Sruenvironment. 786104862Sru 787151497Sru * font parameters (size, family, style, glyph height and slant, space 788151497Sru and sentence space size) 789104862Sru 790151497Sru * page parameters (line length, title length, vertical spacing, line 791151497Sru spacing, indentation, line numbering, centering, right-justifying, 792151497Sru underlining, hyphenation data) 793114402Sru 794151497Sru * fill and adjust mode 795104862Sru 796151497Sru * tab stops, tab and leader characters, escape character, no-break 797151497Sru and hyphen indicators, margin character data 798104862Sru 799151497Sru * partially collected lines 800104862Sru 801151497Sru * input traps 802151497Sru 803151497Sru * drawing and fill colours 804151497Sru 805151497Sru These environments may be given arbitrary names (see *Note 806151497SruIdentifiers::, for more info). Old versions of `troff' only had 807151497Sruenvironments named `0', `1', and `2'. 808151497Sru 809151497Sru -- Request: .ev [env] 810151497Sru -- Register: \n[.ev] 811151497Sru Switch to another environment. The argument ENV is the name of 812151497Sru the environment to switch to. With no argument, `gtroff' switches 813151497Sru back to the previous environment. There is no limit on the number 814151497Sru of named environments; they are created the first time that they 815151497Sru are referenced. The `.ev' read-only register contains the name or 816151497Sru number of the current environment. This is a string-valued 817151497Sru register. 818151497Sru 819151497Sru Note that a call to `ev' (with argument) pushes the previously 820151497Sru active environment onto a stack. If, say, environments `foo', 821151497Sru `bar', and `zap' are called (in that order), the first `ev' 822151497Sru request without parameter switches back to environment `bar' 823151497Sru (which is popped off the stack), and a second call switches back 824151497Sru to environment `foo'. 825151497Sru 826151497Sru Here is an example: 827151497Sru 828151497Sru 829151497Sru .ev footnote-env 830151497Sru .fam N 831151497Sru .ps 6 832151497Sru .vs 8 833151497Sru .ll -.5i 834151497Sru .ev 835151497Sru 836151497Sru ... 837151497Sru 838151497Sru .ev footnote-env 839151497Sru \(dg Note the large, friendly letters. 840151497Sru .ev 841151497Sru 842151497Sru 843151497Sru -- Request: .evc env 844151497Sru Copy the environment ENV into the current environment. 845151497Sru 846151497Sru The following environment data is not copied: 847151497Sru 848151497Sru * Partially filled lines. 849151497Sru 850151497Sru * The status whether the previous line was interrupted. 851151497Sru 852151497Sru * The number of lines still to center, or to right-justify, or 853151497Sru to underline (with or without underlined spaces); they are 854151497Sru set to zero. 855151497Sru 856151497Sru * The status whether a temporary indentation is active. 857151497Sru 858151497Sru * Input traps and its associated data. 859151497Sru 860151497Sru * Line numbering mode is disabled; it can be reactivated with 861151497Sru `.nm +0'. 862151497Sru 863151497Sru * The number of consecutive hyphenated lines (set to zero). 864151497Sru 865151497Sru -- Register: \n[.w] 866151497Sru -- Register: \n[.cht] 867151497Sru -- Register: \n[.cdp] 868151497Sru -- Register: \n[.csk] 869151497Sru The `\n[.w]' register contains the width of the last glyph added 870151497Sru to the current environment. 871151497Sru 872151497Sru The `\n[.cht]' register contains the height of the last glyph 873151497Sru added to the current environment. 874151497Sru 875151497Sru The `\n[.cdp]' register contains the depth of the last glyph added 876151497Sru to the current environment. It is positive for glyphs extending 877151497Sru below the baseline. 878151497Sru 879151497Sru The `\n[.csk]' register contains the "skew" (how far to the right 880151497Sru of the glyph's center that `gtroff' should place an accent) of the 881151497Sru last glyph added to the current environment. 882151497Sru 883151497Sru -- Register: \n[.n] 884151497Sru The `\n[.n]' register contains the length of the previous output 885151497Sru line in the current environment. 886151497Sru 887104862Sru 888151497SruFile: groff, Node: Suppressing output, Next: Colors, Prev: Environments, Up: gtroff Reference 889104862Sru 890151497Sru5.27 Suppressing output 891151497Sru======================= 892104862Sru 893151497Sru -- Escape: \Onum 894151497Sru Disable or enable output depending on the value of NUM: 895104862Sru 896151497Sru `\O0' 897151497Sru Disable any glyphs from being emitted to the device driver, 898151497Sru provided that the escape occurs at the outer level (see 899151497Sru `\O[3]' and `\O[4]'). Motion is not suppressed so 900151497Sru effectively `\O[0]' means _pen up_. 901104862Sru 902151497Sru `\O1' 903151497Sru Enable output of glyphs, provided that the escape occurs at 904151497Sru the outer level. 905104862Sru 906151497Sru `\O0' and `\O1' also reset the four registers `opminx', `opminy', 907151497Sru `opmaxx', and `opmaxy' to -1. *Note Register Index::. These four 908151497Sru registers mark the top left and bottom right hand corners of a box 909151497Sru which encompasses all written glyphs. 910104862Sru 911151497Sru For example the input text: 912151497Sru 913151497Sru 914151497Sru Hello \O[0]world \O[1]this is a test. 915151497Sru 916151497Sru produces the following output: 917151497Sru 918151497Sru 919151497Sru Hello this is a test. 920151497Sru 921151497Sru `\O2' 922151497Sru Provided that the escape occurs at the outer level, enable 923151497Sru output of glyphs and also write out to `stderr' the page 924151497Sru number and four registers encompassing the glyphs previously 925151497Sru written since the last call to `\O'. 926151497Sru 927151497Sru `\O3' 928151497Sru Begin a nesting level. At start-up, `gtroff' is at outer 929151497Sru level. 930151497Sru 931151497Sru `\O4' 932151497Sru End a nesting level. 933151497Sru 934151497Sru `\O[5PFILENAME]' 935151497Sru This escape is `grohtml' specific. Provided that this escape 936151497Sru occurs at the outer nesting level write the `filename' to 937151497Sru `stderr'. The position of the image, P, must be specified 938151497Sru and must be one of `l', `r', `c', or `i' (left, right, 939151497Sru centered, inline). FILENAME will be associated with the 940151497Sru production of the next inline image. 941151497Sru 942104862Sru 943151497SruFile: groff, Node: Colors, Next: I/O, Prev: Suppressing output, Up: gtroff Reference 944114402Sru 945151497Sru5.28 Colors 946151497Sru=========== 947114402Sru 948151497Sru -- Request: .color [n] 949151497Sru -- Register: \n[.color] 950151497Sru If N is missing or non-zero, activate colors (this is the default); 951151497Sru otherwise, turn it off. 952114402Sru 953151497Sru The read-only number register `.color' is 1 if colors are active, 954151497Sru 0 otherwise. 955114402Sru 956151497Sru Internally, `color' sets a global flag; it does not produce a 957151497Sru token. Similar to the `cp' request, you should use it at the 958151497Sru beginning of your document to control color output. 959114402Sru 960151497Sru Colors can be also turned off with the `-c' command line option. 961114402Sru 962151497Sru -- Request: .defcolor ident scheme color_components 963151497Sru Define color with name IDENT. SCHEME can be one of the following 964151497Sru values: `rgb' (three components), `cmy' (three components), `cmyk' 965151497Sru (four components), and `gray' or `grey' (one component). 966114402Sru 967151497Sru Color components can be given either as a hexadecimal string or as 968151497Sru positive decimal integers in the range 0-65535. A hexadecimal 969151497Sru string contains all color components concatenated. It must start 970151497Sru with either `#' or `##'; the former specifies hex values in the 971151497Sru range 0-255 (which are internally multiplied by 257), the latter 972151497Sru in the range 0-65535. Examples: `#FFC0CB' (pink), `##ffff0000ffff' 973151497Sru (magenta). The default color name value is device-specific 974151497Sru (usually black). It is possible that the default color for `\m' 975151497Sru and `\M' is not identical. 976114402Sru 977151497Sru A new scaling indicator `f' has been introduced which multiplies 978151497Sru its value by 65536; this makes it convenient to specify color 979151497Sru components as fractions in the range 0 to 1 (1f equals 65536u). 980151497Sru Example: 981114402Sru 982114402Sru 983151497Sru .defcolor darkgreen rgb 0.1f 0.5f 0.2f 984114402Sru 985151497Sru Note that `f' is the default scaling indicator for the `defcolor' 986151497Sru request, thus the above statement is equivalent to 987114402Sru 988114402Sru 989151497Sru .defcolor darkgreen rgb 0.1 0.5 0.2 990114402Sru 991114402Sru 992151497Sru -- Request: .gcolor [color] 993151497Sru -- Escape: \mc 994151497Sru -- Escape: \m(co 995151497Sru -- Escape: \m[color] 996151497Sru -- Register: \n[.m] 997151497Sru Set (glyph) drawing color. The following examples show how to 998151497Sru turn the next four words red. 999114402Sru 1000114402Sru 1001151497Sru .gcolor red 1002151497Sru these are in red 1003151497Sru .gcolor 1004151497Sru and these words are in black. 1005114402Sru 1006114402Sru 1007151497Sru \m[red]these are in red\m[] and these words are in black. 1008114402Sru 1009151497Sru The escape `\m[]' returns to the previous color, as does a call to 1010151497Sru `gcolor' without an argument. 1011114402Sru 1012151497Sru The name of the current drawing color is available in the 1013151497Sru read-only, string-valued number register `.m'. 1014114402Sru 1015151497Sru The drawing color is associated with the current environment 1016151497Sru (*note Environments::). 1017114402Sru 1018151497Sru Note that `\m' doesn't produce an input token in `gtroff'. As a 1019151497Sru consequence, it can be used in requests like `mc' (which expects a 1020151497Sru single character as an argument) to change the color on the fly: 1021114402Sru 1022114402Sru 1023151497Sru .mc \m[red]x\m[] 1024114402Sru 1025114402Sru 1026151497Sru -- Request: .fcolor [color] 1027151497Sru -- Escape: \Mc 1028151497Sru -- Escape: \M(co 1029151497Sru -- Escape: \M[color] 1030151497Sru -- Register: \n[.M] 1031151497Sru Set fill (background) color for filled objects drawn with the 1032151497Sru `\D'...'' commands. 1033114402Sru 1034151497Sru A red ellipse can be created with the following code: 1035114402Sru 1036114402Sru 1037151497Sru \M[red]\h'0.5i'\D'E 2i 1i'\M[] 1038114402Sru 1039151497Sru The escape `\M[]' returns to the previous fill color, as does a 1040151497Sru call to `fcolor' without an argument. 1041114402Sru 1042151497Sru The name of the current fill (background) color is available in the 1043151497Sru read-only, string-valued number register `.M'. 1044114402Sru 1045151497Sru The fill color is associated with the current environment (*note 1046151497Sru Environments::). 1047151497Sru 1048151497Sru Note that `\M' doesn't produce an input token in `gtroff'. 1049151497Sru 1050114402Sru 1051151497SruFile: groff, Node: I/O, Next: Postprocessor Access, Prev: Colors, Up: gtroff Reference 1052104862Sru 1053151497Sru5.29 I/O 1054151497Sru======== 1055104862Sru 1056151497Sru`gtroff' has several requests for including files: 1057104862Sru 1058151497Sru -- Request: .so file 1059151497Sru Read in the specified FILE and includes it in place of the `so' 1060151497Sru request. This is quite useful for large documents, e.g. keeping 1061151497Sru each chapter in a separate file. *Note gsoelim::, for more 1062151497Sru information. 1063151497Sru 1064151497Sru Since `gtroff' replaces the `so' request with the contents of 1065151497Sru `file', it makes a difference whether the data is terminated with 1066151497Sru a newline or not: Assuming that file `xxx' contains the word `foo' 1067151497Sru without a final newline, this 1068151497Sru 1069151497Sru 1070151497Sru This is 1071151497Sru .so xxx 1072151497Sru bar 1073151497Sru 1074151497Sru yields `This is foobar'. 1075151497Sru 1076151497Sru The search path for FILE can be controlled with the `-I' command 1077151497Sru line option. 1078151497Sru 1079151497Sru -- Request: .pso command 1080151497Sru Read the standard output from the specified COMMAND and includes 1081151497Sru it in place of the `pso' request. 1082151497Sru 1083151497Sru This request causes an error if used in safer mode (which is the 1084151497Sru default). Use `groff''s or `troff''s `-U' option to activate 1085151497Sru unsafe mode. 1086151497Sru 1087151497Sru The comment regarding a final newline for the `so' request is valid 1088151497Sru for `pso' also. 1089151497Sru 1090151497Sru -- Request: .mso file 1091151497Sru Identical to the `so' request except that `gtroff' searches for 1092151497Sru the specified FILE in the same directories as macro files for the 1093151497Sru the `-m' command line option. If the file name to be included has 1094151497Sru the form `NAME.tmac' and it isn't found, `mso' tries to include 1095151497Sru `tmac.NAME' and vice versa. 1096151497Sru 1097151497Sru -- Request: .trf file 1098151497Sru -- Request: .cf file 1099151497Sru Transparently output the contents of FILE. Each line is output as 1100151497Sru if it were preceded by `\!'; however, the lines are not subject to 1101151497Sru copy mode interpretation. If the file does not end with a newline, 1102151497Sru then a newline is added (`trf' only). For example, to define a 1103151497Sru macro `x' containing the contents of file `f', use 1104151497Sru 1105151497Sru 1106151497Sru .di x 1107151497Sru .trf f 1108151497Sru .di 1109151497Sru 1110151497Sru Both `trf' and `cf', when used in a diversion, embeds an object in 1111151497Sru the diversion which, when reread, causes the contents of FILE to 1112151497Sru be transparently copied through to the output. In UNIX `troff', 1113151497Sru the contents of FILE is immediately copied through to the output 1114151497Sru regardless of whether there is a current diversion; this behaviour 1115151497Sru is so anomalous that it must be considered a bug. 1116151497Sru 1117151497Sru While `cf' copies the contents of FILE completely unprocessed, 1118151497Sru `trf' disallows characters such as NUL that are not valid `gtroff' 1119151497Sru input characters (*note Identifiers::). 1120151497Sru 1121151497Sru Both requests cause a line break. 1122151497Sru 1123151497Sru -- Request: .nx [file] 1124151497Sru Force `gtroff' to continue processing of the file specified as an 1125151497Sru argument. If no argument is given, immediately jump to the end of 1126151497Sru file. 1127151497Sru 1128151497Sru -- Request: .rd [prompt [arg1 arg2 ...]] 1129151497Sru Read from standard input, and include what is read as though it 1130151497Sru were part of the input file. Text is read until a blank line is 1131151497Sru encountered. 1132151497Sru 1133151497Sru If standard input is a TTY input device (keyboard), write PROMPT 1134151497Sru to standard error, followed by a colon (or send BEL for a beep if 1135151497Sru no argument is given). 1136151497Sru 1137151497Sru Arguments after PROMPT are available for the input. For example, 1138151497Sru the line 1139151497Sru 1140151497Sru 1141151497Sru .rd data foo bar 1142151497Sru 1143151497Sru with the input `This is \$2.' prints 1144151497Sru 1145151497Sru 1146151497Sru This is bar. 1147151497Sru 1148151497Sru 1149151497Sru Using the `nx' and `rd' requests, it is easy to set up form letters. 1150151497SruThe form letter template is constructed like this, putting the 1151151497Srufollowing lines into a file called `repeat.let': 1152151497Sru 1153151497Sru 1154151497Sru .ce 1155151497Sru \*(td 1156151497Sru .sp 2 1157151497Sru .nf 1158151497Sru .rd 1159151497Sru .sp 1160151497Sru .rd 1161151497Sru .fi 1162151497Sru Body of letter. 1163151497Sru .bp 1164151497Sru .nx repeat.let 1165151497Sru 1166151497SruWhen this is run, a file containing the following lines should be 1167151497Sruredirected in. Note that requests included in this file are executed 1168151497Sruas though they were part of the form letter. The last block of input 1169151497Sruis the `ex' request which tells `groff' to stop processing. If this 1170151497Sruwas not there, `groff' would not know when to stop. 1171151497Sru 1172151497Sru 1173151497Sru Trent A. Fisher 1174151497Sru 708 NW 19th Av., #202 1175151497Sru Portland, OR 97209 1176151497Sru 1177151497Sru Dear Trent, 1178151497Sru 1179151497Sru Len Adollar 1180151497Sru 4315 Sierra Vista 1181151497Sru San Diego, CA 92103 1182151497Sru 1183151497Sru Dear Mr. Adollar, 1184151497Sru 1185151497Sru .ex 1186151497Sru 1187151497Sru -- Request: .pi pipe 1188151497Sru Pipe the output of `gtroff' to the shell command(s) specified by 1189151497Sru PIPE. This request must occur before `gtroff' has a chance to 1190151497Sru print anything. 1191151497Sru 1192151497Sru `pi' causes an error if used in safer mode (which is the default). 1193151497Sru Use `groff''s or `troff''s `-U' option to activate unsafe mode. 1194151497Sru 1195151497Sru Multiple calls to `pi' are allowed, acting as a chain. For 1196151497Sru example, 1197151497Sru 1198151497Sru 1199151497Sru .pi foo 1200151497Sru .pi bar 1201151497Sru ... 1202151497Sru 1203151497Sru is the same as `.pi foo | bar'. 1204151497Sru 1205151497Sru Note that the intermediate output format of `gtroff' is piped to 1206151497Sru the specified commands. Consequently, calling `groff' without the 1207151497Sru `-Z' option normally causes a fatal error. 1208151497Sru 1209151497Sru -- Request: .sy cmds 1210151497Sru -- Register: \n[systat] 1211151497Sru Execute the shell command(s) specified by CMDS. The output is not 1212151497Sru saved anyplace, so it is up to the user to do so. 1213151497Sru 1214151497Sru This request causes an error if used in safer mode (which is the 1215151497Sru default). Use `groff''s or `troff''s `-U' option to activate 1216151497Sru unsafe mode. 1217151497Sru 1218151497Sru For example, the following code fragment introduces the current 1219151497Sru time into a document: 1220151497Sru 1221151497Sru 1222151497Sru .sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\ 1223151497Sru (localtime(time))[2,1,0]' > /tmp/x\n[$$] 1224151497Sru .so /tmp/x\n[$$] 1225151497Sru .sy rm /tmp/x\n[$$] 1226151497Sru \nH:\nM:\nS 1227151497Sru 1228151497Sru Note that this works by having the `perl' script (run by `sy') 1229151497Sru print out the `nr' requests which set the number registers `H', 1230151497Sru `M', and `S', and then reads those commands in with the `so' 1231151497Sru request. 1232151497Sru 1233151497Sru For most practical purposes, the number registers `seconds', 1234151497Sru `minutes', and `hours' which are initialized at start-up of 1235151497Sru `gtroff' should be sufficient. Use the `af' request to get a 1236151497Sru formatted output: 1237151497Sru 1238151497Sru 1239151497Sru .af hours 00 1240151497Sru .af minutes 00 1241151497Sru .af seconds 00 1242151497Sru \n[hours]:\n[minutes]:\n[seconds] 1243151497Sru 1244151497Sru The `systat' read-write number register contains the return value 1245151497Sru of the `system()' function executed by the last `sy' request. 1246151497Sru 1247151497Sru -- Request: .open stream file 1248151497Sru -- Request: .opena stream file 1249151497Sru Open the specified FILE for writing and associates the specified 1250151497Sru STREAM with it. 1251151497Sru 1252151497Sru The `opena' request is like `open', but if the file exists, append 1253151497Sru to it instead of truncating it. 1254151497Sru 1255151497Sru Both `open' and `opena' cause an error if used in safer mode 1256151497Sru (which is the default). Use `groff''s or `troff''s `-U' option to 1257151497Sru activate unsafe mode. 1258151497Sru 1259151497Sru -- Request: .write stream data 1260151497Sru -- Request: .writec stream data 1261151497Sru Write to the file associated with the specified STREAM. The 1262151497Sru stream must previously have been the subject of an open request. 1263151497Sru The remainder of the line is interpreted as the `ds' request reads 1264151497Sru its second argument: A leading `"' is stripped, and it is read in 1265151497Sru copy-in mode. 1266151497Sru 1267151497Sru The `writec' request is like `write', but only `write' appends a 1268151497Sru newline to the data. 1269151497Sru 1270151497Sru -- Request: .writem stream xx 1271151497Sru Write the contents of the macro or string XX to the file 1272151497Sru associated with the specified STREAM. 1273151497Sru 1274151497Sru XX is read in copy mode, i.e., already formatted elements are 1275151497Sru ignored. Consequently, diversions must be unformatted with the 1276151497Sru `asciify' request before calling `writem'. Usually, this means a 1277151497Sru loss of information. 1278151497Sru 1279151497Sru -- Request: .close stream 1280151497Sru Close the specified STREAM; the stream is no longer an acceptable 1281151497Sru argument to the `write' request. 1282151497Sru 1283151497Sru Here a simple macro to write an index entry. 1284151497Sru 1285151497Sru 1286151497Sru .open idx test.idx 1287151497Sru . 1288151497Sru .de IX 1289151497Sru . write idx \\n[%] \\$* 1290151497Sru .. 1291151497Sru . 1292151497Sru .IX test entry 1293151497Sru . 1294151497Sru .close idx 1295151497Sru 1296151497Sru 1297151497Sru -- Escape: \Ve 1298151497Sru -- Escape: \V(ev 1299151497Sru -- Escape: \V[env] 1300151497Sru Interpolate the contents of the specified environment variable ENV 1301151497Sru (one-character name E, two-character name EV) as returned by the 1302151497Sru function `getenv'. `\V' is interpreted in copy-in mode. 1303151497Sru 1304104862Sru 1305151497SruFile: groff, Node: Postprocessor Access, Next: Miscellaneous, Prev: I/O, Up: gtroff Reference 1306104862Sru 1307151497Sru5.30 Postprocessor Access 1308151497Sru========================= 1309104862Sru 1310151497SruThere are two escapes which give information directly to the 1311151497Srupostprocessor. This is particularly useful for embedding POSTSCRIPT 1312151497Sruinto the final document. 1313104862Sru 1314151497Sru -- Escape: \X'xxx' 1315151497Sru Embeds its argument into the `gtroff' output preceded with `x X'. 1316104862Sru 1317151497Sru The escapes `\&', `\)', `\%', and `\:' are ignored within `\X', 1318151497Sru `\ ' and `\~' are converted to single space characters. All other 1319151497Sru escapes (except `\\' which produces a backslash) cause an error. 1320104862Sru 1321151497Sru If the `use_charnames_in_special' keyword is set in the `DESC' 1322151497Sru file, special characters no longer cause an error; the name XX is 1323151497Sru represented as `\(XX)' in the `x X' output command. Additionally, 1324151497Sru the backslash is represented as `\\'. 1325151497Sru 1326151497Sru `use_charnames_in_special' is currently used by `grohtml' only. 1327151497Sru 1328151497Sru -- Escape: \Yn 1329151497Sru -- Escape: \Y(nm 1330151497Sru -- Escape: \Y[name] 1331151497Sru This is approximately equivalent to `\X'\*[NAME]'' (one-character 1332151497Sru name N, two-character name NM). However, the contents of the 1333151497Sru string or macro NAME are not interpreted; also it is permitted for 1334151497Sru NAME to have been defined as a macro and thus contain newlines (it 1335151497Sru is not permitted for the argument to `\X' to contain newlines). 1336151497Sru The inclusion of newlines requires an extension to the UNIX `troff' 1337151497Sru output format, and confuses drivers that do not know about this 1338151497Sru extension (*note Device Control Commands::). 1339151497Sru 1340151497Sru *Note Output Devices::. 1341151497Sru 1342104862Sru 1343151497SruFile: groff, Node: Miscellaneous, Next: Gtroff Internals, Prev: Postprocessor Access, Up: gtroff Reference 1344104862Sru 1345151497Sru5.31 Miscellaneous 1346151497Sru================== 1347104862Sru 1348151497SruThis section documents parts of `gtroff' which cannot (yet) be 1349151497Srucategorized elsewhere in this manual. 1350104862Sru 1351151497Sru -- Request: .nm [start [inc [space [indent]]]] 1352151497Sru Print line numbers. START is the line number of the _next_ output 1353151497Sru line. INC indicates which line numbers are printed. For example, 1354151497Sru the value 5 means to emit only line numbers which are multiples 1355151497Sru of 5; this defaults to 1. SPACE is the space to be left between 1356151497Sru the number and the text; this defaults to one digit space. The 1357151497Sru fourth argument is the indentation of the line numbers, defaulting 1358151497Sru to zero. Both SPACE and INDENT are given as multiples of digit 1359151497Sru spaces; they can be negative also. Without any arguments, line 1360151497Sru numbers are turned off. 1361104862Sru 1362151497Sru `gtroff' reserves three digit spaces for the line number (which is 1363151497Sru printed right-justified) plus the amount given by INDENT; the 1364151497Sru output lines are concatenated to the line numbers, separated by 1365151497Sru SPACE, and _without_ reducing the line length. Depending on the 1366151497Sru value of the horizontal page offset (as set with the `po' 1367151497Sru request), line numbers which are longer than the reserved space 1368151497Sru stick out to the left, or the whole line is moved to the right. 1369151497Sru 1370151497Sru Parameters corresponding to missing arguments are not changed; any 1371151497Sru non-digit argument (to be more precise, any argument starting with 1372151497Sru a character valid as a delimiter for identifiers) is also treated 1373151497Sru as missing. 1374151497Sru 1375151497Sru If line numbering has been disabled with a call to `nm' without an 1376151497Sru argument, it can be reactivated with `.nm +0', using the 1377151497Sru previously active line numbering parameters. 1378151497Sru 1379151497Sru The parameters of `nm' are associated with the current environment 1380151497Sru (*note Environments::). The current output line number is 1381151497Sru available in the number register `ln'. 1382151497Sru 1383151497Sru 1384151497Sru .po 1m 1385151497Sru .ll 2i 1386151497Sru This test shows how line numbering works with groff. 1387151497Sru .nm 999 1388151497Sru This test shows how line numbering works with groff. 1389151497Sru .br 1390151497Sru .nm xxx 3 2 1391151497Sru .ll -\w'0'u 1392151497Sru This test shows how line numbering works with groff. 1393151497Sru .nn 2 1394151497Sru This test shows how line numbering works with groff. 1395151497Sru 1396151497Sru And here the result: 1397151497Sru 1398151497Sru 1399151497Sru This test shows how 1400151497Sru line numbering works 1401151497Sru 999 with groff. This 1402151497Sru 1000 test shows how line 1403151497Sru 1001 numbering works with 1404151497Sru 1002 groff. 1405151497Sru This test shows how 1406151497Sru line numbering 1407151497Sru works with groff. 1408151497Sru This test shows how 1409151497Sru 1005 line numbering 1410151497Sru works with groff. 1411151497Sru 1412151497Sru 1413151497Sru -- Request: .nn [skip] 1414151497Sru Temporarily turn off line numbering. The argument is the number 1415151497Sru of lines not to be numbered; this defaults to 1. 1416151497Sru 1417151497Sru -- Request: .mc glyph [dist] 1418151497Sru Print a "margin character" to the right of the text.(1) (*note 1419151497Sru Miscellaneous-Footnote-1::) The first argument is the glyph to be 1420151497Sru printed. The second argument is the distance away from the right 1421151497Sru margin. If missing, the previously set value is used; default is 1422151497Sru 10pt). For text lines that are too long (that is, longer than the 1423151497Sru text length plus DIST), the margin character is directly appended 1424151497Sru to the lines. 1425151497Sru 1426151497Sru With no arguments the margin character is turned off. If this 1427151497Sru occurs before a break, no margin character is printed. 1428151497Sru 1429151497Sru For compatibility with AT&T `troff', a call to `mc' to set the 1430151497Sru margin character can't be undone immediately; at least one line 1431151497Sru gets a margin character. Thus 1432151497Sru 1433151497Sru 1434151497Sru .ll 1i 1435151497Sru .mc \[br] 1436151497Sru .mc 1437151497Sru xxx 1438151497Sru .br 1439151497Sru xxx 1440151497Sru 1441151497Sru produces 1442151497Sru 1443151497Sru 1444151497Sru xxx | 1445151497Sru xxx 1446151497Sru 1447151497Sru For empty lines and lines produced by the `tl' request no margin 1448151497Sru character is emitted. 1449151497Sru 1450151497Sru The margin character is associated with the current environment 1451151497Sru (*note Environments::). 1452151497Sru 1453151497Sru This is quite useful for indicating text that has changed, and, in 1454151497Sru fact, there are programs available for doing this (they are called 1455151497Sru `nrchbar' and `changebar' and can be found in any 1456151497Sru `comp.sources.unix' archive). 1457151497Sru 1458151497Sru 1459151497Sru .ll 3i 1460151497Sru .mc | 1461151497Sru This paragraph is highlighted with a margin 1462151497Sru character. 1463151497Sru .sp 1464151497Sru Note that vertical space isn't marked. 1465151497Sru .br 1466151497Sru \& 1467151497Sru .br 1468151497Sru But we can fake it with `\&'. 1469151497Sru 1470151497Sru Result: 1471151497Sru 1472151497Sru 1473151497Sru This paragraph is highlighted | 1474151497Sru with a margin character. | 1475151497Sru 1476151497Sru Note that vertical space isn't | 1477151497Sru marked. | 1478151497Sru | 1479151497Sru But we can fake it with `\&'. | 1480151497Sru 1481151497Sru 1482151497Sru -- Request: .psbb filename 1483151497Sru -- Register: \n[llx] 1484151497Sru -- Register: \n[lly] 1485151497Sru -- Register: \n[urx] 1486151497Sru -- Register: \n[ury] 1487151497Sru Retrieve the bounding box of the PostScript image found in 1488151497Sru FILENAME. The file must conform to Adobe's "Document Structuring 1489151497Sru Conventions" (DSC); the command searches for a `%%BoundingBox' 1490151497Sru comment and extracts the bounding box values into the number 1491151497Sru registers `llx', `lly', `urx', and `ury'. If an error occurs (for 1492151497Sru example, `psbb' cannot find the `%%BoundingBox' comment), it sets 1493151497Sru the four number registers to zero. 1494151497Sru 1495151497Sru The search path for FILENAME can be controlled with the `-I' 1496151497Sru command line option. 1497151497Sru 1498104862Sru 1499151497SruFile: groff, Node: Miscellaneous-Footnotes, Up: Miscellaneous 1500104862Sru 1501151497Sru (1) "Margin character" is a misnomer since it is an output glyph. 1502104862Sru 1503151497Sru 1504151497SruFile: groff, Node: Gtroff Internals, Next: Debugging, Prev: Miscellaneous, Up: gtroff Reference 1505104862Sru 1506151497Sru5.32 `gtroff' Internals 1507151497Sru======================= 1508104862Sru 1509151497Sru`gtroff' processes input in three steps. One or more input characters 1510151497Sruare converted to an "input token".(1) (*note Gtroff 1511151497SruInternals-Footnote-1::) Then, one or more input tokens are converted 1512151497Sruto an "output node". Finally, output nodes are converted to the 1513151497Sruintermediate output language understood by all output devices. 1514104862Sru 1515151497Sru Actually, before step one happens, `gtroff' converts certain escape 1516151497Srusequences into reserved input characters (not accessible by the user); 1517151497Srusuch reserved characters are used for other internal processing also - 1518151497Sruthis is the very reason why not all characters are valid input. *Note 1519151497SruIdentifiers::, for more on this topic. 1520104862Sru 1521151497Sru For example, the input string `fi\[:u]' is converted into a 1522151497Srucharacter token `f', a character token `i', and a special token `:u' 1523151497Sru(representing u umlaut). Later on, the character tokens `f' and `i' 1524151497Sruare merged to a single output node representing the ligature glyph `fi' 1525151497Sru(provided the current font has a glyph for this ligature); the same 1526151497Sruhappens with `:u'. All output glyph nodes are `processed' which means 1527151497Sruthat they are invariably associated with a given font, font size, 1528151497Sruadvance width, etc. During the formatting process, `gtroff' itself 1529151497Sruadds various nodes to control the data flow. 1530104862Sru 1531151497Sru Macros, diversions, and strings collect elements in two chained 1532151497Srulists: a list of input tokens which have been passed unprocessed, and a 1533151497Srulist of output nodes. Consider the following the diversion. 1534104862Sru 1535104862Sru 1536151497Sru .di xxx 1537151497Sru a 1538151497Sru \!b 1539151497Sru c 1540151497Sru .br 1541151497Sru .di 1542151497Sru 1543151497SruIt contains these elements. 1544151497Sru 1545151497Srunode list token list element number 1546151497Sruline start node -- 1 1547151497Sruglyph node `a' -- 2 1548151497Sruword space node -- 3 1549151497Sru-- `b' 4 1550151497Sru-- `\n' 5 1551151497Sruglyph node `c' -- 6 1552151497Sruvertical size node -- 7 1553151497Sruvertical size node -- 8 1554151497Sru-- `\n' 9 1555151497Sru 1556151497SruElements 1, 7, and 8 are inserted by `gtroff'; the latter two (which 1557151497Sruare always present) specify the vertical extent of the last line, 1558151497Srupossibly modified by `\x'. The `br' request finishes the current 1559151497Srupartial line, inserting a newline input token which is subsequently 1560151497Sruconverted to a space when the diversion is reread. Note that the word 1561151497Sruspace node has a fixed width which isn't stretchable anymore. To 1562151497Sruconvert horizontal space nodes back to input tokens, use the `unformat' 1563151497Srurequest. 1564151497Sru 1565151497Sru Macros only contain elements in the token list (and the node list is 1566151497Sruempty); diversions and strings can contain elements in both lists. 1567151497Sru 1568151497Sru Note that the `chop' request simply reduces the number of elements 1569151497Sruin a macro, string, or diversion by one. Exceptions are "compatibility 1570151497Srusave" and "compatibility ignore" input tokens which are ignored. The 1571151497Sru`substring' request also ignores those input tokens. 1572151497Sru 1573151497Sru Some requests like `tr' or `cflags' work on glyph identifiers only; 1574151497Sruthis means that the associated glyph can be changed without destroying 1575151497Sruthis association. This can be very helpful for substituting glyphs. 1576151497SruIn the following example, we assume that glyph `foo' isn't available by 1577151497Srudefault, so we provide a substitution using the `fchar' request and map 1578151497Sruit to input character `x'. 1579151497Sru 1580151497Sru 1581151497Sru .fchar \[foo] foo 1582151497Sru .tr x \[foo] 1583151497Sru 1584151497SruNow let us assume that we install an additional special font `bar' 1585151497Sruwhich has glyph `foo'. 1586151497Sru 1587151497Sru 1588151497Sru .special bar 1589151497Sru .rchar \[foo] 1590151497Sru 1591151497SruSince glyphs defined with `fchar' are searched before glyphs in special 1592151497Srufonts, we must call `rchar' to remove the definition of the fallback 1593151497Sruglyph. Anyway, the translation is still active; `x' now maps to the 1594151497Srureal glyph `foo'. 1595151497Sru 1596151497Sru Macro and request arguments preserve the compatibility mode: 1597151497Sru 1598151497Sru 1599151497Sru .cp 1 \" switch to compatibility mode 1600151497Sru .de xx 1601151497Sru \\$1 1602151497Sru .. 1603151497Sru .cp 0 \" switch compatibility mode off 1604151497Sru .xx caf\['e] 1605151497Sru => caf� 1606151497Sru 1607151497SruSince compatibility mode is on while `de' is called, the macro `xx' 1608151497Sruactivates compatibility mode while executing. Argument `$1' can still 1609151497Srube handled properly because it inherits the compatibility mode status 1610151497Sruwhich was active at the point where `xx' is called. 1611151497Sru 1612151497Sru After expansion of the parameters, the compatibility save and restore 1613151497Srutokens are removed. 1614151497Sru 1615104862Sru 1616151497SruFile: groff, Node: Gtroff Internals-Footnotes, Up: Gtroff Internals 1617104862Sru 1618151497Sru (1) Except the escapes `\f', `\F', `\H', `\m', `\M', `\R', `\s', and 1619151497Sru`\S' which are processed immediately if not in copy-in mode. 1620104862Sru 1621104862Sru 1622151497SruFile: groff, Node: Debugging, Next: Implementation Differences, Prev: Gtroff Internals, Up: gtroff Reference 1623104862Sru 1624151497Sru5.33 Debugging 1625151497Sru============== 1626104862Sru 1627151497Sru`gtroff' is not easy to debug, but there are some useful features and 1628151497Srustrategies for debugging. 1629104862Sru 1630151497Sru -- Request: .lf line [filename] 1631151497Sru Change the line number and optionally the file name `gtroff' shall 1632151497Sru use for error and warning messages. LINE is the input line number 1633151497Sru of the _next_ line. 1634104862Sru 1635151497Sru Without argument, the request is ignored. 1636104862Sru 1637151497Sru This is a debugging aid for documents which are split into many 1638151497Sru files, then put together with `soelim' and other preprocessors. 1639151497Sru Usually, it isn't invoked manually. 1640104862Sru 1641151497Sru Note that other `troff' implementations (including the original 1642151497Sru AT&T version) handle `lf' differently. For them, LINE changes the 1643151497Sru line number of the _current_ line. 1644104862Sru 1645151497Sru -- Request: .tm string 1646151497Sru -- Request: .tm1 string 1647151497Sru -- Request: .tmc string 1648151497Sru Send STRING to the standard error output; this is very useful for 1649151497Sru printing debugging messages among other things. 1650104862Sru 1651151497Sru STRING is read in copy mode. 1652104862Sru 1653151497Sru The `tm' request ignores leading spaces of STRING; `tm1' handles 1654151497Sru its argument similar to the `ds' request: a leading double quote 1655151497Sru in STRING is stripped to allow initial blanks. 1656104862Sru 1657151497Sru The `tmc' request is similar to `tm1' but does not append a 1658151497Sru newline (as is done in `tm' and `tm1'). 1659104862Sru 1660151497Sru -- Request: .ab [string] 1661151497Sru Similar to the `tm' request, except that it causes `gtroff' to 1662151497Sru stop processing. With no argument it prints `User Abort.' to 1663151497Sru standard error. 1664104862Sru 1665151497Sru -- Request: .ex 1666151497Sru The `ex' request also causes `gtroff' to stop processing; see also 1667151497Sru *Note I/O::. 1668104862Sru 1669151497Sru When doing something involved it is useful to leave the debugging 1670151497Srustatements in the code and have them turned on by a command line flag. 1671104862Sru 1672104862Sru 1673151497Sru .if \n(DB .tm debugging output 1674104862Sru 1675151497SruTo activate these statements say 1676104862Sru 1677104862Sru 1678151497Sru groff -rDB=1 file 1679104862Sru 1680151497Sru If it is known in advance that there will be many errors and no 1681151497Sruuseful output, `gtroff' can be forced to suppress formatted output with 1682151497Sruthe `-z' flag. 1683104862Sru 1684151497Sru -- Request: .pm 1685151497Sru Print the entire symbol table on `stderr'. Names of all defined 1686151497Sru macros, strings, and diversions are print together with their size 1687151497Sru in bytes. Since `gtroff' sometimes adds nodes by itself, the 1688151497Sru returned size can be larger than expected. 1689104862Sru 1690151497Sru This request differs from UNIX `troff': `gtroff' reports the sizes 1691151497Sru of diversions, ignores an additional argument to print only the 1692151497Sru total of the sizes, and the size isn't returned in blocks of 128 1693151497Sru characters. 1694104862Sru 1695151497Sru -- Request: .pnr 1696151497Sru Print the names and contents of all currently defined number 1697151497Sru registers on `stderr'. 1698104862Sru 1699151497Sru -- Request: .ptr 1700151497Sru Print the names and positions of all traps (not including input 1701151497Sru line traps and diversion traps) on `stderr'. Empty slots in the 1702151497Sru page trap list are printed as well, because they can affect the 1703151497Sru priority of subsequently planted traps. 1704104862Sru 1705151497Sru -- Request: .fl 1706151497Sru Instruct `gtroff' to flush its output immediately. The intent is 1707151497Sru for interactive use, but this behaviour is currently not 1708151497Sru implemented in `gtroff'. Contrary to UNIX `troff', TTY output is 1709151497Sru sent to a device driver also (`grotty'), making it non-trivial to 1710151497Sru communicate interactively. 1711104862Sru 1712151497Sru This request causes a line break. 1713104862Sru 1714151497Sru -- Request: .backtrace 1715151497Sru Print a backtrace of the input stack to the standard error stream. 1716104862Sru 1717151497Sru Consider the following in file `test': 1718104862Sru 1719104862Sru 1720151497Sru .de xxx 1721151497Sru . backtrace 1722151497Sru .. 1723151497Sru .de yyy 1724151497Sru . xxx 1725151497Sru .. 1726151497Sru . 1727151497Sru .yyy 1728104862Sru 1729151497Sru On execution, `gtroff' prints the following: 1730104862Sru 1731104862Sru 1732151497Sru test:2: backtrace: macro `xxx' 1733151497Sru test:5: backtrace: macro `yyy' 1734151497Sru test:8: backtrace: file `test' 1735104862Sru 1736151497Sru The option `-b' of `gtroff' internally calls a variant of this 1737151497Sru request on each error and warning. 1738104862Sru 1739151497Sru -- Register: \n[slimit] 1740151497Sru Use the `slimit' number register to set the maximum number of 1741151497Sru objects on the input stack. If `slimit' is less than or equal 1742151497Sru to 0, there is no limit set. With no limit, a buggy recursive 1743151497Sru macro can exhaust virtual memory. 1744104862Sru 1745151497Sru The default value is 1000; this is a compile-time constant. 1746104862Sru 1747151497Sru -- Request: .warnscale si 1748151497Sru Set the scaling indicator used in warnings to SI. Valid values for 1749151497Sru SI are `u', `i', `c', `p', and `P'. At startup, it is set to `i'. 1750104862Sru 1751151497Sru -- Request: .spreadwarn [limit] 1752151497Sru Make `gtroff' emit a warning if the additional space inserted for 1753151497Sru each space between words in an output line is larger or equal to 1754151497Sru LIMIT. A negative value is changed to zero; no argument toggles 1755151497Sru the warning on and off without changing LIMIT. The default scaling 1756151497Sru indicator is `m'. At startup, `spreadwarn' is deactivated, and 1757151497Sru LIMIT is set to 3m. 1758104862Sru 1759151497Sru For example, 1760104862Sru 1761104862Sru 1762151497Sru .spreadwarn 0.2m 1763104862Sru 1764151497Sru will cause a warning if `gtroff' must add 0.2m or more for each 1765151497Sru interword space in a line. 1766104862Sru 1767151497Sru This request is active only if text is justified to both margins 1768151497Sru (using `.ad b'). 1769104862Sru 1770151497Sru `gtroff' has command line options for printing out more warnings 1771151497Sru(`-w') and for printing backtraces (`-b') when a warning or an error 1772151497Sruoccurs. The most verbose level of warnings is `-ww'. 1773104862Sru 1774151497Sru -- Request: .warn [flags] 1775151497Sru -- Register: \n[.warn] 1776151497Sru Control the level of warnings checked for. The FLAGS are the sum 1777151497Sru of the numbers associated with each warning that is to be enabled; 1778151497Sru all other warnings are disabled. The number associated with each 1779151497Sru warning is listed below. For example, `.warn 0' disables all 1780151497Sru warnings, and `.warn 1' disables all warnings except that about 1781151497Sru missing glyphs. If no argument is given, all warnings are enabled. 1782104862Sru 1783151497Sru The read-only number register `.warn' contains the current warning 1784151497Sru level. 1785104862Sru 1786151497Sru* Menu: 1787104862Sru 1788151497Sru* Warnings:: 1789104862Sru 1790151497Sru 1791151497SruFile: groff, Node: Warnings, Prev: Debugging, Up: Debugging 1792104862Sru 1793151497Sru5.33.1 Warnings 1794151497Sru--------------- 1795104862Sru 1796151497SruThe warnings that can be given to `gtroff' are divided into the 1797151497Srufollowing categories. The name associated with each warning is used by 1798151497Sruthe `-w' and `-W' options; the number is used by the `warn' request and 1799151497Sruby the `.warn' register. 1800104862Sru 1801151497Sru`char' 1802151497Sru`1' 1803151497Sru Non-existent glyphs.(1) (*note Warnings-Footnote-1::) This is 1804151497Sru enabled by default. 1805104862Sru 1806151497Sru`number' 1807151497Sru`2' 1808151497Sru Invalid numeric expressions. This is enabled by default. *Note 1809151497Sru Expressions::. 1810104862Sru 1811151497Sru`break' 1812151497Sru`4' 1813151497Sru In fill mode, lines which could not be broken so that their length 1814151497Sru was less than the line length. This is enabled by default. 1815151497Sru 1816151497Sru`delim' 1817151497Sru`8' 1818151497Sru Missing or mismatched closing delimiters. 1819151497Sru 1820151497Sru`el' 1821151497Sru`16' 1822151497Sru Use of the `el' request with no matching `ie' request. *Note 1823151497Sru if-else::. 1824151497Sru 1825151497Sru`scale' 1826151497Sru`32' 1827151497Sru Meaningless scaling indicators. 1828151497Sru 1829151497Sru`range' 1830151497Sru`64' 1831151497Sru Out of range arguments. 1832151497Sru 1833151497Sru`syntax' 1834151497Sru`128' 1835151497Sru Dubious syntax in numeric expressions. 1836151497Sru 1837151497Sru`di' 1838151497Sru`256' 1839151497Sru Use of `di' or `da' without an argument when there is no current 1840151497Sru diversion. 1841151497Sru 1842151497Sru`mac' 1843151497Sru`512' 1844151497Sru Use of undefined strings, macros and diversions. When an undefined 1845151497Sru string, macro, or diversion is used, that string is automatically 1846151497Sru defined as empty. So, in most cases, at most one warning is given 1847151497Sru for each name. 1848151497Sru 1849151497Sru`reg' 1850151497Sru`1024' 1851151497Sru Use of undefined number registers. When an undefined number 1852151497Sru register is used, that register is automatically defined to have a 1853151497Sru value of 0. So, in most cases, at most one warning is given for 1854151497Sru use of a particular name. 1855151497Sru 1856151497Sru`tab' 1857151497Sru`2048' 1858151497Sru Use of a tab character where a number was expected. 1859151497Sru 1860151497Sru`right-brace' 1861151497Sru`4096' 1862151497Sru Use of `\}' where a number was expected. 1863151497Sru 1864151497Sru`missing' 1865151497Sru`8192' 1866151497Sru Requests that are missing non-optional arguments. 1867151497Sru 1868151497Sru`input' 1869151497Sru`16384' 1870151497Sru Invalid input characters. 1871151497Sru 1872151497Sru`escape' 1873151497Sru`32768' 1874151497Sru Unrecognized escape sequences. When an unrecognized escape 1875151497Sru sequence `\X' is encountered, the escape character is ignored, and 1876151497Sru X is printed. 1877151497Sru 1878151497Sru`space' 1879151497Sru`65536' 1880151497Sru Missing space between a request or macro and its argument. This 1881151497Sru warning is given when an undefined name longer than two characters 1882151497Sru is encountered, and the first two characters of the name make a 1883151497Sru defined name. The request or macro is not invoked. When this 1884151497Sru warning is given, no macro is automatically defined. This is 1885151497Sru enabled by default. This warning never occurs in compatibility 1886151497Sru mode. 1887151497Sru 1888151497Sru`font' 1889151497Sru`131072' 1890151497Sru Non-existent fonts. This is enabled by default. 1891151497Sru 1892151497Sru`ig' 1893151497Sru`262144' 1894151497Sru Invalid escapes in text ignored with the `ig' request. These are 1895151497Sru conditions that are errors when they do not occur in ignored text. 1896151497Sru 1897151497Sru`color' 1898151497Sru`524288' 1899151497Sru Color related warnings. 1900151497Sru 1901151497Sru`all' 1902151497Sru All warnings except `di', `mac' and `reg'. It is intended that 1903151497Sru this covers all warnings that are useful with traditional macro 1904151497Sru packages. 1905151497Sru 1906151497Sru`w' 1907151497Sru All warnings. 1908151497Sru 1909104862Sru 1910151497SruFile: groff, Node: Warnings-Footnotes, Up: Warnings 1911104862Sru 1912151497Sru (1) `char' is a misnomer since it reports missing glyphs - there 1913151497Sruaren't missing input characters, only invalid ones. 1914104862Sru 1915151497Sru 1916151497SruFile: groff, Node: Implementation Differences, Prev: Debugging, Up: gtroff Reference 1917104862Sru 1918151497Sru5.34 Implementation Differences 1919151497Sru=============================== 1920104862Sru 1921151497SruGNU `troff' has a number of features which cause incompatibilities with 1922151497Srudocuments written with old versions of `troff'. 1923104862Sru 1924151497Sru Long names cause some incompatibilities. UNIX `troff' interprets 1925104862Sru 1926104862Sru 1927151497Sru .dsabcd 1928104862Sru 1929151497Sruas defining a string `ab' with contents `cd'. Normally, GNU `troff' 1930151497Sruinterprets this as a call of a macro named `dsabcd'. Also UNIX `troff' 1931151497Sruinterprets `\*[' or `\n[' as references to a string or number register 1932151497Srucalled `['. In GNU `troff', however, this is normally interpreted as 1933151497Sruthe start of a long name. In compatibility mode GNU `troff' interprets 1934151497Srulong names in the traditional way (which means that they are not 1935151497Srurecognized as names). 1936104862Sru 1937151497Sru -- Request: .cp [n] 1938151497Sru -- Request: .do cmd 1939151497Sru -- Register: \n[.C] 1940151497Sru If N is missing or non-zero, turn on compatibility mode; 1941151497Sru otherwise, turn it off. 1942104862Sru 1943151497Sru The read-only number register `.C' is 1 if compatibility mode is 1944151497Sru on, 0 otherwise. 1945104862Sru 1946151497Sru Compatibility mode can be also turned on with the `-C' command line 1947151497Sru option. 1948104862Sru 1949151497Sru The `do' request turns off compatibility mode while executing its 1950151497Sru arguments as a `gtroff' command. 1951104862Sru 1952104862Sru 1953151497Sru .do fam T 1954104862Sru 1955151497Sru executes the `fam' request when compatibility mode is enabled. 1956104862Sru 1957151497Sru `gtroff' restores the previous compatibility setting before 1958151497Sru interpreting any files sourced by the CMD. 1959104862Sru 1960151497Sru Two other features are controlled by `-C'. If not in compatibility 1961151497Srumode, GNU `troff' preserves the input level in delimited arguments: 1962104862Sru 1963151497Sru 1964151497Sru .ds xx ' 1965151497Sru \w'abc\*(xxdef' 1966151497Sru 1967151497SruIn compatibility mode, the string `72def'' is returned; without `-C' 1968151497Sruthe resulting string is `168' (assuming a TTY output device). 1969151497Sru 1970151497Sru Finally, the escapes `\f', `\H', `\m', `\M', `\R', `\s', and `\S' 1971151497Sruare transparent for recognizing the beginning of a line only in 1972151497Srucompatibility mode (this is a rather obscure feature). For example, 1973151497Sruthe code 1974151497Sru 1975151497Sru 1976151497Sru .de xx 1977151497Sru Hallo! 1978151497Sru .. 1979151497Sru \fB.xx\fP 1980151497Sru 1981151497Sruprints `Hallo!' in bold face if in compatibility mode, and `.xx' in 1982151497Srubold face otherwise. 1983151497Sru 1984151497Sru GNU `troff' does not allow the use of the escape sequences `\|', 1985151497Sru`\^', `\&', `\{', `\}', `\<SP>', `\'', `\`', `\-', `\_', `\!', `\%', 1986151497Sruand `\c' in names of strings, macros, diversions, number registers, 1987151497Srufonts or environments; UNIX `troff' does. The `\A' escape sequence 1988151497Sru(*note Identifiers::) may be helpful in avoiding use of these escape 1989151497Srusequences in names. 1990151497Sru 1991151497Sru Fractional point sizes cause one noteworthy incompatibility. In 1992151497SruUNIX `troff' the `ps' request ignores scale indicators and thus 1993151497Sru 1994151497Sru 1995151497Sru .ps 10u 1996151497Sru 1997151497Srusets the point size to 10 points, whereas in GNU `troff' it sets the 1998151497Srupoint size to 10 scaled points. *Note Fractional Type Sizes::, for 1999151497Srumore information. 2000151497Sru 2001151497Sru In GNU `troff' there is a fundamental difference between 2002151497Sru(unformatted) input characters and (formatted) output glyphs. 2003151497SruEverything that affects how a glyph is output is stored with the glyph 2004151497Srunode; once a glyph node has been constructed it is unaffected by any 2005151497Srusubsequent requests that are executed, including `bd', `cs', `tkf', 2006151497Sru`tr', or `fp' requests. Normally glyphs are constructed from input 2007151497Srucharacters at the moment immediately before the glyph is added to the 2008151497Srucurrent output line. Macros, diversions and strings are all, in fact, 2009151497Sruthe same type of object; they contain lists of input characters and 2010151497Sruglyph nodes in any combination. A glyph node does not behave like an 2011151497Sruinput character for the purposes of macro processing; it does not 2012151497Sruinherit any of the special properties that the input character from 2013151497Sruwhich it was constructed might have had. For example, 2014151497Sru 2015151497Sru 2016151497Sru .di x 2017151497Sru \\\\ 2018151497Sru .br 2019151497Sru .di 2020151497Sru .x 2021151497Sru 2022151497Sruprints `\\' in GNU `troff'; each pair of input backslashes is turned 2023151497Sruinto one output backslash and the resulting output backslashes are not 2024151497Sruinterpreted as escape characters when they are reread. UNIX `troff' 2025151497Sruwould interpret them as escape characters when they were reread and 2026151497Sruwould end up printing one `\'. The correct way to obtain a printable 2027151497Srubackslash is to use the `\e' escape sequence: This always prints a 2028151497Srusingle instance of the current escape character, regardless of whether 2029151497Sruor not it is used in a diversion; it also works in both GNU `troff' and 2030151497SruUNIX `troff'.(1) (*note Implementation Differences-Footnote-1::) To 2031151497Srustore, for some reason, an escape sequence in a diversion that will be 2032151497Sruinterpreted when the diversion is reread, either use the traditional 2033151497Sru`\!' transparent output facility, or, if this is unsuitable, the new 2034151497Sru`\?' escape sequence. 2035151497Sru 2036151497Sru *Note Diversions::, and *Note Gtroff Internals::, for more 2037151497Sruinformation. 2038151497Sru 2039104862Sru 2040151497SruFile: groff, Node: Implementation Differences-Footnotes, Up: Implementation Differences 2041104862Sru 2042151497Sru (1) To be completely independent of the current escape character, 2043151497Sruuse `\(rs' which represents a reverse solidus (backslash) glyph. 2044104862Sru 2045151497Sru 2046151497SruFile: groff, Node: Preprocessors, Next: Output Devices, Prev: gtroff Reference, Up: Top 2047104862Sru 2048151497Sru6 Preprocessors 2049151497Sru*************** 2050151497Sru 2051151497SruThis chapter describes all preprocessors that come with `groff' or 2052151497Sruwhich are freely available. 2053151497Sru 2054104862Sru* Menu: 2055104862Sru 2056151497Sru* geqn:: 2057151497Sru* gtbl:: 2058151497Sru* gpic:: 2059151497Sru* ggrn:: 2060151497Sru* grap:: 2061151497Sru* grefer:: 2062151497Sru* gsoelim:: 2063104862Sru 2064104862Sru 2065151497SruFile: groff, Node: geqn, Next: gtbl, Prev: Preprocessors, Up: Preprocessors 2066104862Sru 2067151497Sru6.1 `geqn' 2068151497Sru========== 2069104862Sru 2070151497Sru* Menu: 2071104862Sru 2072151497Sru* Invoking geqn:: 2073104862Sru 2074151497Sru 2075151497SruFile: groff, Node: Invoking geqn, Prev: geqn, Up: geqn 2076104862Sru 2077151497Sru6.1.1 Invoking `geqn' 2078151497Sru--------------------- 2079104862Sru 2080151497Sru 2081151497SruFile: groff, Node: gtbl, Next: gpic, Prev: geqn, Up: Preprocessors 2082104862Sru 2083151497Sru6.2 `gtbl' 2084151497Sru========== 2085104862Sru 2086151497Sru* Menu: 2087104862Sru 2088151497Sru* Invoking gtbl:: 2089104862Sru 2090104862Sru 2091151497SruFile: groff, Node: Invoking gtbl, Prev: gtbl, Up: gtbl 2092104862Sru 2093151497Sru6.2.1 Invoking `gtbl' 2094151497Sru--------------------- 2095104862Sru 2096151497Sru 2097151497SruFile: groff, Node: gpic, Next: ggrn, Prev: gtbl, Up: Preprocessors 2098104862Sru 2099151497Sru6.3 `gpic' 2100151497Sru========== 2101104862Sru 2102151497Sru* Menu: 2103104862Sru 2104151497Sru* Invoking gpic:: 2105104862Sru 2106151497Sru 2107151497SruFile: groff, Node: Invoking gpic, Prev: gpic, Up: gpic 2108104862Sru 2109151497Sru6.3.1 Invoking `gpic' 2110151497Sru--------------------- 2111151497Sru 2112104862Sru 2113151497SruFile: groff, Node: ggrn, Next: grap, Prev: gpic, Up: Preprocessors 2114104862Sru 2115151497Sru6.4 `ggrn' 2116151497Sru========== 2117104862Sru 2118151497Sru* Menu: 2119104862Sru 2120151497Sru* Invoking ggrn:: 2121104862Sru 2122151497Sru 2123151497SruFile: groff, Node: Invoking ggrn, Prev: ggrn, Up: ggrn 2124104862Sru 2125151497Sru6.4.1 Invoking `ggrn' 2126151497Sru--------------------- 2127104862Sru 2128151497Sru 2129151497SruFile: groff, Node: grap, Next: grefer, Prev: ggrn, Up: Preprocessors 2130104862Sru 2131151497Sru6.5 `grap' 2132151497Sru========== 2133104862Sru 2134151497SruA free implementation of `grap', written by Ted Faber, is available as 2135151497Sruan extra package from the following address: 2136104862Sru 2137151497Sru `http://www.lunabase.org/~faber/Vault/software/grap/' 2138104862Sru 2139151497Sru 2140151497SruFile: groff, Node: grefer, Next: gsoelim, Prev: grap, Up: Preprocessors 2141104862Sru 2142151497Sru6.6 `grefer' 2143151497Sru============ 2144104862Sru 2145151497Sru* Menu: 2146104862Sru 2147151497Sru* Invoking grefer:: 2148104862Sru 2149151497Sru 2150151497SruFile: groff, Node: Invoking grefer, Prev: grefer, Up: grefer 2151104862Sru 2152151497Sru6.6.1 Invoking `grefer' 2153151497Sru----------------------- 2154104862Sru 2155151497Sru 2156151497SruFile: groff, Node: gsoelim, Prev: grefer, Up: Preprocessors 2157104862Sru 2158151497Sru6.7 `gsoelim' 2159151497Sru============= 2160151497Sru 2161151497Sru* Menu: 2162151497Sru 2163151497Sru* Invoking gsoelim:: 2164151497Sru 2165104862Sru 2166151497SruFile: groff, Node: Invoking gsoelim, Prev: gsoelim, Up: gsoelim 2167104862Sru 2168151497Sru6.7.1 Invoking `gsoelim' 2169151497Sru------------------------ 2170104862Sru 2171151497Sru 2172151497SruFile: groff, Node: Output Devices, Next: File formats, Prev: Preprocessors, Up: Top 2173104862Sru 2174151497Sru7 Output Devices 2175151497Sru**************** 2176104862Sru 2177151497Sru* Menu: 2178104862Sru 2179151497Sru* Special Characters:: 2180151497Sru* grotty:: 2181151497Sru* grops:: 2182151497Sru* grodvi:: 2183151497Sru* grolj4:: 2184151497Sru* grolbp:: 2185151497Sru* grohtml:: 2186151497Sru* gxditview:: 2187104862Sru 2188151497Sru 2189151497SruFile: groff, Node: Special Characters, Next: grotty, Prev: Output Devices, Up: Output Devices 2190104862Sru 2191151497Sru7.1 Special Characters 2192151497Sru====================== 2193104862Sru 2194151497Sru*Note Font Files::. 2195104862Sru 2196151497Sru 2197151497SruFile: groff, Node: grotty, Next: grops, Prev: Special Characters, Up: Output Devices 2198104862Sru 2199151497Sru7.2 `grotty' 2200151497Sru============ 2201104862Sru 2202151497Sru* Menu: 2203104862Sru 2204151497Sru* Invoking grotty:: 2205104862Sru 2206151497Sru 2207151497SruFile: groff, Node: Invoking grotty, Prev: grotty, Up: grotty 2208104862Sru 2209151497Sru7.2.1 Invoking `grotty' 2210151497Sru----------------------- 2211104862Sru 2212151497Sru 2213151497SruFile: groff, Node: grops, Next: grodvi, Prev: grotty, Up: Output Devices 2214104862Sru 2215151497Sru7.3 `grops' 2216151497Sru=========== 2217104862Sru 2218151497Sru* Menu: 2219104862Sru 2220151497Sru* Invoking grops:: 2221151497Sru* Embedding PostScript:: 2222104862Sru 2223151497Sru 2224151497SruFile: groff, Node: Invoking grops, Next: Embedding PostScript, Prev: grops, Up: grops 2225104862Sru 2226151497Sru7.3.1 Invoking `grops' 2227151497Sru---------------------- 2228104862Sru 2229151497Sru 2230151497SruFile: groff, Node: Embedding PostScript, Prev: Invoking grops, Up: grops 2231104862Sru 2232151497Sru7.3.2 Embedding POSTSCRIPT 2233151497Sru-------------------------- 2234104862Sru 2235151497Sru 2236151497SruFile: groff, Node: grodvi, Next: grolj4, Prev: grops, Up: Output Devices 2237104862Sru 2238151497Sru7.4 `grodvi' 2239151497Sru============ 2240104862Sru 2241151497Sru* Menu: 2242104862Sru 2243151497Sru* Invoking grodvi:: 2244104862Sru 2245151497Sru 2246151497SruFile: groff, Node: Invoking grodvi, Prev: grodvi, Up: grodvi 2247104862Sru 2248151497Sru7.4.1 Invoking `grodvi' 2249151497Sru----------------------- 2250104862Sru 2251151497Sru 2252151497SruFile: groff, Node: grolj4, Next: grolbp, Prev: grodvi, Up: Output Devices 2253104862Sru 2254151497Sru7.5 `grolj4' 2255151497Sru============ 2256104862Sru 2257151497Sru* Menu: 2258104862Sru 2259151497Sru* Invoking grolj4:: 2260104862Sru 2261151497Sru 2262151497SruFile: groff, Node: Invoking grolj4, Prev: grolj4, Up: grolj4 2263104862Sru 2264151497Sru7.5.1 Invoking `grolj4' 2265151497Sru----------------------- 2266104862Sru 2267151497Sru 2268151497SruFile: groff, Node: grolbp, Next: grohtml, Prev: grolj4, Up: Output Devices 2269104862Sru 2270151497Sru7.6 `grolbp' 2271151497Sru============ 2272104862Sru 2273151497Sru* Menu: 2274104862Sru 2275151497Sru* Invoking grolbp:: 2276104862Sru 2277151497Sru 2278151497SruFile: groff, Node: Invoking grolbp, Prev: grolbp, Up: grolbp 2279104862Sru 2280151497Sru7.6.1 Invoking `grolbp' 2281151497Sru----------------------- 2282104862Sru 2283151497Sru 2284151497SruFile: groff, Node: grohtml, Next: gxditview, Prev: grolbp, Up: Output Devices 2285104862Sru 2286151497Sru7.7 `grohtml' 2287151497Sru============= 2288151497Sru 2289151497Sru* Menu: 2290151497Sru 2291151497Sru* Invoking grohtml:: 2292151497Sru* grohtml specific registers and strings:: 2293151497Sru 2294104862Sru 2295151497SruFile: groff, Node: Invoking grohtml, Next: grohtml specific registers and strings, Prev: grohtml, Up: grohtml 2296104862Sru 2297151497Sru7.7.1 Invoking `grohtml' 2298151497Sru------------------------ 2299104862Sru 2300151497Sru 2301151497SruFile: groff, Node: grohtml specific registers and strings, Prev: Invoking grohtml, Up: grohtml 2302104862Sru 2303151497Sru7.7.2 `grohtml' specific registers and strings 2304151497Sru---------------------------------------------- 2305104862Sru 2306151497Sru -- Register: \n[ps4html] 2307151497Sru -- String: \*[www-image-template] 2308151497Sru The registers `ps4html' and `www-image-template' are defined by 2309151497Sru the `pre-grohtml' preprocessor. `pre-grohtml' reads in the 2310151497Sru `troff' input, marks up the inline equations and passes the result 2311151497Sru firstly to 2312104862Sru 2313151497Sru 2314151497Sru troff -Tps -rps4html=1 -dwww-image-template=TEMPLATE 2315151497Sru 2316151497Sru and secondly to 2317151497Sru 2318151497Sru 2319151497Sru troff -Thtml 2320151497Sru 2321151497Sru The PostScript device is used to create all the image files, and 2322151497Sru the register `ps4html' enables the macro sets to ignore floating 2323151497Sru keeps, footers, and headings. 2324151497Sru 2325151497Sru The register `www-image-template' is set to the user specified 2326151497Sru template name or the default name. 2327151497Sru 2328104862Sru 2329151497SruFile: groff, Node: gxditview, Prev: grohtml, Up: Output Devices 2330104862Sru 2331151497Sru7.8 `gxditview' 2332151497Sru=============== 2333104862Sru 2334151497Sru* Menu: 2335104862Sru 2336151497Sru* Invoking gxditview:: 2337104862Sru 2338104862Sru 2339151497SruFile: groff, Node: Invoking gxditview, Prev: gxditview, Up: gxditview 2340104862Sru 2341151497Sru7.8.1 Invoking `gxditview' 2342151497Sru-------------------------- 2343151497Sru 2344151497Sru 2345151497SruFile: groff, Node: File formats, Next: Installation, Prev: Output Devices, Up: Top 2346151497Sru 2347151497Sru8 File formats 2348151497Sru************** 2349151497Sru 2350151497SruAll files read and written by `gtroff' are text files. The following 2351151497Srutwo sections describe their format. 2352151497Sru 2353151497Sru* Menu: 2354151497Sru 2355151497Sru* gtroff Output:: 2356151497Sru* Font Files:: 2357151497Sru 2358151497Sru 2359151497SruFile: groff, Node: gtroff Output, Next: Font Files, Prev: File formats, Up: File formats 2360151497Sru 2361151497Sru8.1 `gtroff' Output 2362151497Sru=================== 2363151497Sru 2364151497SruThis section describes the intermediate output format of GNU `troff'. 2365151497SruThis output is produced by a run of `gtroff' before it is fed into a 2366151497Srudevice postprocessor program. 2367151497Sru 2368151497Sru As `groff' is a wrapper program around `gtroff' that automatically 2369151497Srucalls a postprocessor, this output does not show up normally. This is 2370151497Sruwhy it is called "intermediate". `groff' provides the option `-Z' to 2371151497Sruinhibit postprocessing, such that the produced intermediate output is 2372151497Srusent to standard output just like calling `gtroff' manually. 2373151497Sru 2374151497Sru Here, the term "troff output" describes what is output by `gtroff', 2375151497Sruwhile "intermediate output" refers to the language that is accepted by 2376151497Sruthe parser that prepares this output for the postprocessors. This 2377151497Sruparser is smarter on whitespace and implements obsolete elements for 2378151497Srucompatibility, otherwise both formats are the same.(1) (*note gtroff 2379151497SruOutput-Footnote-1::) 2380151497Sru 2381151497Sru The main purpose of the intermediate output concept is to facilitate 2382151497Sruthe development of postprocessors by providing a common programming 2383151497Sruinterface for all devices. It has a language of its own that is 2384151497Srucompletely different from the `gtroff' language. While the `gtroff' 2385151497Srulanguage is a high-level programming language for text processing, the 2386151497Sruintermediate output language is a kind of low-level assembler language 2387151497Sruby specifying all positions on the page for writing and drawing. 2388151497Sru 2389151497Sru The intermediate output produced by `gtroff' is fairly readable, 2390151497Sruwhile output from AT&T `troff' is rather hard to understand because of 2391151497Srustrange habits that are still supported, but not used any longer by 2392151497Sru`gtroff'. 2393151497Sru 2394151497Sru* Menu: 2395151497Sru 2396151497Sru* Language Concepts:: 2397151497Sru* Command Reference:: 2398151497Sru* Intermediate Output Examples:: 2399151497Sru* Output Language Compatibility:: 2400151497Sru 2401151497Sru 2402151497SruFile: groff, Node: gtroff Output-Footnotes, Up: gtroff Output 2403151497Sru 2404151497Sru (1) The parser and postprocessor for intermediate output can be 2405151497Srufound in the file 2406151497Sru`GROFF-SOURCE-DIR/src/libs/libdriver/input.cpp'. 2407151497Sru 2408151497Sru 2409151497SruFile: groff, Node: Language Concepts, Next: Command Reference, Prev: gtroff Output, Up: gtroff Output 2410151497Sru 2411151497Sru8.1.1 Language Concepts 2412151497Sru----------------------- 2413151497Sru 2414151497SruDuring the run of `gtroff', the input data is cracked down to the 2415151497Sruinformation on what has to be printed at what position on the intended 2416151497Srudevice. So the language of the intermediate output format can be quite 2417151497Srusmall. Its only elements are commands with and without arguments. In 2418151497Sruthis section, the term "command" always refers to the intermediate 2419151497Sruoutput language, and never to the `gtroff' language used for document 2420151497Sruformatting. There are commands for positioning and text writing, for 2421151497Srudrawing, and for device controlling. 2422151497Sru 2423151497Sru* Menu: 2424151497Sru 2425151497Sru* Separation:: 2426151497Sru* Argument Units:: 2427151497Sru* Document Parts:: 2428151497Sru 2429151497Sru 2430151497SruFile: groff, Node: Separation, Next: Argument Units, Prev: Language Concepts, Up: Language Concepts 2431151497Sru 2432151497Sru8.1.1.1 Separation 2433104862Sru.................. 2434104862Sru 2435151497SruAT&T `troff' output has strange requirements on whitespace. The 2436151497Sru`gtroff' output parser, however, is smart about whitespace by making it 2437151497Srumaximally optional. The whitespace characters, i.e., the tab, space, 2438151497Sruand newline characters, always have a syntactical meaning. They are 2439151497Srunever printable because spacing within the output is always done by 2440151497Srupositioning commands. 2441104862Sru 2442151497Sru Any sequence of space or tab characters is treated as a single 2443151497Sru"syntactical space". It separates commands and arguments, but is only 2444151497Srurequired when there would occur a clashing between the command code and 2445151497Sruthe arguments without the space. Most often, this happens when 2446151497Sruvariable-length command names, arguments, argument lists, or command 2447151497Sruclusters meet. Commands and arguments with a known, fixed length need 2448151497Srunot be separated by syntactical space. 2449104862Sru 2450151497Sru A line break is a syntactical element, too. Every command argument 2451151497Srucan be followed by whitespace, a comment, or a newline character. Thus 2452151497Srua "syntactical line break" is defined to consist of optional 2453151497Srusyntactical space that is optionally followed by a comment, and a 2454151497Srunewline character. 2455104862Sru 2456151497Sru The normal commands, those for positioning and text, consist of a 2457151497Srusingle letter taking a fixed number of arguments. For historical 2458151497Srureasons, the parser allows to stack such commands on the same line, but 2459151497Srufortunately, in `gtroff''s intermediate output, every command with at 2460151497Sruleast one argument is followed by a line break, thus providing 2461151497Sruexcellent readability. 2462104862Sru 2463151497Sru The other commands - those for drawing and device controlling - have 2464151497Srua more complicated structure; some recognize long command names, and 2465151497Srusome take a variable number of arguments. So all `D' and `x' commands 2466151497Sruwere designed to request a syntactical line break after their last 2467151497Sruargument. Only one command, `x X', has an argument that can stretch 2468151497Sruover several lines; all other commands must have all of their arguments 2469151497Sruon the same line as the command, i.e., the arguments may not be 2470151497Srusplitted by a line break. 2471104862Sru 2472151497Sru Empty lines (these are lines containing only space and/or a 2473151497Srucomment), can occur everywhere. They are just ignored. 2474104862Sru 2475151497Sru 2476151497SruFile: groff, Node: Argument Units, Next: Document Parts, Prev: Separation, Up: Language Concepts 2477104862Sru 2478151497Sru8.1.1.2 Argument Units 2479151497Sru...................... 2480104862Sru 2481151497SruSome commands take integer arguments that are assumed to represent 2482151497Sruvalues in a measurement unit, but the letter for the corresponding 2483151497Sruscale indicator is not written with the output command arguments. Most 2484151497Srucommands assume the scale indicator `u', the basic unit of the device, 2485151497Srusome use `z', the scaled point unit of the device, while others, such 2486151497Sruas the color commands, expect plain integers. 2487104862Sru 2488151497Sru Note that single characters can have the eighth bit set, as can the 2489151497Srunames of fonts and special characters. The names of characters and 2490151497Srufonts can be of arbitrary length. A character that is to be printed 2491151497Sruwill always be in the current font. 2492104862Sru 2493151497Sru A string argument is always terminated by the next whitespace 2494151497Srucharacter (space, tab, or newline); an embedded `#' character is 2495151497Sruregarded as part of the argument, not as the beginning of a comment 2496151497Srucommand. An integer argument is already terminated by the next 2497151497Srunon-digit character, which then is regarded as the first character of 2498151497Sruthe next argument or command. 2499104862Sru 2500151497Sru 2501151497SruFile: groff, Node: Document Parts, Prev: Argument Units, Up: Language Concepts 2502104862Sru 2503151497Sru8.1.1.3 Document Parts 2504151497Sru...................... 2505104862Sru 2506151497SruA correct intermediate output document consists of two parts, the 2507151497Sru"prologue" and the "body". 2508104862Sru 2509151497Sru The task of the prologue is to set the general device parameters 2510151497Sruusing three exactly specified commands. `gtroff''s prologue is 2511151497Sruguaranteed to consist of the following three lines (in that order): 2512104862Sru 2513151497Sru 2514151497Sru x T DEVICE 2515151497Sru x res N H V 2516151497Sru x init 2517151497Sru 2518151497Sruwith the arguments set as outlined in *Note Device Control Commands::. 2519151497SruNote that the parser for the intermediate output format is able to 2520151497Sruswallow additional whitespace and comments as well even in the prologue. 2521151497Sru 2522151497Sru The body is the main section for processing the document data. 2523151497SruSyntactically, it is a sequence of any commands different from the ones 2524151497Sruused in the prologue. Processing is terminated as soon as the first 2525151497Sru`x stop' command is encountered; the last line of any `gtroff' 2526151497Sruintermediate output always contains such a command. 2527151497Sru 2528151497Sru Semantically, the body is page oriented. A new page is started by a 2529151497Sru`p' command. Positioning, writing, and drawing commands are always 2530151497Srudone within the current page, so they cannot occur before the first `p' 2531151497Srucommand. Absolute positioning (by the `H' and `V' commands) is done 2532151497Srurelative to the current page; all other positioning is done relative to 2533151497Sruthe current location within this page. 2534151497Sru 2535104862Sru 2536151497SruFile: groff, Node: Command Reference, Next: Intermediate Output Examples, Prev: Language Concepts, Up: gtroff Output 2537104862Sru 2538151497Sru8.1.2 Command Reference 2539151497Sru----------------------- 2540104862Sru 2541151497SruThis section describes all intermediate output commands, both from AT&T 2542151497Sru`troff' as well as the `gtroff' extensions. 2543104862Sru 2544151497Sru* Menu: 2545104862Sru 2546151497Sru* Comment Command:: 2547151497Sru* Simple Commands:: 2548151497Sru* Graphics Commands:: 2549151497Sru* Device Control Commands:: 2550151497Sru* Obsolete Command:: 2551104862Sru 2552151497Sru 2553151497SruFile: groff, Node: Comment Command, Next: Simple Commands, Prev: Command Reference, Up: Command Reference 2554104862Sru 2555151497Sru8.1.2.1 Comment Command 2556151497Sru....................... 2557104862Sru 2558151497Sru`#ANYTHING<end of line>' 2559151497Sru A comment. Ignore any characters from the `#' character up to the 2560151497Sru next newline character. 2561151497Sru 2562151497Sru This command is the only possibility for commenting in the 2563151497Sru intermediate output. Each comment can be preceded by arbitrary 2564151497Sru syntactical space; every command can be terminated by a comment. 2565151497Sru 2566151497Sru 2567151497SruFile: groff, Node: Simple Commands, Next: Graphics Commands, Prev: Comment Command, Up: Command Reference 2568151497Sru 2569151497Sru8.1.2.2 Simple Commands 2570151497Sru....................... 2571151497Sru 2572151497SruThe commands in this subsection have a command code consisting of a 2573151497Srusingle character, taking a fixed number of arguments. Most of them are 2574151497Srucommands for positioning and text writing. These commands are smart 2575151497Sruabout whitespace. Optionally, syntactical space can be inserted 2576151497Srubefore, after, and between the command letter and its arguments. All 2577151497Sruof these commands are stackable, i.e., they can be preceded by other 2578151497Srusimple commands or followed by arbitrary other commands on the same 2579151497Sruline. A separating syntactical space is only necessary when two 2580151497Sruinteger arguments would clash or if the preceding argument ends with a 2581151497Srustring argument. 2582151497Sru 2583151497Sru`C XXX<whitespace>' 2584151497Sru Print a special character named XXX. The trailing syntactical 2585151497Sru space or line break is necessary to allow glyph names of arbitrary 2586151497Sru length. The glyph is printed at the current print position; the 2587151497Sru glyph's size is read from the font file. The print position is 2588151497Sru not changed. 2589151497Sru 2590151497Sru`c G' 2591151497Sru Print glyph G at the current print position;(1) (*note Simple 2592151497Sru Commands-Footnote-1::) the glyph's size is read from the font 2593151497Sru file. The print position is not changed. 2594151497Sru 2595151497Sru`f N' 2596151497Sru Set font to font number N (a non-negative integer). 2597151497Sru 2598151497Sru`H N' 2599151497Sru Move right to the absolute vertical position N (a non-negative 2600151497Sru integer in basic units `u' relative to left edge of current page. 2601151497Sru 2602151497Sru`h N' 2603151497Sru Move N (a non-negative integer) basic units `u' horizontally to 2604151497Sru the right. The original UNIX troff manual allows negative values 2605151497Sru for N also, but `gtroff' doesn't use this. 2606151497Sru 2607151497Sru`m COLOR-SCHEME [COMPONENT ...]' 2608151497Sru Set the color for text (glyphs), line drawing, and the outline of 2609151497Sru graphic objects using different color schemes; the analoguous 2610151497Sru command for the filling color of graphic objects is `DF'. The 2611151497Sru color components are specified as integer arguments between 0 and 2612151497Sru 65536. The number of color components and their meaning vary for 2613151497Sru the different color schemes. These commands are generated by 2614151497Sru `gtroff''s escape sequence `\m'. No position changing. These 2615151497Sru commands are a `gtroff' extension. 2616151497Sru 2617151497Sru `mc CYAN MAGENTA YELLOW' 2618151497Sru Set color using the CMY color scheme, having the 3 color 2619151497Sru components CYAN, MAGENTA, and YELLOW. 2620151497Sru 2621151497Sru `md' 2622151497Sru Set color to the default color value (black in most cases). 2623151497Sru No component arguments. 2624151497Sru 2625151497Sru `mg GRAY' 2626151497Sru Set color to the shade of gray given by the argument, an 2627151497Sru integer between 0 (black) and 65536 (white). 2628151497Sru 2629151497Sru `mk CYAN MAGENTA YELLOW BLACK' 2630151497Sru Set color using the CMYK color scheme, having the 4 color 2631151497Sru components CYAN, MAGENTA, YELLOW, and BLACK. 2632151497Sru 2633151497Sru `mr RED GREEN BLUE' 2634151497Sru Set color using the RGB color scheme, having the 3 color 2635151497Sru components RED, GREEN, and BLUE. 2636151497Sru 2637151497Sru`N N' 2638151497Sru Print glyph with index N (a non-negative integer) of the current 2639151497Sru font. This command is a `gtroff' extension. 2640151497Sru 2641151497Sru`n B A' 2642151497Sru Inform the device about a line break, but no positioning is done by 2643151497Sru this command. In AT&T `troff', the integer arguments B and A 2644151497Sru informed about the space before and after the current line to make 2645151497Sru the intermediate output more human readable without performing any 2646151497Sru action. In `groff', they are just ignored, but they must be 2647151497Sru provided for compatibility reasons. 2648151497Sru 2649151497Sru`p N' 2650151497Sru Begin a new page in the outprint. The page number is set to N. 2651151497Sru This page is completely independent of pages formerly processed 2652151497Sru even if those have the same page number. The vertical position on 2653151497Sru the outprint is automatically set to 0. All positioning, writing, 2654151497Sru and drawing is always done relative to a page, so a `p' command 2655151497Sru must be issued before any of these commands. 2656151497Sru 2657151497Sru`s N' 2658151497Sru Set point size to N scaled points (this is unit `z'). AT&T 2659151497Sru `troff' used the unit points (`p') instead. *Note Output Language 2660151497Sru Compatibility::. 2661151497Sru 2662151497Sru`t XXX<whitespace>' 2663151497Sru`t XXX DUMMY-ARG<whitespace>' 2664151497Sru Print a word, i.e., a sequence of characters XXX representing 2665151497Sru output glyphs which names are single characters, terminated by a 2666151497Sru space character or a line break; an optional second integer 2667151497Sru argument is ignored (this allows the formatter to generate an even 2668151497Sru number of arguments). The first glyph should be printed at the 2669151497Sru current position, the current horizontal position should then be 2670151497Sru increased by the width of the first glyph, and so on for each 2671151497Sru glyph. The widths of the glyphs are read from the font file, 2672151497Sru scaled for the current point size, and rounded to a multiple of 2673151497Sru the horizontal resolution. Special characters cannot be printed 2674151497Sru using this command (use the `C' command for special characters). 2675151497Sru This command is a `gtroff' extension; it is only used for devices 2676151497Sru whose `DESC' file contains the `tcommand' keyword (*note DESC File 2677151497Sru Format::). 2678151497Sru 2679151497Sru`u N XXX<whitespace>' 2680151497Sru Print word with track kerning. This is the same as the `t' 2681151497Sru command except that after printing each glyph, the current 2682151497Sru horizontal position is increased by the sum of the width of that 2683151497Sru glyph and N (an integer in basic units `u'). This command is a 2684151497Sru `gtroff' extension; it is only used for devices whose `DESC' file 2685151497Sru contains the `tcommand' keyword (*note DESC File Format::). 2686151497Sru 2687151497Sru`V N' 2688151497Sru Move down to the absolute vertical position N (a non-negative 2689151497Sru integer in basic units `u') relative to upper edge of current page. 2690151497Sru 2691151497Sru`v N' 2692151497Sru Move N basic units `u' down (N is a non-negative integer). The 2693151497Sru original UNIX troff manual allows negative values for N also, but 2694151497Sru `gtroff' doesn't use this. 2695151497Sru 2696151497Sru`w' 2697151497Sru Informs about a paddable white space to increase readability. The 2698151497Sru spacing itself must be performed explicitly by a move command. 2699151497Sru 2700151497Sru 2701151497SruFile: groff, Node: Simple Commands-Footnotes, Up: Simple Commands 2702151497Sru 2703151497Sru (1) `c' is actually a misnomer since it outputs a glyph. 2704151497Sru 2705151497Sru 2706151497SruFile: groff, Node: Graphics Commands, Next: Device Control Commands, Prev: Simple Commands, Up: Command Reference 2707151497Sru 2708151497Sru8.1.2.3 Graphics Commands 2709151497Sru......................... 2710151497Sru 2711151497SruEach graphics or drawing command in the intermediate output starts with 2712151497Sruthe letter `D', followed by one or two characters that specify a 2713151497Srusubcommand; this is followed by a fixed or variable number of integer 2714151497Sruarguments that are separated by a single space character. A `D' 2715151497Srucommand may not be followed by another command on the same line (apart 2716151497Srufrom a comment), so each `D' command is terminated by a syntactical 2717151497Sruline break. 2718151497Sru 2719151497Sru `gtroff' output follows the classical spacing rules (no space 2720151497Srubetween command and subcommand, all arguments are preceded by a single 2721151497Sruspace character), but the parser allows optional space between the 2722151497Srucommand letters and makes the space before the first argument optional. 2723151497SruAs usual, each space can be any sequence of tab and space characters. 2724151497Sru 2725151497Sru Some graphics commands can take a variable number of arguments. In 2726151497Sruthis case, they are integers representing a size measured in basic 2727151497Sruunits `u'. The arguments called H1, H2, ..., HN stand for horizontal 2728151497Srudistances where positive means right, negative left. The arguments 2729151497Srucalled V1, V2, ..., VN stand for vertical distances where positive 2730151497Srumeans down, negative up. All these distances are offsets relative to 2731151497Sruthe current location. 2732151497Sru 2733151497Sru Each graphics command directly corresponds to a similar `gtroff' 2734151497Sru`\D' escape sequence. *Note Drawing Requests::. 2735151497Sru 2736151497Sru Unknown `D' commands are assumed to be device-specific. Its 2737151497Sruarguments are parsed as strings; the whole information is then sent to 2738151497Sruthe postprocessor. 2739151497Sru 2740151497Sru In the following command reference, the syntax element <line 2741151497Srubreak> means a syntactical line break as defined above. 2742151497Sru 2743151497Sru`D~ H1 V1 H2 V2 ... HN VN<line break>' 2744151497Sru Draw B-spline from current position to offset (H1,V1), then to 2745151497Sru offset (H2,V2), if given, etc. up to (HN,VN). This command takes 2746151497Sru a variable number of argument pairs; the current position is moved 2747151497Sru to the terminal point of the drawn curve. 2748151497Sru 2749151497Sru`Da H1 V1 H2 V2<line break>' 2750151497Sru Draw arc from current position to (H1,V1)+(H2,V2) with center at 2751151497Sru (H1,V1); then move the current position to the final point of the 2752151497Sru arc. 2753151497Sru 2754151497Sru`DC D<line break>' 2755151497Sru`DC D DUMMY-ARG<line break>' 2756151497Sru Draw a solid circle using the current fill color with diameter D 2757151497Sru (integer in basic units `u') with leftmost point at the current 2758151497Sru position; then move the current position to the rightmost point of 2759151497Sru the circle. An optional second integer argument is ignored (this 2760151497Sru allows the formatter to generate an even number of arguments). 2761151497Sru This command is a `gtroff' extension. 2762151497Sru 2763151497Sru`Dc D<line break>' 2764151497Sru Draw circle line with diameter D (integer in basic units `u') with 2765151497Sru leftmost point at the current position; then move the current 2766151497Sru position to the rightmost point of the circle. 2767151497Sru 2768151497Sru`DE H V<line break>' 2769151497Sru Draw a solid ellipse in the current fill color with a horizontal 2770151497Sru diameter of H and a vertical diameter of V (both integers in basic 2771151497Sru units `u') with the leftmost point at the current position; then 2772151497Sru move to the rightmost point of the ellipse. This command is a 2773151497Sru `gtroff' extension. 2774151497Sru 2775151497Sru`De H V<line break>' 2776151497Sru Draw an outlined ellipse with a horizontal diameter of H and a 2777151497Sru vertical diameter of V (both integers in basic units `u') with the 2778151497Sru leftmost point at current position; then move to the rightmost 2779151497Sru point of the ellipse. 2780151497Sru 2781151497Sru`DF COLOR-SCHEME [COMPONENT ...]<line break>' 2782151497Sru Set fill color for solid drawing objects using different color 2783151497Sru schemes; the analoguous command for setting the color of text, line 2784151497Sru graphics, and the outline of graphic objects is `m'. The color 2785151497Sru components are specified as integer arguments between 0 and 65536. 2786151497Sru The number of color components and their meaning vary for the 2787151497Sru different color schemes. These commands are generated by 2788151497Sru `gtroff''s escape sequences `\D'F ...'' and `\M' (with no other 2789151497Sru corresponding graphics commands). No position changing. This 2790151497Sru command is a `gtroff' extension. 2791151497Sru 2792151497Sru `DFc CYAN MAGENTA YELLOW<line break>' 2793151497Sru Set fill color for solid drawing objects using the CMY color 2794151497Sru scheme, having the 3 color components CYAN, MAGENTA, and 2795151497Sru YELLOW. 2796151497Sru 2797151497Sru `DFd<line break>' 2798151497Sru Set fill color for solid drawing objects to the default fill 2799151497Sru color value (black in most cases). No component arguments. 2800151497Sru 2801151497Sru `DFg GRAY<line break>' 2802151497Sru Set fill color for solid drawing objects to the shade of gray 2803151497Sru given by the argument, an integer between 0 (black) and 65536 2804151497Sru (white). 2805151497Sru 2806151497Sru `DFk CYAN MAGENTA YELLOW BLACK<line break>' 2807151497Sru Set fill color for solid drawing objects using the CMYK color 2808151497Sru scheme, having the 4 color components CYAN, MAGENTA, YELLOW, 2809151497Sru and BLACK. 2810151497Sru 2811151497Sru `DFr RED GREEN BLUE<line break>' 2812151497Sru Set fill color for solid drawing objects using the RGB color 2813151497Sru scheme, having the 3 color components RED, GREEN, and BLUE. 2814151497Sru 2815151497Sru`Df N<line break>' 2816151497Sru The argument N must be an integer in the range -32767 to 32767. 2817151497Sru 2818151497Sru 0 <= N <= 1000 2819151497Sru Set the color for filling solid drawing objects to a shade of 2820151497Sru gray, where 0 corresponds to solid white, 1000 (the default) 2821151497Sru to solid black, and values in between to intermediate shades 2822151497Sru of gray; this is obsoleted by command `DFg'. 2823151497Sru 2824151497Sru N < 0 or N > 1000 2825151497Sru Set the filling color to the color that is currently being 2826151497Sru used for the text and the outline, see command `m'. For 2827151497Sru example, the command sequence 2828151497Sru 2829151497Sru 2830151497Sru mg 0 0 65536 2831151497Sru Df -1 2832151497Sru 2833151497Sru sets all colors to blue. 2834151497Sru 2835151497Sru No position changing. This command is a `gtroff' extension. 2836151497Sru 2837151497Sru`Dl H V<line break>' 2838151497Sru Draw line from current position to offset (H,V) (integers in basic 2839151497Sru units `u'); then set current position to the end of the drawn line. 2840151497Sru 2841151497Sru`Dp H1 V1 H2 V2 ... HN VN<line break>' 2842151497Sru Draw a polygon line from current position to offset (H1,V1), from 2843151497Sru there to offset (H2,V2), etc. up to offset (HN,VN), and from there 2844151497Sru back to the starting position. For historical reasons, the 2845151497Sru position is changed by adding the sum of all arguments with odd 2846151497Sru index to the actual horizontal position and the even ones to the 2847151497Sru vertical position. Although this doesn't make sense it is kept 2848151497Sru for compatibility. This command is a `gtroff' extension. 2849151497Sru 2850151497Sru`Dp H1 V1 H2 V2 ... HN VN<line break>' 2851151497Sru Draw a solid polygon in the current fill color rather than an 2852151497Sru outlined polygon, using the same arguments and positioning as the 2853151497Sru corresponding `Dp' command. This command is a `gtroff' extension. 2854151497Sru 2855151497Sru`Dt N<line break>' 2856151497Sru Set the current line thickness to N (an integer in basic units 2857151497Sru `u') if N>0; if N=0 select the smallest available line thickness; 2858151497Sru if N<0 set the line thickness proportional to the point size (this 2859151497Sru is the default before the first `Dt' command was specified). For 2860151497Sru historical reasons, the horizontal position is changed by adding 2861151497Sru the argument to the actual horizontal position, while the vertical 2862151497Sru position is not changed. Although this doesn't make sense it is 2863151497Sru kept for compatibility. This command is a `gtroff' extension. 2864151497Sru 2865151497Sru 2866151497SruFile: groff, Node: Device Control Commands, Next: Obsolete Command, Prev: Graphics Commands, Up: Command Reference 2867151497Sru 2868151497Sru8.1.2.4 Device Control Commands 2869151497Sru............................... 2870151497Sru 2871151497SruEach device control command starts with the letter `x', followed by a 2872151497Sruspace character (optional or arbitrary space or tab in `gtroff') and a 2873151497Srusubcommand letter or word; each argument (if any) must be preceded by a 2874151497Srusyntactical space. All `x' commands are terminated by a syntactical 2875151497Sruline break; no device control command can be followed by another 2876151497Srucommand on the same line (except a comment). 2877151497Sru 2878151497Sru The subcommand is basically a single letter, but to increase 2879151497Srureadability, it can be written as a word, i.e., an arbitrary sequence 2880151497Sruof characters terminated by the next tab, space, or newline character. 2881151497SruAll characters of the subcommand word but the first are simply ignored. 2882151497SruFor example, `gtroff' outputs the initialization command `x i' as 2883151497Sru`x init' and the resolution command `x r' as `x res'. 2884151497Sru 2885151497Sru In the following, the syntax element <line break> means a 2886151497Srusyntactical line break (*note Separation::). 2887151497Sru 2888151497Sru`xF NAME<line break>' 2889151497Sru The `F' stands for FILENAME. 2890151497Sru 2891151497Sru Use NAME as the intended name for the current file in error 2892151497Sru reports. This is useful for remembering the original file name 2893151497Sru when `gtroff' uses an internal piping mechanism. The input file is 2894151497Sru not changed by this command. This command is a `gtroff' extension. 2895151497Sru 2896151497Sru`xf N S<line break>' 2897151497Sru The `f' stands for FONT. 2898151497Sru 2899151497Sru Mount font position N (a non-negative integer) with font named S 2900151497Sru (a text word). *Note Font Positions::. 2901151497Sru 2902151497Sru`xH N<line break>' 2903151497Sru The `H' stands for HEIGHT. 2904151497Sru 2905151497Sru Set glyph height to N (a positive integer in scaled points `z'). 2906151497Sru AT&T `troff' uses the unit points (`p') instead. *Note Output 2907151497Sru Language Compatibility::. 2908151497Sru 2909151497Sru`xi<line break>' 2910151497Sru The `i' stands for INIT. 2911151497Sru 2912151497Sru Initialize device. This is the third command of the prologue. 2913151497Sru 2914151497Sru`xp<line break>' 2915151497Sru The `p' stands for PAUSE. 2916151497Sru 2917151497Sru Parsed but ignored. The original UNIX troff manual writes 2918151497Sru 2919151497Sru pause device, can be restarted 2920151497Sru 2921151497Sru`xr N H V<line break>' 2922151497Sru The `r' stands for RESOLUTION. 2923151497Sru 2924151497Sru Resolution is N, while H is the minimal horizontal motion, and V 2925151497Sru the minimal vertical motion possible with this device; all 2926151497Sru arguments are positive integers in basic units `u' per inch. This 2927151497Sru is the second command of the prologue. 2928151497Sru 2929151497Sru`xS N<line break>' 2930151497Sru The `S' stands for SLANT. 2931151497Sru 2932151497Sru Set slant to N (an integer in basic units `u'). 2933151497Sru 2934151497Sru`xs<line break>' 2935151497Sru The `s' stands for STOP. 2936151497Sru 2937151497Sru Terminates the processing of the current file; issued as the last 2938151497Sru command of any intermediate troff output. 2939151497Sru 2940151497Sru`xt<line break>' 2941151497Sru The `t' stands for TRAILER. 2942151497Sru 2943151497Sru Generate trailer information, if any. In GTROFF, this is actually 2944151497Sru just ignored. 2945151497Sru 2946151497Sru`xT XXX<line break>' 2947151497Sru The `T' stands for TYPESETTER. 2948151497Sru 2949151497Sru Set name of device to word XXX, a sequence of characters ended by 2950151497Sru the next white space character. The possible device names coincide 2951151497Sru with those from the `groff' `-T' option. This is the first 2952151497Sru command of the prologue. 2953151497Sru 2954151497Sru`xu N<line break>' 2955151497Sru The `u' stands for UNDERLINE. 2956151497Sru 2957151497Sru Configure underlining of spaces. If N is 1, start underlining of 2958151497Sru spaces; if N is 0, stop underlining of spaces. This is needed for 2959151497Sru the `cu' request in nroff mode and is ignored otherwise. This 2960151497Sru command is a `gtroff' extension. 2961151497Sru 2962151497Sru`xX ANYTHING<line break>' 2963151497Sru The `x' stands for X-ESCAPE. 2964151497Sru 2965151497Sru Send string ANYTHING uninterpreted to the device. If the line 2966151497Sru following this command starts with a `+' character this line is 2967151497Sru interpreted as a continuation line in the following sense. The 2968151497Sru `+' is ignored, but a newline character is sent instead to the 2969151497Sru device, the rest of the line is sent uninterpreted. The same 2970151497Sru applies to all following lines until the first character of a line 2971151497Sru is not a `+' character. This command is generated by the `gtroff' 2972151497Sru escape sequence `\X'. The line-continuing feature is a `gtroff' 2973151497Sru extension. 2974151497Sru 2975151497Sru 2976151497SruFile: groff, Node: Obsolete Command, Prev: Device Control Commands, Up: Command Reference 2977151497Sru 2978151497Sru8.1.2.5 Obsolete Command 2979151497Sru........................ 2980151497Sru 2981151497SruIn AT&T `troff' output, the writing of a single glyph is mostly done by 2982151497Srua very strange command that combines a horizontal move and a single 2983151497Srucharacter giving the glyph name. It doesn't have a command code, but 2984151497Sruis represented by a 3-character argument consisting of exactly 2 digits 2985151497Sruand a character. 2986151497Sru 2987151497SruDDG 2988151497Sru Move right DD (exactly two decimal digits) basic units `u', then 2989151497Sru print glyph G (represented as a single character). 2990151497Sru 2991151497Sru In `gtroff', arbitrary syntactical space around and within this 2992151497Sru command is allowed to be added. Only when a preceding command on 2993151497Sru the same line ends with an argument of variable length a 2994151497Sru separating space is obligatory. In AT&T `troff', large clusters 2995151497Sru of these and other commands are used, mostly without spaces; this 2996151497Sru made such output almost unreadable. 2997151497Sru 2998151497Sru For modern high-resolution devices, this command does not make sense 2999151497Srubecause the width of the glyphs can become much larger than two decimal 3000151497Srudigits. In `gtroff', this is only used for the devices `X75', 3001151497Sru`X75-12', `X100', and `X100-12'. For other devices, the commands `t' 3002151497Sruand `u' provide a better functionality. 3003151497Sru 3004151497Sru 3005151497SruFile: groff, Node: Intermediate Output Examples, Next: Output Language Compatibility, Prev: Command Reference, Up: gtroff Output 3006151497Sru 3007151497Sru8.1.3 Intermediate Output Examples 3008151497Sru---------------------------------- 3009151497Sru 3010151497SruThis section presents the intermediate output generated from the same 3011151497Sruinput for three different devices. The input is the sentence `hell 3012151497Sruworld' fed into `gtroff' on the command line. 3013151497Sru 3014151497SruHigh-resolution device `ps' 3015151497Sru This is the standard output of `gtroff' if no `-T' option is given. 3016151497Sru 3017151497Sru shell> echo "hell world" | groff -Z -T ps 3018151497Sru 3019151497Sru x T ps 3020151497Sru x res 72000 1 1 3021151497Sru x init 3022151497Sru p1 3023151497Sru x font 5 TR 3024151497Sru f5 3025151497Sru s10000 3026151497Sru V12000 3027151497Sru H72000 3028151497Sru thell 3029151497Sru wh2500 3030151497Sru tw 3031151497Sru H96620 3032151497Sru torld 3033151497Sru n12000 0 3034151497Sru x trailer 3035151497Sru V792000 3036151497Sru x stop 3037151497Sru 3038151497Sru This output can be fed into `grops' to get its representation as a 3039151497Sru PostScript file. 3040151497Sru 3041151497SruLow-resolution device `latin1' 3042151497Sru This is similar to the high-resolution device except that the 3043151497Sru positioning is done at a minor scale. Some comments (lines 3044151497Sru starting with `#') were added for clarification; they were not 3045151497Sru generated by the formatter. 3046151497Sru 3047151497Sru shell> echo "hell world" | groff -Z -T latin1 3048151497Sru 3049151497Sru # prologue 3050151497Sru x T latin1 3051151497Sru x res 240 24 40 3052151497Sru x init 3053151497Sru # begin a new page 3054151497Sru p1 3055151497Sru # font setup 3056151497Sru x font 1 R 3057151497Sru f1 3058151497Sru s10 3059151497Sru # initial positioning on the page 3060151497Sru V40 3061151497Sru H0 3062151497Sru # write text `hell' 3063151497Sru thell 3064151497Sru # inform about space, and issue a horizontal jump 3065151497Sru wh24 3066151497Sru # write text `world' 3067151497Sru tworld 3068151497Sru # announce line break, but do nothing because ... 3069151497Sru n40 0 3070151497Sru # ... the end of the document has been reached 3071151497Sru x trailer 3072151497Sru V2640 3073151497Sru x stop 3074151497Sru 3075151497Sru This output can be fed into `grotty' to get a formatted text 3076151497Sru document. 3077151497Sru 3078151497SruAT&T `troff' output 3079151497Sru Since a computer monitor has a very low resolution compared to 3080151497Sru modern printers the intermediate output for the X Window devices 3081151497Sru can use the jump-and-write command with its 2-digit displacements. 3082151497Sru 3083151497Sru shell> echo "hell world" | groff -Z -T X100 3084151497Sru 3085151497Sru x T X100 3086151497Sru x res 100 1 1 3087151497Sru x init 3088151497Sru p1 3089151497Sru x font 5 TR 3090151497Sru f5 3091151497Sru s10 3092151497Sru V16 3093151497Sru H100 3094151497Sru # write text with jump-and-write commands 3095151497Sru ch07e07l03lw06w11o07r05l03dh7 3096151497Sru n16 0 3097151497Sru x trailer 3098151497Sru V1100 3099151497Sru x stop 3100151497Sru 3101151497Sru This output can be fed into `xditview' or `gxditview' for 3102151497Sru displaying in X. 3103151497Sru 3104151497Sru Due to the obsolete jump-and-write command, the text clusters in 3105151497Sru the AT&T `troff' output are almost unreadable. 3106151497Sru 3107151497Sru 3108151497SruFile: groff, Node: Output Language Compatibility, Prev: Intermediate Output Examples, Up: gtroff Output 3109151497Sru 3110151497Sru8.1.4 Output Language Compatibility 3111151497Sru----------------------------------- 3112151497Sru 3113151497SruThe intermediate output language of AT&T `troff' was first documented 3114151497Sruin the UNIX troff manual, with later additions documented in `A 3115151497SruTypesetter-indenpendent TROFF', written by Brian Kernighan. 3116151497Sru 3117151497Sru The `gtroff' intermediate output format is compatible with this 3118151497Sruspecification except for the following features. 3119151497Sru 3120151497Sru * The classical quasi device independence is not yet implemented. 3121151497Sru 3122151497Sru * The old hardware was very different from what we use today. So the 3123151497Sru `groff' devices are also fundamentally different from the ones in 3124151497Sru AT&T `troff'. For example, the AT&T PostScript device is called 3125151497Sru `post' and has a resolution of only 720 units per inch, suitable 3126151497Sru for printers 20 years ago, while `groff''s `ps' device has a 3127151497Sru resolution of 72000 units per inch. Maybe, by implementing some 3128151497Sru rescaling mechanism similar to the classical quasi device 3129151497Sru independence, `groff' could emulate AT&T's `post' device. 3130151497Sru 3131151497Sru * The B-spline command `D~' is correctly handled by the intermediate 3132151497Sru output parser, but the drawing routines aren't implemented in some 3133151497Sru of the postprocessor programs. 3134151497Sru 3135151497Sru * The argument of the commands `s' and `x H' has the implicit unit 3136151497Sru scaled point `z' in `gtroff', while AT&T `troff' has point (`p'). 3137151497Sru This isn't an incompatibility but a compatible extension, for both 3138151497Sru units coincide for all devices without a `sizescale' parameter in 3139151497Sru the `DESC' file, including all postprocessors from AT&T and 3140151497Sru `groff''s text devices. The few `groff' devices with a 3141151497Sru `sizescale' parameter either do not exist for AT&T `troff', have a 3142151497Sru different name, or seem to have a different resolution. So 3143151497Sru conflicts are very unlikely. 3144151497Sru 3145151497Sru * The position changing after the commands `Dp', `DP', and `Dt' is 3146151497Sru illogical, but as old versions of `gtroff' used this feature it is 3147151497Sru kept for compatibility reasons. 3148151497Sru 3149151497Sru 3150151497Sru 3151151497SruFile: groff, Node: Font Files, Prev: gtroff Output, Up: File formats 3152151497Sru 3153151497Sru8.2 Font Files 3154151497Sru============== 3155151497Sru 3156151497SruThe `gtroff' font format is roughly a superset of the `ditroff' font 3157151497Sruformat (as used in later versions of AT&T `troff' and its descendants). 3158151497SruUnlike the `ditroff' font format, there is no associated binary 3159151497Sruformat; all files are text files.(1) (*note Font Files-Footnote-1::) 3160151497SruThe font files for device NAME are stored in a directory `devNAME'. 3161151497SruThere are two types of file: a device description file called `DESC' 3162151497Sruand for each font F a font file called `F'. 3163151497Sru 3164104862Sru* Menu: 3165104862Sru 3166151497Sru* DESC File Format:: 3167151497Sru* Font File Format:: 3168104862Sru 3169104862Sru 3170151497SruFile: groff, Node: Font Files-Footnotes, Up: Font Files 3171104862Sru 3172151497Sru (1) Plan 9 `troff' has also abandoned the binary format. 3173104862Sru 3174151497Sru 3175151497SruFile: groff, Node: DESC File Format, Next: Font File Format, Prev: Font Files, Up: Font Files 3176104862Sru 3177151497Sru8.2.1 `DESC' File Format 3178151497Sru------------------------ 3179104862Sru 3180151497SruThe `DESC' file can contain the following types of line. Except for 3181151497Sruthe `charset' keyword which must comes last (if at all), the order of 3182151497Sruthe lines is not important. 3183104862Sru 3184151497Sru`res N' 3185151497Sru There are N machine units per inch. 3186151497Sru 3187151497Sru`hor N' 3188151497Sru The horizontal resolution is N machine units. All horizontal 3189151497Sru quantities are rounded to be multiples of this value. 3190151497Sru 3191151497Sru`vert N' 3192151497Sru The vertical resolution is N machine units. All vertical 3193151497Sru quantities are rounded to be multiples of this value. 3194151497Sru 3195151497Sru`sizescale N' 3196151497Sru The scale factor for point sizes. By default this has a value 3197151497Sru of 1. One scaled point is equal to one point/N. The arguments to 3198151497Sru the `unitwidth' and `sizes' commands are given in scaled points. 3199151497Sru *Note Fractional Type Sizes::, for more information. 3200151497Sru 3201151497Sru`unitwidth N' 3202151497Sru Quantities in the font files are given in machine units for fonts 3203151497Sru whose point size is N scaled points. 3204151497Sru 3205151497Sru`prepro PROGRAM' 3206151497Sru Call PROGRAM as a preprocessor. Currently, this keyword is used 3207151497Sru by `groff' with option `-Thtml' only. 3208151497Sru 3209151497Sru`postpro PROGRAM' 3210151497Sru Call PROGRAM as a postprocessor. For example, the line 3211151497Sru 3212151497Sru 3213151497Sru postpro grodvi 3214151497Sru 3215151497Sru in the file `devdvi/DESC' makes `groff' call `grodvi' if option 3216151497Sru `-Tdvi' is given (and `-Z' isn't used). 3217151497Sru 3218151497Sru`tcommand' 3219151497Sru This means that the postprocessor can handle the `t' and `u' 3220151497Sru intermediate output commands. 3221151497Sru 3222151497Sru`sizes S1 S2 ... SN 0' 3223151497Sru This means that the device has fonts at S1, S2, ... SN scaled 3224151497Sru points. The list of sizes must be terminated by 0 (this is digit 3225151497Sru zero). Each SI can also be a range of sizes M-N. The list can 3226151497Sru extend over more than one line. 3227151497Sru 3228151497Sru`styles S1 S2 ... SM' 3229151497Sru The first M font positions are associated with styles S1 ... SM. 3230151497Sru 3231151497Sru`fonts N F1 F2 F3 ... FN' 3232151497Sru Fonts F1 ... FN are mounted in the font positions M+1, ..., M+N 3233151497Sru where M is the number of styles. This command may extend over 3234151497Sru more than one line. A font name of 0 means no font is mounted on 3235151497Sru the corresponding font position. 3236151497Sru 3237151497Sru`family FAM' 3238151497Sru The default font family is FAM. 3239151497Sru 3240151497Sru`use_charnames_in_special' 3241151497Sru This command indicates that `gtroff' should encode special 3242151497Sru characters inside special commands. Currently, this is only used 3243151497Sru by the HTML output device. *Note Postprocessor Access::. 3244151497Sru 3245151497Sru`papersize STRING ...' 3246151497Sru Select a paper size. Valid values for STRING are the ISO paper 3247151497Sru types `A0'-`A7', `B0'-`B7', `C0'-`C7', `D0'-`D7', `DL', and the US 3248151497Sru paper types `letter', `legal', `tabloid', `ledger', `statement', 3249151497Sru `executive', `com10', and `monarch'. Case is not significant for 3250151497Sru STRING if it holds predefined paper types. Alternatively, STRING 3251151497Sru can be a file name (e.g. `/etc/papersize'); if the file can be 3252151497Sru opened, `groff' reads the first line and tests for the above paper 3253151497Sru sizes. Finally, STRING can be a custom paper size in the format 3254151497Sru `LENGTH,WIDTH' (no spaces before and after the comma). Both 3255151497Sru LENGTH and WIDTH must have a unit appended; valid values are `i' 3256151497Sru for inches, `C' for centimeters, `p' for points, and `P' for 3257151497Sru picas. Example: `12c,235p'. An argument which starts with a 3258151497Sru digit is always treated as a custom paper format. `papersize' 3259151497Sru sets both the vertical and horizontal dimension of the output 3260151497Sru medium. 3261151497Sru 3262151497Sru More than one argument can be specified; `groff' scans from left to 3263151497Sru right and uses the first valid paper specification. 3264151497Sru 3265151497Sru`pass_filenames' 3266151497Sru Tell `gtroff' to emit the name of the source file currently being 3267151497Sru processed. This is achieved by the intermediate output command 3268151497Sru `F'. Currently, this is only used by the HTML output device. 3269151497Sru 3270151497Sru`print PROGRAM' 3271151497Sru Use PROGRAM as a spooler program for printing. If omitted, the 3272151497Sru `-l' and `-L' options of `groff' are ignored. 3273151497Sru 3274151497Sru`charset' 3275151497Sru This line and everything following in the file are ignored. It is 3276151497Sru allowed for the sake of backwards compatibility. 3277151497Sru 3278151497Sru The `res', `unitwidth', `fonts', and `sizes' lines are mandatory. 3279151497SruOther commands are ignored by `gtroff' but may be used by 3280151497Srupostprocessors to store arbitrary information about the device in the 3281151497Sru`DESC' file. 3282151497Sru 3283151497Sru Here a list of obsolete keywords which are recognized by `groff' but 3284151497Srucompletely ignored: `spare1', `spare2', `biggestfont'. 3285151497Sru 3286104862Sru 3287151497SruFile: groff, Node: Font File Format, Prev: DESC File Format, Up: Font Files 3288104862Sru 3289151497Sru8.2.2 Font File Format 3290151497Sru---------------------- 3291104862Sru 3292151497SruA "font file", also (and probably better) called a "font description 3293151497Srufile", has two sections. The first section is a sequence of lines each 3294151497Srucontaining a sequence of blank delimited words; the first word in the 3295151497Sruline is a key, and subsequent words give a value for that key. 3296104862Sru 3297151497Sru`name F' 3298151497Sru The name of the font is F. 3299104862Sru 3300151497Sru`spacewidth N' 3301151497Sru The normal width of a space is N. 3302104862Sru 3303151497Sru`slant N' 3304151497Sru The glyphs of the font have a slant of N degrees. (Positive means 3305151497Sru forward.) 3306104862Sru 3307151497Sru`ligatures LIG1 LIG2 ... LIGN [0]' 3308151497Sru Glyphs LIG1, LIG2, ..., LIGN are ligatures; possible ligatures are 3309151497Sru `ff', `fi', `fl', `ffi' and `ffl'. For backwards compatibility, 3310151497Sru the list of ligatures may be terminated with a 0. The list of 3311151497Sru ligatures may not extend over more than one line. 3312151497Sru 3313151497Sru`special' 3314151497Sru The font is "special"; this means that when a glyph is requested 3315151497Sru that is not present in the current font, it is searched for in any 3316151497Sru special fonts that are mounted. 3317151497Sru 3318151497Sru Other commands are ignored by `gtroff' but may be used by 3319151497Srupostprocessors to store arbitrary information about the font in the font 3320151497Srufile. 3321151497Sru 3322151497Sru The first section can contain comments which start with the `#' 3323151497Srucharacter and extend to the end of a line. 3324151497Sru 3325151497Sru The second section contains one or two subsections. It must contain 3326151497Srua `charset' subsection and it may also contain a `kernpairs' 3327151497Srusubsection. These subsections can appear in any order. Each 3328151497Srusubsection starts with a word on a line by itself. 3329151497Sru 3330151497Sru The word `charset' starts the character set subsection.(1) (*note 3331151497SruFont File Format-Footnote-1::) The `charset' line is followed by a 3332151497Srusequence of lines. Each line gives information for one glyph. A line 3333151497Srucomprises a number of fields separated by blanks or tabs. The format is 3334151497Sru 3335151497Sru NAME METRICS TYPE CODE [ENTITY-NAME] [`--' COMMENT] 3336151497Sru 3337151497SruNAME identifies the glyph name(2) (*note Font File Format-Footnote-2::): 3338151497SruIf NAME is a single character C then it corresponds to the `gtroff' 3339151497Sruinput character C; if it is of the form `\C' where C is a single 3340151497Srucharacter, then it corresponds to the special character `\[C]'; 3341151497Sruotherwise it corresponds to the special character `\[NAME]'. If it is 3342151497Sruexactly two characters XX it can be entered as `\(XX'. Note that 3343151497Srusingle-letter special characters can't be accessed as `\C'; the only 3344151497Sruexception is `\-' which is identical to `\[-]'. 3345151497Sru 3346151497Sru `gtroff' supports 8-bit input characters; however some utilities 3347151497Sruhave difficulties with eight-bit characters. For this reason, there is 3348151497Srua convention that the entity name `charN' is equivalent to the single 3349151497Sruinput character whose code is N. For example, `char163' would be 3350151497Sruequivalent to the character with code 163 which is the pounds sterling 3351151497Srusign in the ISO Latin-1 character set. You shouldn't use `charN' 3352151497Sruentities in font description files since they are related to input, not 3353151497Sruoutput. Otherwise, you get hard-coded connections between input and 3354151497Sruoutput encoding which prevents use of different (input) character sets. 3355151497Sru 3356151497Sru The name `---' is special and indicates that the glyph is unnamed; 3357151497Srusuch glyphs can only be used by means of the `\N' escape sequence in 3358151497Sru`gtroff'. 3359151497Sru 3360151497Sru The TYPE field gives the glyph type: 3361151497Sru 3362151497Sru`1' 3363151497Sru the glyph has a descender, for example, `p'; 3364151497Sru 3365151497Sru`2' 3366151497Sru the glyph has an ascender, for example, `b'; 3367151497Sru 3368151497Sru`3' 3369151497Sru the glyph has both an ascender and a descender, for example, `('. 3370151497Sru 3371151497Sru The CODE field gives the code which the postprocessor uses to print 3372151497Sruthe glyph. The glyph can also be input to `gtroff' using this code by 3373151497Srumeans of the `\N' escape sequence. CODE can be any integer. If it 3374151497Srustarts with `0' it is interpreted as octal; if it starts with `0x' or 3375151497Sru`0X' it is interpreted as hexadecimal. Note, however, that the `\N' 3376151497Sruescape sequence only accepts a decimal integer. 3377151497Sru 3378151497Sru The ENTITY-NAME field gives an ASCII string identifying the glyph 3379151497Sruwhich the postprocessor uses to print the `gtroff' glyph NAME. This 3380151497Srufield is optional and has been introduced so that the HTML device 3381151497Srudriver can encode its character set. For example, the glyph `\[Po]' is 3382151497Srurepresented as `£' in HTML 4.0. 3383151497Sru 3384151497Sru Anything on the line after the ENTITY-NAME field resp. after `--' 3385151497Sruwill be ignored. 3386151497Sru 3387151497Sru The METRICS field has the form: 3388151497Sru 3389151497Sru WIDTH[`,'HEIGHT[`,'DEPTH[`,'ITALIC-CORRECTION 3390151497Sru [`,'LEFT-ITALIC-CORRECTION[`,'SUBSCRIPT-CORRECTION]]]]] 3391151497Sru 3392151497SruThere must not be any spaces between these subfields (it has been split 3393151497Sruhere into two lines for better legibility only). Missing subfields are 3394151497Sruassumed to be 0. The subfields are all decimal integers. Since there 3395151497Sruis no associated binary format, these values are not required to fit 3396151497Sruinto a variable of type `char' as they are in `ditroff'. The WIDTH 3397151497Srusubfield gives the width of the glyph. The HEIGHT subfield gives the 3398151497Sruheight of the glyph (upwards is positive); if a glyph does not extend 3399151497Sruabove the baseline, it should be given a zero height, rather than a 3400151497Srunegative height. The DEPTH subfield gives the depth of the glyph, that 3401151497Sruis, the distance from the baseline to the lowest point below the 3402151497Srubaseline to which the glyph extends (downwards is positive); if a glyph 3403151497Srudoes not extend below the baseline, it should be given a zero depth, 3404151497Srurather than a negative depth. The ITALIC-CORRECTION subfield gives the 3405151497Sruamount of space that should be added after the glyph when it is 3406151497Sruimmediately to be followed by a glyph from a roman font. The 3407151497SruLEFT-ITALIC-CORRECTION subfield gives the amount of space that should 3408151497Srube added before the glyph when it is immediately to be preceded by a 3409151497Sruglyph from a roman font. The SUBSCRIPT-CORRECTION gives the amount of 3410151497Sruspace that should be added after a glyph before adding a subscript. 3411151497SruThis should be less than the italic correction. 3412151497Sru 3413151497Sru A line in the `charset' section can also have the format 3414151497Sru 3415151497Sru 3416151497Sru NAME " 3417151497Sru 3418151497SruThis indicates that NAME is just another name for the glyph mentioned 3419151497Sruin the preceding line. 3420151497Sru 3421151497Sru The word `kernpairs' starts the kernpairs section. This contains a 3422151497Srusequence of lines of the form: 3423151497Sru 3424151497Sru 3425151497Sru C1 C2 N 3426151497Sru 3427151497SruThis means that when glyph C1 appears next to glyph C2 the space 3428151497Srubetween them should be increased by N. Most entries in the kernpairs 3429151497Srusection have a negative value for N. 3430151497Sru 3431104862Sru 3432151497SruFile: groff, Node: Font File Format-Footnotes, Up: Font File Format 3433104862Sru 3434151497Sru (1) This keyword is misnamed since it starts a list of ordered 3435151497Sruglyphs, not characters. 3436104862Sru 3437151497Sru (2) The distinction between input, characters, and output, glyphs, 3438151497Sruis not clearly separated in the terminology of `groff'; for example, 3439151497Sruthe `char' request should be called `glyph' since it defines an output 3440151497Sruentity. 3441104862Sru 3442151497Sru 3443151497SruFile: groff, Node: Installation, Next: Copying This Manual, Prev: File formats, Up: Top 3444104862Sru 3445151497Sru9 Installation 3446151497Sru************** 3447151497Sru 3448151497Sru 3449151497SruFile: groff, Node: Copying This Manual, Next: Request Index, Prev: Installation, Up: Top 3450151497Sru 3451151497SruAppendix A Copying This Manual 3452151497Sru****************************** 3453151497Sru 3454104862Sru* Menu: 3455104862Sru 3456151497Sru* GNU Free Documentation License:: License for copying this manual. 3457104862Sru 3458104862Sru 3459151497SruFile: groff, Node: GNU Free Documentation License, Up: Copying This Manual 3460104862Sru 3461151497SruA.1 GNU Free Documentation License 3462151497Sru================================== 3463104862Sru 3464151497Sru Version 1.2, November 2002 3465104862Sru 3466151497Sru Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 3467151497Sru 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 3468104862Sru 3469151497Sru Everyone is permitted to copy and distribute verbatim copies 3470151497Sru of this license document, but changing it is not allowed. 3471104862Sru 3472151497Sru 0. PREAMBLE 3473104862Sru 3474151497Sru The purpose of this License is to make a manual, textbook, or other 3475151497Sru functional and useful document "free" in the sense of freedom: to 3476151497Sru assure everyone the effective freedom to copy and redistribute it, 3477151497Sru with or without modifying it, either commercially or 3478151497Sru noncommercially. Secondarily, this License preserves for the 3479151497Sru author and publisher a way to get credit for their work, while not 3480151497Sru being considered responsible for modifications made by others. 3481104862Sru 3482151497Sru This License is a kind of "copyleft", which means that derivative 3483151497Sru works of the document must themselves be free in the same sense. 3484151497Sru It complements the GNU General Public License, which is a copyleft 3485151497Sru license designed for free software. 3486104862Sru 3487151497Sru We have designed this License in order to use it for manuals for 3488151497Sru free software, because free software needs free documentation: a 3489151497Sru free program should come with manuals providing the same freedoms 3490151497Sru that the software does. But this License is not limited to 3491151497Sru software manuals; it can be used for any textual work, regardless 3492151497Sru of subject matter or whether it is published as a printed book. 3493151497Sru We recommend this License principally for works whose purpose is 3494151497Sru instruction or reference. 3495104862Sru 3496151497Sru 1. APPLICABILITY AND DEFINITIONS 3497151497Sru 3498151497Sru This License applies to any manual or other work, in any medium, 3499151497Sru that contains a notice placed by the copyright holder saying it 3500151497Sru can be distributed under the terms of this License. Such a notice 3501151497Sru grants a world-wide, royalty-free license, unlimited in duration, 3502151497Sru to use that work under the conditions stated herein. The 3503151497Sru "Document", below, refers to any such manual or work. Any member 3504151497Sru of the public is a licensee, and is addressed as "you". You 3505151497Sru accept the license if you copy, modify or distribute the work in a 3506151497Sru way requiring permission under copyright law. 3507151497Sru 3508151497Sru A "Modified Version" of the Document means any work containing the 3509151497Sru Document or a portion of it, either copied verbatim, or with 3510151497Sru modifications and/or translated into another language. 3511151497Sru 3512151497Sru A "Secondary Section" is a named appendix or a front-matter section 3513151497Sru of the Document that deals exclusively with the relationship of the 3514151497Sru publishers or authors of the Document to the Document's overall 3515151497Sru subject (or to related matters) and contains nothing that could 3516151497Sru fall directly within that overall subject. (Thus, if the Document 3517151497Sru is in part a textbook of mathematics, a Secondary Section may not 3518151497Sru explain any mathematics.) The relationship could be a matter of 3519151497Sru historical connection with the subject or with related matters, or 3520151497Sru of legal, commercial, philosophical, ethical or political position 3521151497Sru regarding them. 3522151497Sru 3523151497Sru The "Invariant Sections" are certain Secondary Sections whose 3524151497Sru titles are designated, as being those of Invariant Sections, in 3525151497Sru the notice that says that the Document is released under this 3526151497Sru License. If a section does not fit the above definition of 3527151497Sru Secondary then it is not allowed to be designated as Invariant. 3528151497Sru The Document may contain zero Invariant Sections. If the Document 3529151497Sru does not identify any Invariant Sections then there are none. 3530151497Sru 3531151497Sru The "Cover Texts" are certain short passages of text that are 3532151497Sru listed, as Front-Cover Texts or Back-Cover Texts, in the notice 3533151497Sru that says that the Document is released under this License. A 3534151497Sru Front-Cover Text may be at most 5 words, and a Back-Cover Text may 3535151497Sru be at most 25 words. 3536151497Sru 3537151497Sru A "Transparent" copy of the Document means a machine-readable copy, 3538151497Sru represented in a format whose specification is available to the 3539151497Sru general public, that is suitable for revising the document 3540151497Sru straightforwardly with generic text editors or (for images 3541151497Sru composed of pixels) generic paint programs or (for drawings) some 3542151497Sru widely available drawing editor, and that is suitable for input to 3543151497Sru text formatters or for automatic translation to a variety of 3544151497Sru formats suitable for input to text formatters. A copy made in an 3545151497Sru otherwise Transparent file format whose markup, or absence of 3546151497Sru markup, has been arranged to thwart or discourage subsequent 3547151497Sru modification by readers is not Transparent. An image format is 3548151497Sru not Transparent if used for any substantial amount of text. A 3549151497Sru copy that is not "Transparent" is called "Opaque". 3550151497Sru 3551151497Sru Examples of suitable formats for Transparent copies include plain 3552151497Sru ASCII without markup, Texinfo input format, LaTeX input format, 3553151497Sru SGML or XML using a publicly available DTD, and 3554151497Sru standard-conforming simple HTML, PostScript or PDF designed for 3555151497Sru human modification. Examples of transparent image formats include 3556151497Sru PNG, XCF and JPG. Opaque formats include proprietary formats that 3557151497Sru can be read and edited only by proprietary word processors, SGML or 3558151497Sru XML for which the DTD and/or processing tools are not generally 3559151497Sru available, and the machine-generated HTML, PostScript or PDF 3560151497Sru produced by some word processors for output purposes only. 3561151497Sru 3562151497Sru The "Title Page" means, for a printed book, the title page itself, 3563151497Sru plus such following pages as are needed to hold, legibly, the 3564151497Sru material this License requires to appear in the title page. For 3565151497Sru works in formats which do not have any title page as such, "Title 3566151497Sru Page" means the text near the most prominent appearance of the 3567151497Sru work's title, preceding the beginning of the body of the text. 3568151497Sru 3569151497Sru A section "Entitled XYZ" means a named subunit of the Document 3570151497Sru whose title either is precisely XYZ or contains XYZ in parentheses 3571151497Sru following text that translates XYZ in another language. (Here XYZ 3572151497Sru stands for a specific section name mentioned below, such as 3573151497Sru "Acknowledgements", "Dedications", "Endorsements", or "History".) 3574151497Sru To "Preserve the Title" of such a section when you modify the 3575151497Sru Document means that it remains a section "Entitled XYZ" according 3576151497Sru to this definition. 3577151497Sru 3578151497Sru The Document may include Warranty Disclaimers next to the notice 3579151497Sru which states that this License applies to the Document. These 3580151497Sru Warranty Disclaimers are considered to be included by reference in 3581151497Sru this License, but only as regards disclaiming warranties: any other 3582151497Sru implication that these Warranty Disclaimers may have is void and 3583151497Sru has no effect on the meaning of this License. 3584151497Sru 3585151497Sru 2. VERBATIM COPYING 3586151497Sru 3587151497Sru You may copy and distribute the Document in any medium, either 3588151497Sru commercially or noncommercially, provided that this License, the 3589151497Sru copyright notices, and the license notice saying this License 3590151497Sru applies to the Document are reproduced in all copies, and that you 3591151497Sru add no other conditions whatsoever to those of this License. You 3592151497Sru may not use technical measures to obstruct or control the reading 3593151497Sru or further copying of the copies you make or distribute. However, 3594151497Sru you may accept compensation in exchange for copies. If you 3595151497Sru distribute a large enough number of copies you must also follow 3596151497Sru the conditions in section 3. 3597151497Sru 3598151497Sru You may also lend copies, under the same conditions stated above, 3599151497Sru and you may publicly display copies. 3600151497Sru 3601151497Sru 3. COPYING IN QUANTITY 3602151497Sru 3603151497Sru If you publish printed copies (or copies in media that commonly 3604151497Sru have printed covers) of the Document, numbering more than 100, and 3605151497Sru the Document's license notice requires Cover Texts, you must 3606151497Sru enclose the copies in covers that carry, clearly and legibly, all 3607151497Sru these Cover Texts: Front-Cover Texts on the front cover, and 3608151497Sru Back-Cover Texts on the back cover. Both covers must also clearly 3609151497Sru and legibly identify you as the publisher of these copies. The 3610151497Sru front cover must present the full title with all words of the 3611151497Sru title equally prominent and visible. You may add other material 3612151497Sru on the covers in addition. Copying with changes limited to the 3613151497Sru covers, as long as they preserve the title of the Document and 3614151497Sru satisfy these conditions, can be treated as verbatim copying in 3615151497Sru other respects. 3616151497Sru 3617151497Sru If the required texts for either cover are too voluminous to fit 3618151497Sru legibly, you should put the first ones listed (as many as fit 3619151497Sru reasonably) on the actual cover, and continue the rest onto 3620151497Sru adjacent pages. 3621151497Sru 3622151497Sru If you publish or distribute Opaque copies of the Document 3623151497Sru numbering more than 100, you must either include a 3624151497Sru machine-readable Transparent copy along with each Opaque copy, or 3625151497Sru state in or with each Opaque copy a computer-network location from 3626151497Sru which the general network-using public has access to download 3627151497Sru using public-standard network protocols a complete Transparent 3628151497Sru copy of the Document, free of added material. If you use the 3629151497Sru latter option, you must take reasonably prudent steps, when you 3630151497Sru begin distribution of Opaque copies in quantity, to ensure that 3631151497Sru this Transparent copy will remain thus accessible at the stated 3632151497Sru location until at least one year after the last time you 3633151497Sru distribute an Opaque copy (directly or through your agents or 3634151497Sru retailers) of that edition to the public. 3635151497Sru 3636151497Sru It is requested, but not required, that you contact the authors of 3637151497Sru the Document well before redistributing any large number of 3638151497Sru copies, to give them a chance to provide you with an updated 3639151497Sru version of the Document. 3640151497Sru 3641151497Sru 4. MODIFICATIONS 3642151497Sru 3643151497Sru You may copy and distribute a Modified Version of the Document 3644151497Sru under the conditions of sections 2 and 3 above, provided that you 3645151497Sru release the Modified Version under precisely this License, with 3646151497Sru the Modified Version filling the role of the Document, thus 3647151497Sru licensing distribution and modification of the Modified Version to 3648151497Sru whoever possesses a copy of it. In addition, you must do these 3649151497Sru things in the Modified Version: 3650151497Sru 3651151497Sru A. Use in the Title Page (and on the covers, if any) a title 3652151497Sru distinct from that of the Document, and from those of 3653151497Sru previous versions (which should, if there were any, be listed 3654151497Sru in the History section of the Document). You may use the 3655151497Sru same title as a previous version if the original publisher of 3656151497Sru that version gives permission. 3657151497Sru 3658151497Sru B. List on the Title Page, as authors, one or more persons or 3659151497Sru entities responsible for authorship of the modifications in 3660151497Sru the Modified Version, together with at least five of the 3661151497Sru principal authors of the Document (all of its principal 3662151497Sru authors, if it has fewer than five), unless they release you 3663151497Sru from this requirement. 3664151497Sru 3665151497Sru C. State on the Title page the name of the publisher of the 3666151497Sru Modified Version, as the publisher. 3667151497Sru 3668151497Sru D. Preserve all the copyright notices of the Document. 3669151497Sru 3670151497Sru E. Add an appropriate copyright notice for your modifications 3671151497Sru adjacent to the other copyright notices. 3672151497Sru 3673151497Sru F. Include, immediately after the copyright notices, a license 3674151497Sru notice giving the public permission to use the Modified 3675151497Sru Version under the terms of this License, in the form shown in 3676151497Sru the Addendum below. 3677151497Sru 3678151497Sru G. Preserve in that license notice the full lists of Invariant 3679151497Sru Sections and required Cover Texts given in the Document's 3680151497Sru license notice. 3681151497Sru 3682151497Sru H. Include an unaltered copy of this License. 3683151497Sru 3684151497Sru I. Preserve the section Entitled "History", Preserve its Title, 3685151497Sru and add to it an item stating at least the title, year, new 3686151497Sru authors, and publisher of the Modified Version as given on 3687151497Sru the Title Page. If there is no section Entitled "History" in 3688151497Sru the Document, create one stating the title, year, authors, 3689151497Sru and publisher of the Document as given on its Title Page, 3690151497Sru then add an item describing the Modified Version as stated in 3691151497Sru the previous sentence. 3692151497Sru 3693151497Sru J. Preserve the network location, if any, given in the Document 3694151497Sru for public access to a Transparent copy of the Document, and 3695151497Sru likewise the network locations given in the Document for 3696151497Sru previous versions it was based on. These may be placed in 3697151497Sru the "History" section. You may omit a network location for a 3698151497Sru work that was published at least four years before the 3699151497Sru Document itself, or if the original publisher of the version 3700151497Sru it refers to gives permission. 3701151497Sru 3702151497Sru K. For any section Entitled "Acknowledgements" or "Dedications", 3703151497Sru Preserve the Title of the section, and preserve in the 3704151497Sru section all the substance and tone of each of the contributor 3705151497Sru acknowledgements and/or dedications given therein. 3706151497Sru 3707151497Sru L. Preserve all the Invariant Sections of the Document, 3708151497Sru unaltered in their text and in their titles. Section numbers 3709151497Sru or the equivalent are not considered part of the section 3710151497Sru titles. 3711151497Sru 3712151497Sru M. Delete any section Entitled "Endorsements". Such a section 3713151497Sru may not be included in the Modified Version. 3714151497Sru 3715151497Sru N. Do not retitle any existing section to be Entitled 3716151497Sru "Endorsements" or to conflict in title with any Invariant 3717151497Sru Section. 3718151497Sru 3719151497Sru O. Preserve any Warranty Disclaimers. 3720151497Sru 3721151497Sru If the Modified Version includes new front-matter sections or 3722151497Sru appendices that qualify as Secondary Sections and contain no 3723151497Sru material copied from the Document, you may at your option 3724151497Sru designate some or all of these sections as invariant. To do this, 3725151497Sru add their titles to the list of Invariant Sections in the Modified 3726151497Sru Version's license notice. These titles must be distinct from any 3727151497Sru other section titles. 3728151497Sru 3729151497Sru You may add a section Entitled "Endorsements", provided it contains 3730151497Sru nothing but endorsements of your Modified Version by various 3731151497Sru parties--for example, statements of peer review or that the text 3732151497Sru has been approved by an organization as the authoritative 3733151497Sru definition of a standard. 3734151497Sru 3735151497Sru You may add a passage of up to five words as a Front-Cover Text, 3736151497Sru and a passage of up to 25 words as a Back-Cover Text, to the end 3737151497Sru of the list of Cover Texts in the Modified Version. Only one 3738151497Sru passage of Front-Cover Text and one of Back-Cover Text may be 3739151497Sru added by (or through arrangements made by) any one entity. If the 3740151497Sru Document already includes a cover text for the same cover, 3741151497Sru previously added by you or by arrangement made by the same entity 3742151497Sru you are acting on behalf of, you may not add another; but you may 3743151497Sru replace the old one, on explicit permission from the previous 3744151497Sru publisher that added the old one. 3745151497Sru 3746151497Sru The author(s) and publisher(s) of the Document do not by this 3747151497Sru License give permission to use their names for publicity for or to 3748151497Sru assert or imply endorsement of any Modified Version. 3749151497Sru 3750151497Sru 5. COMBINING DOCUMENTS 3751151497Sru 3752151497Sru You may combine the Document with other documents released under 3753151497Sru this License, under the terms defined in section 4 above for 3754151497Sru modified versions, provided that you include in the combination 3755151497Sru all of the Invariant Sections of all of the original documents, 3756151497Sru unmodified, and list them all as Invariant Sections of your 3757151497Sru combined work in its license notice, and that you preserve all 3758151497Sru their Warranty Disclaimers. 3759151497Sru 3760151497Sru The combined work need only contain one copy of this License, and 3761151497Sru multiple identical Invariant Sections may be replaced with a single 3762151497Sru copy. If there are multiple Invariant Sections with the same name 3763151497Sru but different contents, make the title of each such section unique 3764151497Sru by adding at the end of it, in parentheses, the name of the 3765151497Sru original author or publisher of that section if known, or else a 3766151497Sru unique number. Make the same adjustment to the section titles in 3767151497Sru the list of Invariant Sections in the license notice of the 3768151497Sru combined work. 3769151497Sru 3770151497Sru In the combination, you must combine any sections Entitled 3771151497Sru "History" in the various original documents, forming one section 3772151497Sru Entitled "History"; likewise combine any sections Entitled 3773151497Sru "Acknowledgements", and any sections Entitled "Dedications". You 3774151497Sru must delete all sections Entitled "Endorsements." 3775151497Sru 3776151497Sru 6. COLLECTIONS OF DOCUMENTS 3777151497Sru 3778151497Sru You may make a collection consisting of the Document and other 3779151497Sru documents released under this License, and replace the individual 3780151497Sru copies of this License in the various documents with a single copy 3781151497Sru that is included in the collection, provided that you follow the 3782151497Sru rules of this License for verbatim copying of each of the 3783151497Sru documents in all other respects. 3784151497Sru 3785151497Sru You may extract a single document from such a collection, and 3786151497Sru distribute it individually under this License, provided you insert 3787151497Sru a copy of this License into the extracted document, and follow 3788151497Sru this License in all other respects regarding verbatim copying of 3789151497Sru that document. 3790151497Sru 3791151497Sru 7. AGGREGATION WITH INDEPENDENT WORKS 3792151497Sru 3793151497Sru A compilation of the Document or its derivatives with other 3794151497Sru separate and independent documents or works, in or on a volume of 3795151497Sru a storage or distribution medium, is called an "aggregate" if the 3796151497Sru copyright resulting from the compilation is not used to limit the 3797151497Sru legal rights of the compilation's users beyond what the individual 3798151497Sru works permit. When the Document is included in an aggregate, this 3799151497Sru License does not apply to the other works in the aggregate which 3800151497Sru are not themselves derivative works of the Document. 3801151497Sru 3802151497Sru If the Cover Text requirement of section 3 is applicable to these 3803151497Sru copies of the Document, then if the Document is less than one half 3804151497Sru of the entire aggregate, the Document's Cover Texts may be placed 3805151497Sru on covers that bracket the Document within the aggregate, or the 3806151497Sru electronic equivalent of covers if the Document is in electronic 3807151497Sru form. Otherwise they must appear on printed covers that bracket 3808151497Sru the whole aggregate. 3809151497Sru 3810151497Sru 8. TRANSLATION 3811151497Sru 3812151497Sru Translation is considered a kind of modification, so you may 3813151497Sru distribute translations of the Document under the terms of section 3814151497Sru 4. Replacing Invariant Sections with translations requires special 3815151497Sru permission from their copyright holders, but you may include 3816151497Sru translations of some or all Invariant Sections in addition to the 3817151497Sru original versions of these Invariant Sections. You may include a 3818151497Sru translation of this License, and all the license notices in the 3819151497Sru Document, and any Warranty Disclaimers, provided that you also 3820151497Sru include the original English version of this License and the 3821151497Sru original versions of those notices and disclaimers. In case of a 3822151497Sru disagreement between the translation and the original version of 3823151497Sru this License or a notice or disclaimer, the original version will 3824151497Sru prevail. 3825151497Sru 3826151497Sru If a section in the Document is Entitled "Acknowledgements", 3827151497Sru "Dedications", or "History", the requirement (section 4) to 3828151497Sru Preserve its Title (section 1) will typically require changing the 3829151497Sru actual title. 3830151497Sru 3831151497Sru 9. TERMINATION 3832151497Sru 3833151497Sru You may not copy, modify, sublicense, or distribute the Document 3834151497Sru except as expressly provided for under this License. Any other 3835151497Sru attempt to copy, modify, sublicense or distribute the Document is 3836151497Sru void, and will automatically terminate your rights under this 3837151497Sru License. However, parties who have received copies, or rights, 3838151497Sru from you under this License will not have their licenses 3839151497Sru terminated so long as such parties remain in full compliance. 3840151497Sru 3841151497Sru 10. FUTURE REVISIONS OF THIS LICENSE 3842151497Sru 3843151497Sru The Free Software Foundation may publish new, revised versions of 3844151497Sru the GNU Free Documentation License from time to time. Such new 3845151497Sru versions will be similar in spirit to the present version, but may 3846151497Sru differ in detail to address new problems or concerns. See 3847151497Sru `http://www.gnu.org/copyleft/'. 3848151497Sru 3849151497Sru Each version of the License is given a distinguishing version 3850151497Sru number. If the Document specifies that a particular numbered 3851151497Sru version of this License "or any later version" applies to it, you 3852151497Sru have the option of following the terms and conditions either of 3853151497Sru that specified version or of any later version that has been 3854151497Sru published (not as a draft) by the Free Software Foundation. If 3855151497Sru the Document does not specify a version number of this License, 3856151497Sru you may choose any version ever published (not as a draft) by the 3857151497Sru Free Software Foundation. 3858151497Sru 3859151497SruA.1.1 ADDENDUM: How to use this License for your documents 3860151497Sru---------------------------------------------------------- 3861151497Sru 3862151497SruTo use this License in a document you have written, include a copy of 3863151497Sruthe License in the document and put the following copyright and license 3864151497Srunotices just after the title page: 3865151497Sru 3866151497Sru Copyright (C) YEAR YOUR NAME. 3867151497Sru Permission is granted to copy, distribute and/or modify this document 3868151497Sru under the terms of the GNU Free Documentation License, Version 1.2 3869151497Sru or any later version published by the Free Software Foundation; 3870151497Sru with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 3871151497Sru Texts. A copy of the license is included in the section entitled ``GNU 3872151497Sru Free Documentation License''. 3873151497Sru 3874151497Sru If you have Invariant Sections, Front-Cover Texts and Back-Cover 3875151497SruTexts, replace the "with...Texts." line with this: 3876151497Sru 3877151497Sru with the Invariant Sections being LIST THEIR TITLES, with 3878151497Sru the Front-Cover Texts being LIST, and with the Back-Cover Texts 3879151497Sru being LIST. 3880151497Sru 3881151497Sru If you have Invariant Sections without Cover Texts, or some other 3882151497Srucombination of the three, merge those two alternatives to suit the 3883151497Srusituation. 3884151497Sru 3885151497Sru If your document contains nontrivial examples of program code, we 3886151497Srurecommend releasing these examples in parallel under your choice of 3887151497Srufree software license, such as the GNU General Public License, to 3888151497Srupermit their use in free software. 3889151497Sru 3890104862Sru 3891151497SruFile: groff, Node: Request Index, Next: Escape Index, Prev: Copying This Manual, Up: Top 3892104862Sru 3893151497SruAppendix B Request Index 3894151497Sru************************ 3895104862Sru 3896151497SruRequests appear without the leading control character (normally either 3897151497Sru`.' or `''). 3898104862Sru 3899151497Sru[index] 3900151497Sru* Menu: 3901151497Sru 3902151497Sru* ab: Debugging. (line 40) 3903151497Sru* ad: Manipulating Filling and Adjusting. 3904151497Sru (line 52) 3905151497Sru* af: Assigning Formats. (line 13) 3906151497Sru* aln: Setting Registers. (line 79) 3907151497Sru* als: Strings. (line 224) 3908151497Sru* am: Writing Macros. (line 107) 3909151497Sru* am1: Writing Macros. (line 108) 3910151497Sru* ami: Writing Macros. (line 109) 3911151497Sru* ami1: Writing Macros. (line 110) 3912151497Sru* as: Strings. (line 170) 3913151497Sru* as1: Strings. (line 171) 3914151497Sru* asciify: Diversions. (line 195) 3915151497Sru* backtrace: Debugging. (line 94) 3916151497Sru* bd: Artificial Fonts. (line 96) 3917151497Sru* blm: Blank Line Traps. (line 7) 3918151497Sru* box: Diversions. (line 25) 3919151497Sru* boxa: Diversions. (line 26) 3920151497Sru* bp: Page Control. (line 7) 3921151497Sru* br: Manipulating Filling and Adjusting. 3922151497Sru (line 12) 3923151497Sru* break: while. (line 73) 3924151497Sru* brp: Manipulating Filling and Adjusting. 3925151497Sru (line 112) 3926151497Sru* c2: Character Translations. 3927151497Sru (line 16) 3928151497Sru* cc: Character Translations. 3929151497Sru (line 10) 3930151497Sru* ce: Manipulating Filling and Adjusting. 3931151497Sru (line 189) 3932151497Sru* cf: I/O. (line 49) 3933151497Sru* cflags: Using Symbols. (line 241) 3934151497Sru* ch: Page Location Traps. (line 106) 3935151497Sru* char: Using Symbols. (line 281) 3936151497Sru* chop: Strings. (line 231) 3937151497Sru* close: I/O. (line 230) 3938151497Sru* color: Colors. (line 7) 3939151497Sru* composite: Using Symbols. (line 197) 3940151497Sru* continue: while. (line 77) 3941151497Sru* cp: Implementation Differences. 3942151497Sru (line 23) 3943151497Sru* cs: Artificial Fonts. (line 127) 3944151497Sru* cu: Artificial Fonts. (line 87) 3945151497Sru* da: Diversions. (line 18) 3946151497Sru* de: Writing Macros. (line 10) 3947151497Sru* de1: Writing Macros. (line 11) 3948151497Sru* defcolor: Colors. (line 21) 3949151497Sru* dei: Writing Macros. (line 12) 3950151497Sru* dei1: Writing Macros. (line 13) 3951151497Sru* di: Diversions. (line 17) 3952151497Sru* do: Implementation Differences. 3953151497Sru (line 24) 3954151497Sru* ds: Strings. (line 11) 3955151497Sru* ds1: Strings. (line 12) 3956151497Sru* dt: Diversion Traps. (line 7) 3957151497Sru* ec: Character Translations. 3958151497Sru (line 47) 3959151497Sru* ecr: Character Translations. 3960151497Sru (line 59) 3961151497Sru* ecs: Character Translations. 3962151497Sru (line 58) 3963151497Sru* el: if-else. (line 28) 3964151497Sru* em: End-of-input Traps. (line 7) 3965151497Sru* eo: Character Translations. 3966151497Sru (line 22) 3967151497Sru* ev: Environments. (line 38) 3968151497Sru* evc: Environments. (line 72) 3969151497Sru* ex: Debugging. (line 45) 3970151497Sru* fam: Font Families. (line 19) 3971151497Sru* fc: Fields. (line 18) 3972151497Sru* fchar: Using Symbols. (line 282) 3973151497Sru* fcolor: Colors. (line 85) 3974151497Sru* fi: Manipulating Filling and Adjusting. 3975151497Sru (line 30) 3976151497Sru* fl: Debugging. (line 85) 3977151497Sru* fp: Font Positions. (line 11) 3978151497Sru* fschar: Using Symbols. (line 283) 3979151497Sru* fspecial: Special Fonts. (line 18) 3980151497Sru* ft <1>: Font Positions. (line 58) 3981151497Sru* ft: Changing Fonts. (line 7) 3982151497Sru* ftr: Changing Fonts. (line 53) 3983151497Sru* gcolor: Colors. (line 51) 3984151497Sru* hc: Manipulating Hyphenation. 3985151497Sru (line 105) 3986151497Sru* hcode: Manipulating Hyphenation. 3987151497Sru (line 174) 3988151497Sru* hla: Manipulating Hyphenation. 3989151497Sru (line 253) 3990151497Sru* hlm: Manipulating Hyphenation. 3991151497Sru (line 45) 3992151497Sru* hpf: Manipulating Hyphenation. 3993151497Sru (line 114) 3994151497Sru* hpfa: Manipulating Hyphenation. 3995151497Sru (line 115) 3996151497Sru* hpfcode: Manipulating Hyphenation. 3997151497Sru (line 116) 3998151497Sru* hw: Manipulating Hyphenation. 3999151497Sru (line 61) 4000151497Sru* hy: Manipulating Hyphenation. 4001151497Sru (line 9) 4002151497Sru* hym: Manipulating Hyphenation. 4003151497Sru (line 209) 4004151497Sru* hys: Manipulating Hyphenation. 4005151497Sru (line 224) 4006151497Sru* ie: if-else. (line 27) 4007151497Sru* if: if-else. (line 10) 4008151497Sru* ig: Comments. (line 67) 4009151497Sru* in: Line Layout. (line 91) 4010151497Sru* it: Input Line Traps. (line 7) 4011151497Sru* itc: Input Line Traps. (line 8) 4012151497Sru* kern: Ligatures and Kerning. 4013151497Sru (line 41) 4014151497Sru* lc: Leaders. (line 23) 4015151497Sru* length: Strings. (line 204) 4016151497Sru* lf: Debugging. (line 10) 4017151497Sru* lg: Ligatures and Kerning. 4018151497Sru (line 23) 4019151497Sru* linetabs: Tabs and Fields. (line 147) 4020151497Sru* ll: Line Layout. (line 145) 4021151497Sru* ls: Manipulating Spacing. 4022151497Sru (line 51) 4023151497Sru* lt: Page Layout. (line 60) 4024151497Sru* mc: Miscellaneous. (line 76) 4025151497Sru* mk: Page Motions. (line 10) 4026151497Sru* mso: I/O. (line 41) 4027151497Sru* na: Manipulating Filling and Adjusting. 4028151497Sru (line 104) 4029151497Sru* ne: Page Control. (line 34) 4030151497Sru* nf: Manipulating Filling and Adjusting. 4031151497Sru (line 41) 4032151497Sru* nh: Manipulating Hyphenation. 4033151497Sru (line 37) 4034151497Sru* nm: Miscellaneous. (line 10) 4035151497Sru* nn: Miscellaneous. (line 72) 4036151497Sru* nop: if-else. (line 24) 4037151497Sru* nr <1>: Auto-increment. (line 11) 4038151497Sru* nr: Setting Registers. (line 9) 4039151497Sru* nroff: Troff and Nroff Mode. 4040151497Sru (line 32) 4041151497Sru* ns: Manipulating Spacing. 4042151497Sru (line 113) 4043151497Sru* nx: I/O. (line 74) 4044151497Sru* open: I/O. (line 198) 4045151497Sru* opena: I/O. (line 199) 4046151497Sru* os: Page Control. (line 55) 4047151497Sru* output: Diversions. (line 180) 4048151497Sru* pc: Page Layout. (line 89) 4049151497Sru* pi: I/O. (line 138) 4050151497Sru* pl: Page Layout. (line 10) 4051151497Sru* pm: Debugging. (line 64) 4052151497Sru* pn: Page Layout. (line 77) 4053151497Sru* pnr: Debugging. (line 75) 4054151497Sru* po: Line Layout. (line 61) 4055151497Sru* ps: Changing Type Sizes. (line 7) 4056151497Sru* psbb: Miscellaneous. (line 141) 4057151497Sru* pso: I/O. (line 30) 4058151497Sru* ptr: Debugging. (line 79) 4059151497Sru* pvs: Changing Type Sizes. (line 133) 4060151497Sru* rchar: Using Symbols. (line 340) 4061151497Sru* rd: I/O. (line 79) 4062151497Sru* return: Writing Macros. (line 143) 4063151497Sru* rfschar: Using Symbols. (line 341) 4064151497Sru* rj: Manipulating Filling and Adjusting. 4065151497Sru (line 238) 4066151497Sru* rm: Strings. (line 219) 4067151497Sru* rn: Strings. (line 216) 4068151497Sru* rnn: Setting Registers. (line 75) 4069151497Sru* rr: Setting Registers. (line 71) 4070151497Sru* rs: Manipulating Spacing. 4071151497Sru (line 114) 4072151497Sru* rt: Page Motions. (line 11) 4073151497Sru* schar: Using Symbols. (line 284) 4074151497Sru* shc: Manipulating Hyphenation. 4075151497Sru (line 240) 4076151497Sru* shift: Parameters. (line 30) 4077151497Sru* sizes: Changing Type Sizes. (line 69) 4078151497Sru* so: I/O. (line 9) 4079151497Sru* sp: Manipulating Spacing. 4080151497Sru (line 7) 4081151497Sru* special: Special Fonts. (line 17) 4082151497Sru* spreadwarn: Debugging. (line 131) 4083151497Sru* ss: Manipulating Filling and Adjusting. 4084151497Sru (line 134) 4085151497Sru* sty: Font Families. (line 61) 4086151497Sru* substring: Strings. (line 188) 4087151497Sru* sv: Page Control. (line 54) 4088151497Sru* sy: I/O. (line 160) 4089151497Sru* ta: Tabs and Fields. (line 14) 4090151497Sru* tc: Tabs and Fields. (line 139) 4091151497Sru* ti: Line Layout. (line 117) 4092151497Sru* tkf: Ligatures and Kerning. 4093151497Sru (line 60) 4094151497Sru* tl: Page Layout. (line 35) 4095151497Sru* tm: Debugging. (line 25) 4096151497Sru* tm1: Debugging. (line 26) 4097151497Sru* tmc: Debugging. (line 27) 4098151497Sru* tr: Character Translations. 4099151497Sru (line 153) 4100151497Sru* trf: I/O. (line 48) 4101151497Sru* trin: Character Translations. 4102151497Sru (line 154) 4103151497Sru* trnt: Character Translations. 4104151497Sru (line 245) 4105151497Sru* troff: Troff and Nroff Mode. 4106151497Sru (line 24) 4107151497Sru* uf: Artificial Fonts. (line 91) 4108151497Sru* ul: Artificial Fonts. (line 65) 4109151497Sru* unformat: Diversions. (line 215) 4110151497Sru* vpt: Page Location Traps. (line 17) 4111151497Sru* vs: Changing Type Sizes. (line 84) 4112151497Sru* warn: Debugging. (line 154) 4113151497Sru* warnscale: Debugging. (line 127) 4114151497Sru* wh: Page Location Traps. (line 29) 4115151497Sru* while: while. (line 10) 4116151497Sru* write: I/O. (line 210) 4117151497Sru* writec: I/O. (line 211) 4118151497Sru* writem: I/O. (line 221) 4119151497Sru 4120104862Sru 4121151497SruFile: groff, Node: Escape Index, Next: Operator Index, Prev: Request Index, Up: Top 4122104862Sru 4123151497SruAppendix C Escape Index 4124151497Sru*********************** 4125104862Sru 4126151497SruAny escape sequence `\X' with X not in the list below emits a warning, 4127151497Sruprinting glyph X. 4128104862Sru 4129151497Sru[index] 4130151497Sru* Menu: 4131104862Sru 4132151497Sru* \: Using Symbols. (line 139) 4133151497Sru* \!: Diversions. (line 133) 4134151497Sru* \": Comments. (line 10) 4135151497Sru* \#: Comments. (line 50) 4136151497Sru* \$: Parameters. (line 19) 4137151497Sru* \$*: Parameters. (line 38) 4138151497Sru* \$0: Parameters. (line 48) 4139151497Sru* \$@: Parameters. (line 39) 4140151497Sru* \%: Manipulating Hyphenation. 4141151497Sru (line 84) 4142151497Sru* \&: Ligatures and Kerning. 4143151497Sru (line 102) 4144151497Sru* \': Using Symbols. (line 229) 4145151497Sru* \): Ligatures and Kerning. 4146151497Sru (line 131) 4147151497Sru* \*: Strings. (line 13) 4148151497Sru* \,: Ligatures and Kerning. 4149151497Sru (line 92) 4150151497Sru* \-: Using Symbols. (line 238) 4151151497Sru* \.: Character Translations. 4152151497Sru (line 126) 4153151497Sru* \/: Ligatures and Kerning. 4154151497Sru (line 80) 4155151497Sru* \0: Page Motions. (line 139) 4156151497Sru* \<colon>: Manipulating Hyphenation. 4157151497Sru (line 85) 4158151497Sru* \<RET>: Line Control. (line 43) 4159151497Sru* \<SP>: Page Motions. (line 123) 4160151497Sru* \?: Diversions. (line 134) 4161151497Sru* \\: Character Translations. 4162151497Sru (line 68) 4163151497Sru* \^: Page Motions. (line 135) 4164151497Sru* \`: Using Symbols. (line 234) 4165151497Sru* \a: Leaders. (line 18) 4166151497Sru* \A: Identifiers. (line 55) 4167151497Sru* \b: Drawing Requests. (line 223) 4168151497Sru* \B: Expressions. (line 65) 4169151497Sru* \C: Using Symbols. (line 191) 4170151497Sru* \c: Line Control. (line 44) 4171151497Sru* \D: Drawing Requests. (line 71) 4172151497Sru* \d: Page Motions. (line 109) 4173151497Sru* \E: Character Translations. 4174151497Sru (line 70) 4175151497Sru* \e: Character Translations. 4176151497Sru (line 69) 4177151497Sru* \f: Font Positions. (line 59) 4178151497Sru* \F: Font Families. (line 21) 4179151497Sru* \f: Changing Fonts. (line 8) 4180151497Sru* \g: Assigning Formats. (line 75) 4181151497Sru* \h: Page Motions. (line 112) 4182151497Sru* \H: Artificial Fonts. (line 13) 4183151497Sru* \k: Page Motions. (line 203) 4184151497Sru* \L: Drawing Requests. (line 50) 4185151497Sru* \l: Drawing Requests. (line 16) 4186151497Sru* \M: Colors. (line 86) 4187151497Sru* \m: Colors. (line 52) 4188151497Sru* \N: Using Symbols. (line 207) 4189151497Sru* \n <1>: Auto-increment. (line 19) 4190151497Sru* \n: Interpolating Registers. 4191151497Sru (line 9) 4192151497Sru* \O: Suppressing output. (line 7) 4193151497Sru* \o: Page Motions. (line 218) 4194151497Sru* \p: Manipulating Filling and Adjusting. 4195151497Sru (line 113) 4196151497Sru* \r: Page Motions. (line 103) 4197151497Sru* \R: Setting Registers. (line 10) 4198151497Sru* \s: Changing Type Sizes. (line 10) 4199151497Sru* \S: Artificial Fonts. (line 45) 4200151497Sru* \t: Tabs and Fields. (line 10) 4201151497Sru* \u: Page Motions. (line 106) 4202151497Sru* \V: I/O. (line 248) 4203151497Sru* \v: Page Motions. (line 87) 4204151497Sru* \w: Page Motions. (line 147) 4205151497Sru* \X: Postprocessor Access. 4206151497Sru (line 11) 4207151497Sru* \x: Manipulating Spacing. 4208151497Sru (line 71) 4209151497Sru* \Y: Postprocessor Access. 4210151497Sru (line 25) 4211151497Sru* \Z: Page Motions. (line 226) 4212151497Sru* \z: Page Motions. (line 222) 4213151497Sru* \{: if-else. (line 38) 4214151497Sru* \|: Page Motions. (line 131) 4215151497Sru* \}: if-else. (line 38) 4216151497Sru* \~: Page Motions. (line 127) 4217104862Sru 4218151497Sru 4219151497SruFile: groff, Node: Operator Index, Next: Register Index, Prev: Escape Index, Up: Top 4220104862Sru 4221151497SruAppendix D Operator Index 4222151497Sru************************* 4223151497Sru 4224151497Sru[index] 4225151497Sru* Menu: 4226151497Sru 4227151497Sru* !: Expressions. (line 21) 4228151497Sru* %: Expressions. (line 8) 4229151497Sru* &: Expressions. (line 19) 4230151497Sru* (: Expressions. (line 41) 4231151497Sru* ): Expressions. (line 41) 4232151497Sru* *: Expressions. (line 8) 4233151497Sru* +: Expressions. (line 8) 4234151497Sru* -: Expressions. (line 8) 4235151497Sru* /: Expressions. (line 8) 4236151497Sru* <: Expressions. (line 15) 4237151497Sru* <=: Expressions. (line 15) 4238151497Sru* <?: Expressions. (line 26) 4239151497Sru* <colon>: Expressions. (line 19) 4240151497Sru* =: Expressions. (line 15) 4241151497Sru* ==: Expressions. (line 15) 4242151497Sru* >: Expressions. (line 15) 4243151497Sru* >=: Expressions. (line 15) 4244151497Sru* >?: Expressions. (line 26) 4245151497Sru 4246104862Sru 4247151497SruFile: groff, Node: Register Index, Next: Macro Index, Prev: Operator Index, Up: Top 4248104862Sru 4249151497SruAppendix E Register Index 4250151497Sru************************* 4251104862Sru 4252151497SruThe macro package or program a specific register belongs to is appended 4253151497Sruin brackets. 4254104862Sru 4255151497Sru A register name `x' consisting of exactly one character can be 4256151497Sruaccessed as `\nx'. A register name `xx' consisting of exactly two 4257151497Srucharacters can be accessed as `\n(xx'. Register names `xxx' of any 4258151497Srulength can be accessed as `\n[xxx]'. 4259104862Sru 4260151497Sru[index] 4261151497Sru* Menu: 4262104862Sru 4263151497Sru* $$: Built-in Registers. (line 96) 4264151497Sru* % <1>: Page Control. (line 10) 4265151497Sru* %: Page Layout. (line 89) 4266151497Sru* .$: Parameters. (line 10) 4267151497Sru* .a: Manipulating Spacing. 4268151497Sru (line 72) 4269151497Sru* .A: Built-in Registers. (line 103) 4270151497Sru* .b: Artificial Fonts. (line 98) 4271151497Sru* .C: Implementation Differences. 4272151497Sru (line 25) 4273151497Sru* .c: Built-in Registers. (line 73) 4274151497Sru* .cdp: Environments. (line 96) 4275151497Sru* .ce: Manipulating Filling and Adjusting. 4276151497Sru (line 190) 4277151497Sru* .cht: Environments. (line 95) 4278151497Sru* .color: Colors. (line 8) 4279151497Sru* .csk: Environments. (line 97) 4280151497Sru* .d: Diversions. (line 62) 4281151497Sru* .ev: Environments. (line 39) 4282151497Sru* .f: Font Positions. (line 12) 4283151497Sru* .F: Built-in Registers. (line 12) 4284151497Sru* .fam: Font Families. (line 20) 4285151497Sru* .fn: Font Families. (line 24) 4286151497Sru* .fp: Font Positions. (line 13) 4287151497Sru* .g: Built-in Registers. (line 99) 4288151497Sru* .h: Diversions. (line 69) 4289151497Sru* .H: Built-in Registers. (line 15) 4290151497Sru* .height: Artificial Fonts. (line 16) 4291151497Sru* .hla: Manipulating Hyphenation. 4292151497Sru (line 254) 4293151497Sru* .hlc: Manipulating Hyphenation. 4294151497Sru (line 47) 4295151497Sru* .hlm: Manipulating Hyphenation. 4296151497Sru (line 46) 4297151497Sru* .hy: Manipulating Hyphenation. 4298151497Sru (line 10) 4299151497Sru* .hym: Manipulating Hyphenation. 4300151497Sru (line 210) 4301151497Sru* .hys: Manipulating Hyphenation. 4302151497Sru (line 225) 4303151497Sru* .i: Line Layout. (line 94) 4304151497Sru* .in: Line Layout. (line 120) 4305151497Sru* .int: Line Control. (line 45) 4306151497Sru* .j: Manipulating Filling and Adjusting. 4307151497Sru (line 53) 4308151497Sru* .k: Page Motions. (line 214) 4309151497Sru* .kern: Ligatures and Kerning. 4310151497Sru (line 42) 4311151497Sru* .l: Line Layout. (line 148) 4312151497Sru* .L: Manipulating Spacing. 4313151497Sru (line 52) 4314151497Sru* .lg: Ligatures and Kerning. 4315151497Sru (line 24) 4316151497Sru* .linetabs: Tabs and Fields. (line 148) 4317151497Sru* .ll: Line Layout. (line 149) 4318151497Sru* .lt: Page Layout. (line 63) 4319151497Sru* .M: Colors. (line 89) 4320151497Sru* .m: Colors. (line 55) 4321151497Sru* .n: Environments. (line 112) 4322151497Sru* .ne: Page Location Traps. (line 118) 4323151497Sru* .ns: Manipulating Spacing. 4324151497Sru (line 115) 4325151497Sru* .o: Line Layout. (line 64) 4326151497Sru* .p: Page Layout. (line 13) 4327151497Sru* .P: Built-in Registers. (line 108) 4328151497Sru* .pe: Page Location Traps. (line 139) 4329151497Sru* .pn: Page Layout. (line 80) 4330151497Sru* .ps: Fractional Type Sizes. 4331151497Sru (line 35) 4332151497Sru* .psr: Fractional Type Sizes. 4333151497Sru (line 42) 4334151497Sru* .pvs: Changing Type Sizes. (line 136) 4335151497Sru* .rj: Manipulating Filling and Adjusting. 4336151497Sru (line 239) 4337151497Sru* .s: Changing Type Sizes. (line 11) 4338151497Sru* .slant: Artificial Fonts. (line 46) 4339151497Sru* .sr: Fractional Type Sizes. 4340151497Sru (line 43) 4341151497Sru* .ss: Manipulating Filling and Adjusting. 4342151497Sru (line 135) 4343151497Sru* .sss: Manipulating Filling and Adjusting. 4344151497Sru (line 136) 4345151497Sru* .sty: Changing Fonts. (line 11) 4346151497Sru* .t: Page Location Traps. (line 97) 4347151497Sru* .T: Built-in Registers. (line 114) 4348151497Sru* .tabs: Tabs and Fields. (line 15) 4349151497Sru* .trunc: Page Location Traps. (line 127) 4350151497Sru* .u: Manipulating Filling and Adjusting. 4351151497Sru (line 31) 4352151497Sru* .v: Changing Type Sizes. (line 87) 4353151497Sru* .V: Built-in Registers. (line 23) 4354151497Sru* .vpt: Page Location Traps. (line 18) 4355151497Sru* .w: Environments. (line 94) 4356151497Sru* .warn: Debugging. (line 155) 4357151497Sru* .x: Built-in Registers. (line 85) 4358151497Sru* .Y: Built-in Registers. (line 93) 4359151497Sru* .y: Built-in Registers. (line 89) 4360151497Sru* .z: Diversions. (line 61) 4361151497Sru* c.: Built-in Registers. (line 74) 4362151497Sru* ct: Page Motions. (line 152) 4363151497Sru* dl: Diversions. (line 87) 4364151497Sru* dn: Diversions. (line 86) 4365151497Sru* dw: Built-in Registers. (line 39) 4366151497Sru* dy: Built-in Registers. (line 42) 4367151497Sru* FAM [ms]: ms Document Control Registers. 4368151497Sru (line 110) 4369151497Sru* FF [ms]: ms Document Control Registers. 4370151497Sru (line 184) 4371151497Sru* FI [ms]: ms Document Control Registers. 4372151497Sru (line 177) 4373151497Sru* FL [ms]: ms Document Control Registers. 4374151497Sru (line 170) 4375151497Sru* FM [ms]: ms Document Control Registers. 4376151497Sru (line 47) 4377151497Sru* FPD [ms]: ms Document Control Registers. 4378151497Sru (line 221) 4379151497Sru* FPS [ms]: ms Document Control Registers. 4380151497Sru (line 204) 4381151497Sru* FVS [ms]: ms Document Control Registers. 4382151497Sru (line 212) 4383151497Sru* GROWPS [ms]: ms Document Control Registers. 4384151497Sru (line 88) 4385151497Sru* GS [ms]: Differences from AT&T ms. 4386151497Sru (line 46) 4387151497Sru* HM [ms]: ms Document Control Registers. 4388151497Sru (line 40) 4389151497Sru* HORPHANS [ms]: ms Document Control Registers. 4390151497Sru (line 154) 4391151497Sru* hours: Built-in Registers. (line 35) 4392151497Sru* hp: Page Motions. (line 211) 4393151497Sru* HY [ms]: ms Document Control Registers. 4394151497Sru (line 101) 4395151497Sru* LL [ms]: ms Document Control Registers. 4396151497Sru (line 25) 4397151497Sru* llx: Miscellaneous. (line 142) 4398151497Sru* lly: Miscellaneous. (line 143) 4399151497Sru* ln: Built-in Registers. (line 79) 4400151497Sru* LT [ms]: ms Document Control Registers. 4401151497Sru (line 32) 4402151497Sru* MINGW [ms] <1>: Additional ms Macros. 4403151497Sru (line 28) 4404151497Sru* MINGW [ms]: ms Document Control Registers. 4405151497Sru (line 231) 4406151497Sru* minutes: Built-in Registers. (line 31) 4407151497Sru* mo: Built-in Registers. (line 45) 4408151497Sru* nl: Page Control. (line 68) 4409151497Sru* opmaxx: Suppressing output. (line 19) 4410151497Sru* opmaxy: Suppressing output. (line 19) 4411151497Sru* opminx: Suppressing output. (line 19) 4412151497Sru* opminy: Suppressing output. (line 19) 4413151497Sru* PD [ms]: ms Document Control Registers. 4414151497Sru (line 127) 4415151497Sru* PI [ms]: ms Document Control Registers. 4416151497Sru (line 120) 4417151497Sru* PO [ms]: ms Document Control Registers. 4418151497Sru (line 16) 4419151497Sru* PORPHANS [ms]: ms Document Control Registers. 4420151497Sru (line 142) 4421151497Sru* PS [ms]: ms Document Control Registers. 4422151497Sru (line 57) 4423151497Sru* ps4html [grohtml]: grohtml specific registers and strings. 4424151497Sru (line 7) 4425151497Sru* PSINCR [ms]: ms Document Control Registers. 4426151497Sru (line 77) 4427151497Sru* QI [ms]: ms Document Control Registers. 4428151497Sru (line 134) 4429151497Sru* rsb: Page Motions. (line 151) 4430151497Sru* rst: Page Motions. (line 150) 4431151497Sru* sb: Page Motions. (line 149) 4432151497Sru* seconds: Built-in Registers. (line 26) 4433151497Sru* skw: Page Motions. (line 154) 4434151497Sru* slimit: Debugging. (line 119) 4435151497Sru* ssc: Page Motions. (line 153) 4436151497Sru* st: Page Motions. (line 148) 4437151497Sru* systat: I/O. (line 161) 4438151497Sru* urx: Miscellaneous. (line 144) 4439151497Sru* ury: Miscellaneous. (line 145) 4440151497Sru* VS [ms]: ms Document Control Registers. 4441151497Sru (line 67) 4442151497Sru* year: Built-in Registers. (line 48) 4443151497Sru* yr: Built-in Registers. (line 51) 4444104862Sru 4445151497Sru 4446151497SruFile: groff, Node: Macro Index, Next: String Index, Prev: Register Index, Up: Top 4447104862Sru 4448151497SruAppendix F Macro Index 4449151497Sru********************** 4450104862Sru 4451151497SruThe macro package a specific macro belongs to is appended in brackets. 4452151497SruThey appear without the leading control character (normally `.'). 4453104862Sru 4454151497Sru[index] 4455151497Sru* Menu: 4456104862Sru 4457151497Sru* 1C [ms]: ms Multiple Columns. (line 13) 4458151497Sru* 2C [ms]: ms Multiple Columns. (line 16) 4459151497Sru* [ [ms]: ms Insertions. (line 33) 4460151497Sru* ] [ms]: ms Insertions. (line 34) 4461151497Sru* AB [ms]: ms Cover Page Macros. 4462151497Sru (line 60) 4463151497Sru* AE [ms]: ms Cover Page Macros. 4464151497Sru (line 65) 4465151497Sru* AI [ms]: ms Cover Page Macros. 4466151497Sru (line 56) 4467151497Sru* AM [ms] <1>: Additional ms Macros. 4468151497Sru (line 10) 4469151497Sru* AM [ms]: ms Strings and Special Characters. 4470151497Sru (line 51) 4471151497Sru* AT [man]: Miscellaneous man macros. 4472151497Sru (line 26) 4473151497Sru* AU [ms]: ms Cover Page Macros. 4474151497Sru (line 38) 4475151497Sru* B [man]: Man font macros. (line 48) 4476151497Sru* B [ms]: Highlighting in ms. (line 10) 4477151497Sru* B1 [ms]: ms Displays and Keeps. 4478151497Sru (line 94) 4479151497Sru* B2 [ms]: ms Displays and Keeps. 4480151497Sru (line 95) 4481151497Sru* BD [ms]: ms Displays and Keeps. 4482151497Sru (line 31) 4483151497Sru* BI [man]: Man font macros. (line 18) 4484151497Sru* BI [ms]: Highlighting in ms. (line 39) 4485151497Sru* BR [man]: Man font macros. (line 40) 4486151497Sru* BT [man]: Optional man extensions. 4487151497Sru (line 21) 4488151497Sru* BX [ms]: Highlighting in ms. (line 43) 4489151497Sru* CD [ms]: ms Displays and Keeps. 4490151497Sru (line 41) 4491151497Sru* CT [man]: Optional man extensions. 4492151497Sru (line 36) 4493151497Sru* CW [man]: Optional man extensions. 4494151497Sru (line 39) 4495151497Sru* CW [ms] <1>: Additional ms Macros. 4496151497Sru (line 19) 4497151497Sru* CW [ms]: Highlighting in ms. (line 35) 4498151497Sru* DA [ms]: ms Cover Page Macros. 4499151497Sru (line 23) 4500151497Sru* De [man]: Optional man extensions. 4501151497Sru (line 45) 4502151497Sru* De [ms]: ms Displays and Keeps. 4503151497Sru (line 57) 4504151497Sru* DE [ms]: ms Displays and Keeps. 4505151497Sru (line 16) 4506151497Sru* Ds [man]: Optional man extensions. 4507151497Sru (line 42) 4508151497Sru* DS [ms]: Additional ms Macros. 4509151497Sru (line 14) 4510151497Sru* Ds [ms]: ms Displays and Keeps. 4511151497Sru (line 56) 4512151497Sru* DS [ms]: ms Displays and Keeps. 4513151497Sru (line 14) 4514151497Sru* DT [man]: Miscellaneous man macros. 4515151497Sru (line 10) 4516151497Sru* EE [man]: Optional man extensions. 4517151497Sru (line 52) 4518151497Sru* EF [ms]: ms Headers and Footers. 4519151497Sru (line 26) 4520151497Sru* EH [ms]: ms Headers and Footers. 4521151497Sru (line 24) 4522151497Sru* EN [ms]: ms Insertions. (line 28) 4523151497Sru* EQ [ms]: ms Insertions. (line 27) 4524151497Sru* EX [man]: Optional man extensions. 4525151497Sru (line 48) 4526151497Sru* FE [ms]: ms Footnotes. (line 15) 4527151497Sru* FS [ms]: ms Footnotes. (line 14) 4528151497Sru* G [man]: Optional man extensions. 4529151497Sru (line 55) 4530151497Sru* GL [man]: Optional man extensions. 4531151497Sru (line 60) 4532151497Sru* HB [man]: Optional man extensions. 4533151497Sru (line 65) 4534151497Sru* HP [man]: Man usage. (line 98) 4535151497Sru* I [man]: Man font macros. (line 53) 4536151497Sru* I [ms]: Highlighting in ms. (line 31) 4537151497Sru* IB [man]: Man font macros. (line 28) 4538151497Sru* ID [ms]: ms Displays and Keeps. 4539151497Sru (line 23) 4540151497Sru* IP [man]: Man usage. (line 78) 4541151497Sru* IP [ms]: Lists in ms. (line 9) 4542151497Sru* IR [man]: Man font macros. (line 36) 4543151497Sru* IX [ms]: Additional ms Macros. 4544151497Sru (line 22) 4545151497Sru* KE [ms]: ms Displays and Keeps. 4546151497Sru (line 73) 4547151497Sru* KF [ms]: ms Displays and Keeps. 4548151497Sru (line 77) 4549151497Sru* KS [ms]: ms Displays and Keeps. 4550151497Sru (line 72) 4551151497Sru* LD [ms]: ms Displays and Keeps. 4552151497Sru (line 15) 4553151497Sru* LG [ms]: Highlighting in ms. (line 52) 4554151497Sru* LP [man]: Man usage. (line 68) 4555151497Sru* LP [ms]: Paragraphs in ms. (line 10) 4556151497Sru* MC [ms]: ms Multiple Columns. (line 19) 4557151497Sru* MS [man]: Optional man extensions. 4558151497Sru (line 73) 4559151497Sru* ND [ms]: ms Cover Page Macros. 4560151497Sru (line 28) 4561151497Sru* NE [man]: Optional man extensions. 4562151497Sru (line 85) 4563151497Sru* NH [ms]: Headings in ms. (line 13) 4564151497Sru* NL [ms]: Highlighting in ms. (line 64) 4565151497Sru* NT [man]: Optional man extensions. 4566151497Sru (line 78) 4567151497Sru* OF [ms]: ms Headers and Footers. 4568151497Sru (line 25) 4569151497Sru* OH [ms]: ms Headers and Footers. 4570151497Sru (line 23) 4571151497Sru* P [man]: Man usage. (line 70) 4572151497Sru* P1 [ms]: ms Cover Page Macros. 4573151497Sru (line 19) 4574151497Sru* PD [man]: Miscellaneous man macros. 4575151497Sru (line 15) 4576151497Sru* PE [ms]: ms Insertions. (line 21) 4577151497Sru* Pn [man]: Optional man extensions. 4578151497Sru (line 92) 4579151497Sru* PN [man]: Optional man extensions. 4580151497Sru (line 88) 4581151497Sru* PP [man]: Man usage. (line 69) 4582151497Sru* PP [ms]: Paragraphs in ms. (line 9) 4583151497Sru* PS [ms]: ms Insertions. (line 20) 4584151497Sru* PT [man]: Optional man extensions. 4585151497Sru (line 16) 4586151497Sru* PX [ms]: ms TOC. (line 65) 4587151497Sru* QP [ms]: Paragraphs in ms. (line 13) 4588151497Sru* R [man]: Optional man extensions. 4589151497Sru (line 98) 4590151497Sru* R [ms]: Highlighting in ms. (line 27) 4591151497Sru* RB [man]: Man font macros. (line 44) 4592151497Sru* RD [ms]: ms Displays and Keeps. 4593151497Sru (line 49) 4594151497Sru* RE [man]: Man usage. (line 115) 4595151497Sru* RE [ms]: Indentation values in ms. 4596151497Sru (line 12) 4597151497Sru* RI [man]: Man font macros. (line 32) 4598151497Sru* RN [man]: Optional man extensions. 4599151497Sru (line 101) 4600151497Sru* RP [ms]: ms Cover Page Macros. 4601151497Sru (line 10) 4602151497Sru* RS [man]: Man usage. (line 106) 4603151497Sru* RS [ms]: Indentation values in ms. 4604151497Sru (line 11) 4605151497Sru* SB [man]: Man font macros. (line 14) 4606151497Sru* SH [man]: Man usage. (line 32) 4607151497Sru* SH [ms]: Headings in ms. (line 43) 4608151497Sru* SM [man]: Man font macros. (line 10) 4609151497Sru* SM [ms]: Highlighting in ms. (line 58) 4610151497Sru* SS [man]: Man usage. (line 41) 4611151497Sru* TA [ms]: Tabstops in ms. (line 10) 4612151497Sru* TB [man]: Optional man extensions. 4613151497Sru (line 70) 4614151497Sru* TC [ms]: ms TOC. (line 55) 4615151497Sru* TE [ms]: ms Insertions. (line 12) 4616151497Sru* TH [man]: Man usage. (line 11) 4617151497Sru* TL [ms]: ms Cover Page Macros. 4618151497Sru (line 33) 4619151497Sru* TP [man]: Man usage. (line 49) 4620151497Sru* TS [ms]: ms Insertions. (line 11) 4621151497Sru* UC [man]: Miscellaneous man macros. 4622151497Sru (line 43) 4623151497Sru* UL [ms]: Highlighting in ms. (line 47) 4624151497Sru* VE [man]: Optional man extensions. 4625151497Sru (line 108) 4626151497Sru* VS [man]: Optional man extensions. 4627151497Sru (line 104) 4628151497Sru* XA [ms]: ms TOC. (line 13) 4629151497Sru* XE [ms]: ms TOC. (line 14) 4630151497Sru* XP [ms]: Paragraphs in ms. (line 18) 4631151497Sru* XS [ms]: ms TOC. (line 12) 4632104862Sru 4633151497Sru 4634151497SruFile: groff, Node: String Index, Next: Glyph Name Index, Prev: Macro Index, Up: Top 4635104862Sru 4636151497SruAppendix G String Index 4637151497Sru*********************** 4638104862Sru 4639151497SruThe macro package or program a specific string belongs to is appended in 4640151497Srubrackets. 4641104862Sru 4642151497Sru A string name `x' consisting of exactly one character can be 4643151497Sruaccessed as `\*x'. A string name `xx' consisting of exactly two 4644151497Srucharacters can be accessed as `\*(xx'. String names `xxx' of any 4645151497Srulength can be accessed as `\*[xxx]'. 4646104862Sru 4647151497Sru[index] 4648151497Sru* Menu: 4649104862Sru 4650151497Sru* ! [ms]: ms Strings and Special Characters. 4651151497Sru (line 101) 4652151497Sru* ' [ms]: ms Strings and Special Characters. 4653151497Sru (line 65) 4654151497Sru* * [ms]: ms Footnotes. (line 11) 4655151497Sru* , [ms]: ms Strings and Special Characters. 4656151497Sru (line 74) 4657151497Sru* - [ms]: ms Strings and Special Characters. 4658151497Sru (line 41) 4659151497Sru* . [ms]: ms Strings and Special Characters. 4660151497Sru (line 89) 4661151497Sru* .T: Built-in Registers. (line 119) 4662151497Sru* 3 [ms]: ms Strings and Special Characters. 4663151497Sru (line 107) 4664151497Sru* 8 [ms]: ms Strings and Special Characters. 4665151497Sru (line 104) 4666151497Sru* ? [ms]: ms Strings and Special Characters. 4667151497Sru (line 98) 4668151497Sru* \*[<colon>] [ms]: ms Strings and Special Characters. 4669151497Sru (line 80) 4670151497Sru* ^ [ms]: ms Strings and Special Characters. 4671151497Sru (line 71) 4672151497Sru* _ [ms]: ms Strings and Special Characters. 4673151497Sru (line 86) 4674151497Sru* ` [ms]: ms Strings and Special Characters. 4675151497Sru (line 68) 4676151497Sru* ABSTRACT [ms]: ms Strings and Special Characters. 4677151497Sru (line 15) 4678151497Sru* Ae [ms]: ms Strings and Special Characters. 4679151497Sru (line 128) 4680151497Sru* ae [ms]: ms Strings and Special Characters. 4681151497Sru (line 125) 4682151497Sru* CF [ms]: ms Headers and Footers. 4683151497Sru (line 16) 4684151497Sru* CH [ms]: ms Headers and Footers. 4685151497Sru (line 11) 4686151497Sru* d- [ms]: ms Strings and Special Characters. 4687151497Sru (line 119) 4688151497Sru* D- [ms]: ms Strings and Special Characters. 4689151497Sru (line 116) 4690151497Sru* HF [man]: Predefined man strings. 4691151497Sru (line 12) 4692151497Sru* LF [ms]: ms Headers and Footers. 4693151497Sru (line 15) 4694151497Sru* LH [ms]: ms Headers and Footers. 4695151497Sru (line 10) 4696151497Sru* lq [man]: Predefined man strings. 4697151497Sru (line 21) 4698151497Sru* MONTH1 [ms]: ms Strings and Special Characters. 4699151497Sru (line 23) 4700151497Sru* MONTH10 [ms]: ms Strings and Special Characters. 4701151497Sru (line 32) 4702151497Sru* MONTH11 [ms]: ms Strings and Special Characters. 4703151497Sru (line 33) 4704151497Sru* MONTH12 [ms]: ms Strings and Special Characters. 4705151497Sru (line 34) 4706151497Sru* MONTH2 [ms]: ms Strings and Special Characters. 4707151497Sru (line 24) 4708151497Sru* MONTH3 [ms]: ms Strings and Special Characters. 4709151497Sru (line 25) 4710151497Sru* MONTH4 [ms]: ms Strings and Special Characters. 4711151497Sru (line 26) 4712151497Sru* MONTH5 [ms]: ms Strings and Special Characters. 4713151497Sru (line 27) 4714151497Sru* MONTH6 [ms]: ms Strings and Special Characters. 4715151497Sru (line 28) 4716151497Sru* MONTH7 [ms]: ms Strings and Special Characters. 4717151497Sru (line 29) 4718151497Sru* MONTH8 [ms]: ms Strings and Special Characters. 4719151497Sru (line 30) 4720151497Sru* MONTH9 [ms]: ms Strings and Special Characters. 4721151497Sru (line 31) 4722151497Sru* o [ms]: ms Strings and Special Characters. 4723151497Sru (line 92) 4724151497Sru* q [ms]: ms Strings and Special Characters. 4725151497Sru (line 122) 4726151497Sru* Q [ms]: ms Strings and Special Characters. 4727151497Sru (line 44) 4728151497Sru* R [man]: Predefined man strings. 4729151497Sru (line 15) 4730151497Sru* REFERENCES [ms]: ms Strings and Special Characters. 4731151497Sru (line 11) 4732151497Sru* RF [ms]: ms Headers and Footers. 4733151497Sru (line 17) 4734151497Sru* RH [ms]: ms Headers and Footers. 4735151497Sru (line 12) 4736151497Sru* rq [man]: Predefined man strings. 4737151497Sru (line 22) 4738151497Sru* S [man]: Predefined man strings. 4739151497Sru (line 9) 4740151497Sru* SN [ms]: Headings in ms. (line 22) 4741151497Sru* SN-DOT [ms]: Headings in ms. (line 23) 4742151497Sru* SN-NO-DOT [ms]: Headings in ms. (line 24) 4743151497Sru* th [ms]: ms Strings and Special Characters. 4744151497Sru (line 113) 4745151497Sru* Th [ms]: ms Strings and Special Characters. 4746151497Sru (line 110) 4747151497Sru* Tm [man]: Predefined man strings. 4748151497Sru (line 18) 4749151497Sru* TOC [ms]: ms Strings and Special Characters. 4750151497Sru (line 19) 4751151497Sru* U [ms]: ms Strings and Special Characters. 4752151497Sru (line 45) 4753151497Sru* v [ms]: ms Strings and Special Characters. 4754151497Sru (line 83) 4755151497Sru* www-image-template [grohtml]: grohtml specific registers and strings. 4756151497Sru (line 8) 4757151497Sru* { [ms]: Highlighting in ms. (line 68) 4758151497Sru* } [ms]: Highlighting in ms. (line 69) 4759151497Sru* ~ [ms]: ms Strings and Special Characters. 4760151497Sru (line 77) 4761151497Sru 4762151497Sru 4763151497SruFile: groff, Node: Glyph Name Index, Next: Font File Keyword Index, Prev: String Index, Up: Top 4764151497Sru 4765151497SruAppendix H Glyph Name Index 4766151497Sru*************************** 4767151497Sru 4768151497SruA glyph name `xx' consisting of exactly two characters can be accessed 4769151497Sruas `\(xx'. Glyph names `xxx' of any length can be accessed as `\[xxx]'. 4770151497Sru 4771151497Sru 4772151497SruFile: groff, Node: Font File Keyword Index, Next: Program and File Index, Prev: Glyph Name Index, Up: Top 4773151497Sru 4774151497SruAppendix I Font File Keyword Index 4775151497Sru********************************** 4776151497Sru 4777151497Sru[index] 4778151497Sru* Menu: 4779151497Sru 4780151497Sru* #: Font File Format. (line 36) 4781151497Sru* ---: Font File Format. (line 51) 4782151497Sru* biggestfont: DESC File Format. (line 109) 4783151497Sru* charset <1>: Font File Format. (line 44) 4784151497Sru* charset: DESC File Format. (line 101) 4785151497Sru* family <1>: DESC File Format. (line 64) 4786151497Sru* family <2>: Font Positions. (line 61) 4787151497Sru* family: Changing Fonts. (line 11) 4788151497Sru* fonts <1>: DESC File Format. (line 58) 4789151497Sru* fonts <2>: Special Fonts. (line 18) 4790151497Sru* fonts: Using Symbols. (line 15) 4791151497Sru* hor: DESC File Format. (line 14) 4792151497Sru* kernpairs: Font File Format. (line 135) 4793151497Sru* ligatures: Font File Format. (line 22) 4794151497Sru* name: Font File Format. (line 12) 4795151497Sru* papersize: DESC File Format. (line 72) 4796151497Sru* pass_filenames: DESC File Format. (line 92) 4797151497Sru* postpro: DESC File Format. (line 36) 4798151497Sru* prepro: DESC File Format. (line 32) 4799151497Sru* print: DESC File Format. (line 97) 4800151497Sru* res: DESC File Format. (line 11) 4801151497Sru* sizes: DESC File Format. (line 49) 4802151497Sru* sizescale: DESC File Format. (line 22) 4803151497Sru* slant: Font File Format. (line 18) 4804151497Sru* spacewidth: Font File Format. (line 15) 4805151497Sru* spare1: DESC File Format. (line 109) 4806151497Sru* spare2: DESC File Format. (line 109) 4807151497Sru* special <1>: Font File Format. (line 28) 4808151497Sru* special: Artificial Fonts. (line 116) 4809151497Sru* styles <1>: DESC File Format. (line 55) 4810151497Sru* styles <2>: Font Positions. (line 61) 4811151497Sru* styles <3>: Font Families. (line 76) 4812151497Sru* styles: Changing Fonts. (line 11) 4813151497Sru* tcommand: DESC File Format. (line 45) 4814151497Sru* unitwidth: DESC File Format. (line 28) 4815151497Sru* use_charnames_in_special <1>: DESC File Format. (line 67) 4816151497Sru* use_charnames_in_special: Postprocessor Access. 4817151497Sru (line 17) 4818151497Sru* vert: DESC File Format. (line 18) 4819151497Sru 4820151497Sru 4821151497SruFile: groff, Node: Program and File Index, Next: Concept Index, Prev: Font File Keyword Index, Up: Top 4822151497Sru 4823151497SruAppendix J Program and File Index 4824151497Sru********************************* 4825151497Sru 4826151497Sru[index] 4827151497Sru* Menu: 4828151497Sru 4829151497Sru* an.tmac: man. (line 6) 4830151497Sru* changebar: Miscellaneous. (line 111) 4831151497Sru* composite.tmac: Using Symbols. (line 197) 4832151497Sru* cp1047.tmac: Input Encodings. (line 9) 4833151497Sru* DESC <1>: Special Fonts. (line 18) 4834151497Sru* DESC <2>: Using Symbols. (line 15) 4835151497Sru* DESC <3>: Font Positions. (line 61) 4836151497Sru* DESC <4>: Font Families. (line 76) 4837151497Sru* DESC: Changing Fonts. (line 11) 4838151497Sru* DESC file format: DESC File Format. (line 6) 4839151497Sru* DESC, and font mounting: Font Positions. (line 37) 4840151497Sru* DESC, and use_charnames_in_special: Postprocessor Access. 4841151497Sru (line 17) 4842151497Sru* ditroff: History. (line 58) 4843151497Sru* ec.tmac: Input Encodings. (line 41) 4844151497Sru* eqn: ms Insertions. (line 7) 4845151497Sru* freeeuro.pfa: Input Encodings. (line 41) 4846151497Sru* geqn: Groff Options. (line 6) 4847151497Sru* geqn, invocation in manual pages: Preprocessors in man pages. 4848151497Sru (line 12) 4849151497Sru* ggrn: Groff Options. (line 6) 4850151497Sru* gpic: Groff Options. (line 6) 4851151497Sru* grap: Groff Options. (line 6) 4852151497Sru* grefer: Groff Options. (line 6) 4853151497Sru* grefer, invocation in manual pages: Preprocessors in man pages. 4854151497Sru (line 12) 4855151497Sru* groff: Groff Options. (line 6) 4856151497Sru* grog: grog. (line 6) 4857151497Sru* grohtml: Miscellaneous man macros. 4858151497Sru (line 6) 4859151497Sru* gsoelim: Groff Options. (line 6) 4860151497Sru* gtbl: Groff Options. (line 6) 4861151497Sru* gtbl, invocation in manual pages: Preprocessors in man pages. 4862151497Sru (line 12) 4863151497Sru* gtroff: Groff Options. (line 6) 4864151497Sru* hyphen.us: Manipulating Hyphenation. 4865151497Sru (line 161) 4866151497Sru* hyphenex.us: Manipulating Hyphenation. 4867151497Sru (line 161) 4868151497Sru* latin1.tmac: Input Encodings. (line 14) 4869151497Sru* latin2.tmac: Input Encodings. (line 18) 4870151497Sru* latin9.tmac: Input Encodings. (line 23) 4871151497Sru* makeindex: Indices. (line 10) 4872151497Sru* man, invocation of preprocessors: Preprocessors in man pages. 4873151497Sru (line 12) 4874151497Sru* man-old.tmac: man. (line 6) 4875151497Sru* man.local <1>: Optional man extensions. 4876151497Sru (line 6) 4877151497Sru* man.local: Man usage. (line 6) 4878151497Sru* man.tmac: man. (line 6) 4879151497Sru* man.ultrix: Optional man extensions. 4880151497Sru (line 30) 4881151497Sru* nrchbar: Miscellaneous. (line 111) 4882151497Sru* papersize.tmac: Paper Size. (line 16) 4883151497Sru* perl: I/O. (line 171) 4884151497Sru* pic: ms Insertions. (line 7) 4885151497Sru* post-grohtml: Groff Options. (line 165) 4886151497Sru* pre-grohtml: Groff Options. (line 165) 4887151497Sru* refer: ms Insertions. (line 7) 4888151497Sru* soelim: Debugging. (line 10) 4889151497Sru* tbl: ms Insertions. (line 7) 4890151497Sru* trace.tmac: Writing Macros. (line 101) 4891151497Sru* troffrc <1>: Line Layout. (line 64) 4892151497Sru* troffrc <2>: Troff and Nroff Mode. 4893151497Sru (line 24) 4894151497Sru* troffrc <3>: Manipulating Hyphenation. 4895151497Sru (line 161) 4896151497Sru* troffrc <4>: Paper Size. (line 16) 4897151497Sru* troffrc: Groff Options. (line 80) 4898151497Sru* troffrc-end <1>: Troff and Nroff Mode. 4899151497Sru (line 24) 4900151497Sru* troffrc-end <2>: Manipulating Hyphenation. 4901151497Sru (line 161) 4902151497Sru* troffrc-end: Groff Options. (line 80) 4903151497Sru* tty.tmac: Troff and Nroff Mode. 4904151497Sru (line 32) 4905151497Sru 4906151497Sru 4907151497Sru 4908151497SruLocal Variables: 4909151497Srucoding: iso-8859-1 4910151497SruEnd: 4911