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 `&pound;' 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