diff options
author | wlemb <wlemb> | 2000-02-29 22:09:31 +0000 |
---|---|---|
committer | wlemb <wlemb> | 2000-02-29 22:09:31 +0000 |
commit | 51f8aaab902b8b64707a6434f63965916c94b411 (patch) | |
tree | 299f6da835721a127f80377c0dc90f50bd472c80 | |
parent | 1e67c0310dafbfca9ed201c1653960c910a22059 (diff) | |
download | groff-51f8aaab902b8b64707a6434f63965916c94b411.tar.gz |
* man/groff_out.man: Fix nroff mode activation (for emacs).
* man/groff_font.man: Add missing ligature.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | doc/groff.texinfo | 1482 | ||||
-rw-r--r-- | man/groff_font.man | 3 | ||||
-rw-r--r-- | man/groff_out.man | 9 |
4 files changed, 883 insertions, 614 deletions
@@ -13,6 +13,9 @@ * doc/groff.texinfo: Further checking/updating. Adding more index entries. + * man/groff_out.man: Fix nroff mode activation (for emacs). + * man/groff_font.man: Add missing ligature. + 2000-02-28 Werner LEMBERG <wl@gnu.org> * doc/groff.texinfo: Further checking/updating. Adding more index diff --git a/doc/groff.texinfo b/doc/groff.texinfo index e83e9b40..429f9875 100644 --- a/doc/groff.texinfo +++ b/doc/groff.texinfo @@ -12,6 +12,7 @@ @c cindex: concepts @c findex: requests, escapes, and functions @c vindex: registers +@c kindex: commands in font files @c pindex: programs @c tindex: environment variables @c @@ -20,6 +21,9 @@ @syncodeindex tp cp +@c XXX comment all examples + + @dircategory Miscellaneous @direntry * Groff: (groff). The GNU troff document formatting system. @@ -148,8 +152,7 @@ contributions are welcome. Send them to bug-groff@@gnu.org. * Installation:: * Request and Operator Index:: * Register Index:: -* String Index:: -* Macro Index:: +* Font File Keyword Index:: * Program and File Index:: * Concept Index:: @end menu @@ -1609,13 +1612,13 @@ read this chapter. * Conditionals and Loops:: * Writing Macros:: * Page Motions:: -* Drawing Functions:: +* Drawing Requests:: * Traps:: * Diversions:: * Environments:: * I/O:: * Postprocessor Access:: -* Miscellany:: +* Miscellaneous:: * Debugging:: * Implementation Differences:: * Summary:: @@ -3297,15 +3300,15 @@ amount of space is also called @dfn{italic correction}. @c this problem. @findex \, -@cindex roman correction -@cindex correction, roman +@cindex left italic correction +@cindex correction, left italic The @code{\,} escape modifies the spacing of the following character so that the spacing between that character and the preceding character will be correct if the preceding character is a roman character. It is a good idea to use this escape sequence whenever a roman character is immediately followed by an italic character without any intervening -space. In analogy to above, this space could be called @dfn{roman -correction}, but this term isn't used. +space. In analogy to above, this space could be called @dfn{left italic +correction}, but this term isn't used widely. @c XXX example @c For example, inserting \, between the parenthesis and the f changes @@ -4165,21 +4168,6 @@ Macros can be aliased with the @code{als} request. @c XXX example -@findex rn -@code{rn} - -@c XXX - -@findex rm -@code{rm} - -@c XXX - -@findex chop -@code{chop} - -@c XXX - @menu * Copy-in Mode:: * Parameters:: @@ -4274,13 +4262,13 @@ name. This would be called as @example -.vl $Id: groff.texinfo,v 1.12 2000/02/29 10:35:51 wlemb Exp $ +.vl $Id: groff.texinfo,v 1.13 2000/02/29 22:09:32 wlemb Exp $ @end example @xref{Request Arguments}. -@node Page Motions, Drawing Functions, Writing Macros, Programming Tutorial +@node Page Motions, Drawing Requests, Writing Macros, Programming Tutorial @section Page Motions @cindex page motions @cindex motions, page @@ -4430,10 +4418,10 @@ over that character. @c XXX documentation -@node Drawing Functions, Traps, Page Motions, Programming Tutorial -@section Drawing Functions -@cindex drawing functions -@cindex functions for drawing +@node Drawing Requests, Traps, Page Motions, Programming Tutorial +@section Drawing Requests +@cindex drawing requests +@cindex requests for drawing @code{gtroff} provides a number of ways to draw lines and other figures on the page. Used in combination with the page motion commands @@ -4596,21 +4584,17 @@ used to build large brackets and braces. \b'\(lt\(bv\(lk\(bv\(lb' @end example +@xref{Drawing Functions}. -@node Traps, Diversions, Drawing Functions, Programming Tutorial +@node Traps, Diversions, Drawing Requests, Programming Tutorial @section Traps @cindex traps -Traps are locations, which, when reached, will call a specified macro. -These traps can occur at a given location on the page, at a given -location in the current diversion, after a certain number of input +@dfn{Traps} are locations, which, when reached, will call a specified +macro. These traps can occur at a given location on the page, at a +given location in the current diversion, after a certain number of input lines or at the end of input. -@findex ch -Any of these traps can be changed after they have been set with the -@code{ch} request. The first arguemnt is the name of the trap or -macro, and the second is the new value for that trap. - @menu * Page Location Traps:: * Diversion Traps:: @@ -4623,34 +4607,45 @@ macro, and the second is the new value for that trap. @cindex page location traps @cindex traps, page location -Page location traps are frequently used for page headers and -footers. The following is a simple example of this. +@c XXX definition of wh request + +@cindex page headers +@cindex page footers +@cindex headers +@cindex footers +Page location traps are frequently used for page headers and footers. +The following is a simple example of this. @example -.de hd \" Page header +.de hd \" Page header 'sp .5i .tl 'Title''date' 'sp .3i .. -.de fo \" Page footer +.de fo \" Page footer 'sp 1v .tl ''%'' 'bp .. -.wh 0 hd \" top of the page -.wh -1i fo \" one inch from bottom +.wh 0 hd \" trap at top of the page +.wh -1i fo \" trap one inch from bottom @end example @vindex .t +@cindex distance to next trap +@cindex trap, distance The number register @code{.t} is the distance to the next trap. @findex ch +@cindex changing trap location +@cindex trap, changing location The location of a trap can be changed later on with the @code{ch} -request. -The first argument is the name of the macro to be invoked at the trap -and the second argument is the new location for the trap. -This is useful when you are building up footnotes in a diversion, and -you need to allow more space at the bottom of the page for them. +request. The first argument is the name of the macro to be invoked at +the trap and the second argument is the new location for the trap. This +is useful when you are building up footnotes in a diversion, and you +need to allow more space at the bottom of the page for them. + +@c XXX @example ... (simplified) footnote example ... @@ -4660,9 +4655,9 @@ you need to allow more space at the bottom of the page for them. @findex wh @findex dt @vindex .vpt -The @code{vpt} request will enable vertical position traps if the argment is -non-zero, disable them otherwise. Vertical position traps are traps -set by the @code{wh} or @code{dt} requests. Traps set by the +The @code{vpt} request will enable vertical position traps if the +argument is non-zero, disable them otherwise. Vertical position traps +are traps set by the @code{wh} or @code{dt} requests. Traps set by the @code{it} request are not vertical position traps. The parameter that controls whether vertical position traps are enabled is global. Initially vertical position traps are enabled. The current setting of @@ -4670,20 +4665,19 @@ this is available in the number register @code{.vpt}. @vindex .trunc @findex ne -The number register @code{.trunc} contains -the amount of vertical space truncated by the most recently -sprung vertical position trap, or, if the trap was sprung by a -@code{ne} request, minus the amount of vertical motion produced by -the @code{ne} request. In other words, at the point a trap is -sprung, it represents the difference of what the vertical position -would have been but for the trap, and what the vertical position -actually is. +The number register @code{.trunc} contains the amount of vertical space +truncated by the most recently sprung vertical position trap, or, if the +trap was sprung by a @code{ne} request, minus the amount of vertical +motion produced by the @code{ne} request. In other words, at the point +a trap is sprung, it represents the difference of what the vertical +position would have been but for the trap, and what the vertical +position actually is. @vindex .ne -The number register @code{.ne} contains -the amount of space that was needed in the last @code{ne} request that caused -a trap to be sprung. Useful in conjunction with the @code{.trunc} -register. @xref{Page Control}, for more information. +The number register @code{.ne} contains the amount of space that was +needed in the last @code{ne} request that caused a trap to be sprung. +Useful in conjunction with the @code{.trunc} register. @xref{Page +Control}, for more information. @node Diversion Traps, Input Line Traps, Page Location Traps, Traps @subsection Diversion Traps @@ -4693,9 +4687,9 @@ register. @xref{Page Control}, for more information. @findex dt @vindex .t Traps can also be set @emph{within} a diversion using the @code{dt} -request. Like @code{wh} the first argument is the location of the -trap and the second argument is the name of the macro to be invoked. -The number register @code{.t} will still work within diversions. +request. Like @code{wh} the first argument is the location of the trap +and the second argument is the name of the macro to be invoked. The +number register @code{.t} will still work within diversions. @xref{Diversions}, for more information. @node Input Line Traps, End-of-input Traps, Diversion Traps, Traps @@ -4705,13 +4699,19 @@ The number register @code{.t} will still work within diversions. @findex it The @code{it} request will set an input line trap. The format for -calling this is @samp{.it @var{n} @var{name}}, where @var{n} is the -number of lines of input which may be read before @dfn{springing} the -trap, @var{name} is the macro to be invoked. Request lines are not -counted as input lines. +calling this is + +@example +.it @var{n} @var{name} +@end example + +@noindent +where @var{n} is the number of lines of input which may be read before +@dfn{springing} the trap, @var{name} is the macro to be invoked. +Request lines are not counted as input lines. For example, one possible use is to have a macro which will print the -next @var{n} lines in a bold font. +next @var{n}@w{ }lines in a bold font. @example .de B @@ -4729,13 +4729,13 @@ next @var{n} lines in a bold font. @cindex traps, end-of-input @findex em -The @code{em} request will set a trap at the end of input. -The macro specified as an arguement will be executed after the last -line of the input file has been processed. +The @code{em} request will set a trap at the end of input. The macro +specified as an arguement will be executed after the last line of the +input file has been processed. -For example, if your document had to have a section at the bottom of -the last page for someone to approve you document, you could set it -up with @code{em}. +For example, if your document had to have a section at the bottom of the +last page for someone to approve your document, you could set it up with +@code{em}. @example .de approval @@ -4756,17 +4756,21 @@ Date:\t\t\a @section Diversions @cindex diversions -In Troff you can divert text into a named storage area, due to the -similarity to defining macros it is sometimes said to be stored in a -macro. This is used for saving text for output at a later time, -which is useful for keeping blocks of text on the same page, -footnotes, tables of contents and indexes. +In @code{gtroff} you can @dfn{divert} text into a named storage area. +Due to the similarity to defining macros it is sometimes said to be +stored in a macro. This is used for saving text for output at a later +time, which is useful for keeping blocks of text on the same page, +footnotes, tables of contents and indices. @findex di @findex da -Diversion is initiated by the @code{di} request, like the @code{de} -request it takes an argument of a macro name to divert subsequent -text to into. The @code{da} macro will append to an existing diversion. +A diversion is initiated by the @code{di} request. Like the @code{de} +request, it takes an argument of a macro name to divert subsequent text +into. The @code{da} macro will append to an existing diversion. + +@code{di} (resp.@: @code{da}) without an argument ends the diversion. + +@c XXX example @example ... end-note example ... @@ -4776,16 +4780,20 @@ text to into. The @code{da} macro will append to an existing diversion. @vindex .d @vindex nl @vindex .h -Diversions may be nested. -The number register @code{.z} contains the name of the current diversion. -The number register @code{.d} contains the current vertical place in -the diversion. If not in a diversion it is the same as the register -@code{nl}. +@cindex nested diversions +@cindex diversion, nested +Diversions may be nested. The number register @code{.z} contains the +name of the current diversion. The number register @code{.d} contains +the current vertical place in the diversion. If not in a diversion it +is the same as the register @code{nl}. + +@c XXX more info + @code{.h} @vindex dn @vindex dl -After compleating a diversion, the built-in number registers @code{dn} +After completing a diversion, the built-in number registers @code{dn} and @code{dl} contain the vertical and horizontal size of the diversion. @example @@ -4813,25 +4821,31 @@ and @code{dl} contain the vertical and horizontal size of the diversion. @end example @findex \! -Requests, macros and escapes are interpreted when read into a -diversion. -There are two ways to prevent this, either way will take the given -text and @dfn{transparently} embed it into the diversion. -The first method is to prefix the line with @code{\!}. This will -cause the entire line to be transparently inserted into the diversion. -This is useful for macros you do not want invoked until the diverted -text is actually output. +@cindex transparent output +@cindex output, transparent +Requests, macros and escapes are interpreted when read into a diversion. +There are two ways to prevent this; either way will take the given text +and @dfn{transparently} embed it into the diversion. The first method +is to prefix the line with @code{\!}. This will cause the entire line +to be transparently inserted into the diversion. This is useful for +macros you do not want invoked until the diverted text is actually +output. -@c anything is read in copy mode. (what about \! ??) +@c XXX anything is read in copy mode. (what about \! ??) @findex \? The other way is to surround the text by the @code{\?} escape, i.e. -@samp{\?@var{anything}\?}. -@var{anything} may not contain -newlines; use @code{\!} if you want to embed newlines in a diversion. The -escape sequence @code{\?} is also recognised in copy mode and turned into a -single internal code; it is this code that terminates anything. Thus -the followin example will print 4. + +@example +\?@var{anything}\? +@end example + +@noindent +@var{anything} may not contain newlines; use @code{\!} if you want to +embed newlines in a diversion. The escape sequence @code{\?} is also +recognized in copy mode and turned into a single internal code; it is +this code that terminates anything. Thus the following example will +print@w{ }4. @example .nr x 1 @@ -4851,90 +4865,80 @@ the followin example will print 4. .f @end example -@findex rn -@code{rn} - -@findex rm -@code{rm} - -@findex als -@code{als} - -@findex chop -@code{chop} - @findex asciify -@code{asciify} -This request only exists in order to make it possible to make certain -gross hacks work with GNU troff. It @dfn{unformats} the diversion -specified as an argument in -such a way that @sc{ascii} characters that were formatted and diverted -will be treated like ordinary input characters when the diversion is -reread. For example, the following will set register @code{n} to 1. +@cindex unformatting diversions +@cindex diversion, unformatting +The @code{asciify} request only exists in order to make certain gross +hacks work with GNU @code{troff}. It @dfn{unformats} the diversion +specified as an argument in such a way that @sc{ascii} characters that +were formatted and diverted will be treated like ordinary input +characters when the diversion is reread. For example, the following +will set register @code{n} to@w{ }1. @example -.tr @@. -.di x -@@nr\ n\ 1 +.tr @@. +.di x +@@nr\ n\ 1 .br .di -.tr @@@@ -.asciify x +.tr @@@@ +.asciify x .x @end example - -@c distribute these through the text -@xref{Copy-in Mode} +@xref{Copy-in Mode}. @node Environments, I/O, Diversions, Programming Tutorial @section Environments @cindex environments -Often you will need to print some text in a certain format regardless -of what may be in effect at the time, for example, in a trap invoked -macro to print headers and footers. -To solve this groff has @dfn{environments} in which text is processed. -An environment contains most of the parameters that control -text processing. You can switch amongst these environments, by -default groff processes text in environment 0. -The following is the information kept in an environment. +Often you will need to print some text in a certain format regardless of +what may be in effect at the time, for example, in a trap invoked macro +to print headers and footers. To solve this @code{gtroff} has +@dfn{environments} in which text is processed. An environment contains +most of the parameters that control text processing. You can switch +amongst these environments; by default @code{gtroff} processes text in +environment@w{ }0. The following is the information kept in an +environment. @itemize @bullet{} @item -Type size +type size @item -Font (family and style) +font (family and style) @item -Page parameters +page parameters @item -Fill/adjust mode +fill/adjust mode @item -Tab stops +tab stops @item -Partially collected lines +partially collected lines @end itemize -These environments may be given arbitrary names -(@pxref{Identifiers}, for more info.) -Old versions of troff only had environments named 0, 1 and 2. +These environments may be given arbitrary names (@pxref{Identifiers}, +for more info). Old versions of troff only had environments named +@samp{0}, @samp{1} and@w{ }@samp{2}. @findex ev @vindex .ev -The @code{ev} request will switch among these environments. -The single argument is the name of the environment to switch to, with -no argument groff will switch back to the previous enviroment. -There is no limit on the number of named environments; -they will be created the first time that they are referenced. -The @code{.ev} number register contains +The @code{ev} request will switch among environments. The single +argument is the name of the environment to switch to. With no argument +@code{gtroff} will switch back to the previous environment. There is no +limit on the number of named environments; they will be created the +first time that they are referenced. The @code{.ev} register contains the name or number of the current environment. This is a string-valued register. +@c XXX example + @example ... page break macro, revised ... @end example +Here another example: + @example .ev footnote-env .fam N @@ -4952,28 +4956,30 @@ register. @node I/O, Postprocessor Access, Environments, Programming Tutorial @section I/O @cindex i/o +@cindex input and output requests +@cindex requests for input and output +@cindex output and input requests @findex so The @code{so} request will read in the file given as an argument and -include it in place of the @code{so} request. This is quite useful -for large documents, i.e.@: keeping each chapter in a separate file. +include it in place of the @code{so} request. This is quite useful for +large documents, i.e.@: keeping each chapter in a separate file. @xref{gsoelim}, for more information. @findex mso -The @code{mso} request is -the same as the @code{so} request except that file is searched for in -the same way that @file{tmac.@var{name}} is searched for when the -@samp{-m@var{name}} option is specified. +The @code{mso} request is the same as the @code{so} request except that +the file is searched for in the same way that @file{tmac.@var{name}} is +searched for when the @samp{-m@var{name}} option is specified. @findex cf -@findex trf -The @code{cf} and @code{trf} requests are to include a file. -It will transparently output the contents of file filename. Each -line is output -as it would be were it preceded by @code{\!}; however, the lines are not -subject to copy-mode interpretation. If the file does not end with a -newline, then a newline will be added. For example, you can define a -macro @code{x} containing the contents of file @file{f}, using +@cindex transparent output +@cindex output, transparent +The @code{cf} and @code{trf} requests are to include a file. It will +transparently output the contents of file filename. Each line is output +as it were preceded by @code{\!}; however, the lines are not subject to +copy-mode interpretation. If the file does not end with a newline, then +a newline will be added. For example, you can define a macro@w{ +}@code{x} containing the contents of file@w{ }@file{f}, using @example .di x @@ -4981,31 +4987,31 @@ macro @code{x} containing the contents of file @file{f}, using .di @end example -.cf filename -When used in a diversion, this will embed in the diversion an object -which, when reread, will cause the contents of filename to be -transparently copied through to the output. In @sc{Unix} troff, the contents -of filename is immediately copied through to the output regardless of -whether there is a current diversion; this behaviour is so anomalous -that it must be considered a bug. - +The request @w{@code{.cf @var{filename}}}, when used in a diversion, +will embed in the diversion an object which, when reread, will cause the +contents of @var{filename} to be transparently copied through to the +output. In @sc{Unix} @code{troff}, the contents of @var{filename} is +immediately copied through to the output regardless of whether there is +a current diversion; this behaviour is so anomalous that it must be +considered a bug. +@findex trf With @code{trf}, unlike @code{cf}, the file cannot contain characters such as NUL that are not legal troff input characters. @findex nx -The @code{nx} request will force groff to continue processing of the -file specified as an argument. +The @code{nx} request will force @code{gtroff} to continue processing of +the file specified as an argument. @findex rd -The @code{rd} request will read from standard input, and include what -is read as though it were part of the input file. Text is read until -a blank line is encountered. +The @code{rd} request will read from standard input, and include what is +read as though it were part of the input file. Text is read until a +blank line is encountered. @cindex form letters @cindex letters, form -Using these two requests you can set up form letters. -The form letter template is constructed like this: +Using these two requests you can set up form letters. The form letter +template is constructed like this: @example .ce @@ -5022,13 +5028,13 @@ Body of letter. @end example @findex ex -When this is run, the following file should be redirected in. -Note that requests included in this file are executed as though they -were part of the form letter. The last block of input is the -@code{ex} requests which tells groff to stop processing. If this was -not there, groff would not know when to stop. +@noindent +When this is run, the following file should be redirected in. Note that +requests included in this file are executed as though they were part of +the form letter. The last block of input is the @code{ex} requests +which tells groff to stop processing. If this was not there, groff +would not know when to stop. -@cindex Beagle Brothers @example Trent A. Fisher 708 NW 19th Av., #202 @@ -5048,15 +5054,20 @@ Dear Mr. Adollar, @findex pi @code{pi} +@c XXX documentation + @findex sy The @code{sy} request will allow arbitrary system commands to be -executed from within a groff document. The output is not saved +executed from within a @code{gtroff} document. The output is not saved anyplace, so it is up to you to do so. +@c XXX add info about safer and unsafe mode + For example, the following example will introduce the current time into your document: -@cindex time +@cindex time, current +@cindex current time @pindex perl @example .sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\ @@ -5066,168 +5077,174 @@ into your document: \nH:\nM:\nS @end example -Note that this works by having the perl script (run by @code{sy}) +@noindent +Note that this works by having the @code{perl} script (run by @code{sy}) print out the @code{nr} requests which will set the number registers -@samp{H}, @samp{M} and @samp{S}, and then reads those commands in -with the @code{so} request. +@samp{H}, @samp{M} and @samp{S}, and then reads those commands in with +the @code{so} request. @vindex systat -The @code{systat} number register contains -The return value of the @code{system()} function executed by the last -@code{sy} request. +The @code{systat} number register contains the return value of the +@code{system()} function executed by the last @code{sy} request. @findex open -The @code{open} request will open -a file (specified as the second argument) for writing and associate -the stream (specified as the first argument) with it. +The @code{open} request will open a file (specified as the second +argument) for writing and associate the stream (specified as the first +argument) with it. @findex opena -The @code{opena} is -like open, but if filename exists, append to it instead of truncating -it. +The @code{opena} is like @code{open}, but if the file exists, append to +it instead of truncating it. @findex write @findex ds @cindex copy-in mode @cindex mode, copy-in The @code{write} request will write to the file associated with the -stream specified by the first argument. The stream must previously -have been the subject of an open request. The remainder of the line -in interpreted as the @code{ds} request reads its second argument: a -leading @code{"} will be stripped, and it will be read in copy-in mode. +stream specified by the first argument. The stream must previously have +been the subject of an open request. The remainder of the line is +interpreted as the @code{ds} request reads its second argument: A +leading @samp{"} will be stripped, and it will be read in copy-in mode. @findex close -The @code{close} request will -close the stream specified by the first argument; stream will no -longer be an acceptable argument to the @code{write} request. +The @code{close} request will close the stream specified by the first +argument; stream will no longer be an acceptable argument to the +@code{write} request. + +@c XXX example @example ... example of open write &c... @end example -@findex \v -The @code{\V} escape will -interpolate the contents of the specified environment variable, as returned -by getenv(3). -The argument to @code{\V} is specified as an identifier, i.e. -@samp{\V@var{x}}, @samp{\V(@var{xx}} or @samp{\V[@var{xxx}]}. -@code{\V} is interpreted in copy-in mode. +@findex \V +The @code{\V} escape will interpolate the contents of the specified +environment variable, as returned by @code{getenv()}. The argument to +@code{\V} is specified as an identifier, i.e.@: @samp{\V@var{x}}, +@samp{\V(@var{xx}} or @samp{\V[@var{xxx}]}. @code{\V} is interpreted in +copy-in mode. -@node Postprocessor Access, Miscellany, I/O, Programming Tutorial +@node Postprocessor Access, Miscellaneous, I/O, Programming Tutorial @section Postprocessor Access @cindex postprocessor access @cindex access of postprocessor -There are two escapes which will allow you to give information -directly to the postprocessor. This is particularly useful for -embedding PostScript into your final document. +There are two escapes which will allow you to give information directly +to the postprocessor. This is particularly useful for embedding +@sc{PostScript} into your final document. @findex \X -The @code{\X} escape will embed its argument into the gtroff output -preceded with @samp{x X}. +The @code{\X} escape will embed its argument into the @code{gtroff} +output preceded with @w{@samp{x X}}. @findex \Y -The @code{\Y} escape is called with an identifier (i.e. -@code{\Y@var{x}}, -@code{\Y(@var{xx}} or -@code{\Y[@var{xxx}]}). -This is approximately equivalent to @samp{\X'\*[@var{xxx}]'}. -However the contents -of the string or macro @var{xxx} are not interpreted; also it is -permitted for -@var{xxx} to have been defined as a macro and thus contain newlines -(it is not permitted for the argument to @code{\X} to contain newlines). -The inclusion of -newlines requires an extension to the @sc{Unix} troff output format, and will -confuse drivers that do not know about this extension. - - -@c distribute these through the text -@xref{Output Devices} - - -@node Miscellany, Debugging, Postprocessor Access, Programming Tutorial -@section Miscellany -@cindex miscellany - -This section contains parts of troff which cannot (yet) be +The @code{\Y} escape is called with an identifier (i.e.@: +@code{\Y@var{x}}, @code{\Y(@var{xx}} or @code{\Y[@var{xxx}]}). This is +approximately equivalent to @samp{\X'\*[@var{xxx}]'}. However, the +contents of the string or macro @var{xxx} are not interpreted; also it +is permitted for @var{xxx} to have been defined as a macro and thus +contain newlines (it is not permitted for the argument to @code{\X} to +contain newlines). The inclusion of newlines requires an extension to +the @sc{Unix} @code{troff} output format, and will confuse drivers that +do not know about this extension. + +@xref{Output Devices}. + + +@node Miscellaneous, Debugging, Postprocessor Access, Programming Tutorial +@section Miscellaneous +@cindex miscellaneous + +This section contains parts of @code{gtroff} which cannot (yet) be categorized elsewhere in this manual. @findex nm -Line numbers can be printed in the left margin -using the @code{nm} request. -The first argument is the line number of the @emph{next} output line, -this defaults to 1. -The second argument indicates on which lines numbers will be printed, -i.e.@: 5 means put line numbers on every 5 lines, this defaults to 1. -The third argument is the space to be left between the number and -your text, this defaults to 1. -The fourth argument is the indentation of the line numbers. +@cindex line numbers +@cindex numbers, line +Line numbers can be printed in the left margin using the @code{nm} +request. The first argument is the line number of the @emph{next} +output line; this defaults to@w{ }1. The second argument indicates on +which lines numbers will be printed, i.e.@: 5 means put line numbers on +every 5@w{ }lines; this defaults to@w{ }1. The third argument is the +space to be left between the number and your text; this defaults to@w{ +}1. The fourth argument is the indentation of the line numbers. Without arguments, line numbers are turned off. @findex nn -The @code{nn} request will temporarily turn off line numbering. -The first argument is the number of lines not to be numbered, -this defaults to 1. (does this disable incrementing or display?) +The @code{nn} request will temporarily turn off line numbering. The +first argument is the number of lines not to be numbered; this defaults +to@w{ }1. + +@c XXX (does this disable incrementing or display?) + +@c XXX example @example ... line numbering example ... @end example @findex mc -margin characters can be automatically printed to the right of your -text with the @code{mc} request. -The first argument is the character to be printed and the second -argument is the distance away from your text. -With no arguments the margin characters are turned off. -If this occurs before a break, no margin character will be printed. - -This is quite useful for indicating text that has changed, and, in -fact, there are programs available for doing this (they are called +@cindex margin characters +@cindex characters for margins +Margin characters can be automatically printed to the right of your text +with the @code{mc} request. The first argument is the character to be +printed, and the second argument is the distance away from your text. +With no arguments the margin characters are turned off. If this occurs +before a break, no margin character will be printed. + +@pindex nrchbar +@pindex changebar +This is quite useful for indicating text that has changed, and, in fact, +there are programs available for doing this (they are called @code{nrchbar} and @code{changebar} and can be found in any @samp{comp.sources.unix} archive. +@c XXX example + @example ... margin char example ... @end example @findex lf @pindex soelim -The @code{lf} primary reason for existence is to make debugging -documents which are split into many files, which are then put -together with @code{soelim} and other preprocessors. -The first argument is the name of the file and the second argument is -the input line number in that file. -This way troff can produce error messages which are intelligible to -the user. +@cindex multi-file documents +@cindex documents, multi-file +The primary reason for the existence of @code{lf} is to make debugging +documents which are split into many files, which are then put together +with @code{soelim} and other preprocessors. The first argument is the +name of the file and the second argument is the input line number in +that file. This way troff can produce error messages which are +intelligible to the user. + +@c XXX example @example ... example of soelim'ed doc ... @end example -@node Debugging, Implementation Differences, Miscellany, Programming Tutorial +@node Debugging, Implementation Differences, Miscellaneous, Programming Tutorial @section Debugging @cindex debugging -Troff is not easy to debug, but there are some useful features and -strategies for debugging. +@code{gtroff} is not easy to debug, but there are some useful features +and strategies for debugging. @itemize @bullet{} @item @findex tm -The @code{tm} request will send output to stderr, this is very useful for -printing debugging output. +The @code{tm} request will send output to stderr; this is very useful +for printing debugging output. @item When doing something involved it is useful to leave the debugging -statements in the code and have them turned on by a command line -flag. +statements in the code and have them turned on by a command line flag. @example .if \n(DB .tm debugging output @end example +@noindent Then you can activate these statements with: @example @@ -5236,114 +5253,133 @@ groff -rDB=1 file @item @findex ab -The @code{ab} request is similar to the @code{tm} request, -except that it will cause groff to stop processing. -With no argument it will print @samp{User Abort}. +@cindex aborting +The @code{ab} request is similar to the @code{tm} request, except that +it will cause @code{gtroff} to stop processing. With no argument it +will print @samp{User Abort}. @item @findex ex -The @code{ex} request will also cause groff to stop processing. +@cindex exiting +The @code{ex} request will also cause @code{gtroff} to stop processing +(if encountered at the topmost level; see also @ref{I/O}. @item -If you know you are going to get many errors and no useful output, -you can tell groff to suppress formatted output with the @samp{-z} +If you know you are going to get many errors and no useful output, you +can tell @code{gtroff} to suppress formatted output with the @samp{-z} flag. @item @findex pm +@cindex dumping symbol table +@cindex symbol table, dumping The @code{pm} request will dump out the entire symbol table. @item @findex pnr +@cindex dumping number registers +@cindex number registers, dumping The @code{pnr} request will print the names and contents of all currently defined number registers on stderr. @item @findex ptr -The @code{ptr} request will -print the names and positions of all traps (not including input line -traps and diversion traps) on stderr. Empty slots in the page trap list -are printed as well, because they can affect the priority of -subsequently planted traps. +@cindex dumping traps +@cindex traps, dumping +The @code{ptr} request will print the names and positions of all traps +(not including input line traps and diversion traps) on stderr. Empty +slots in the page trap list are printed as well, because they can affect +the priority of subsequently planted traps. @item @findex fl -The @code{fl} request instructs groff to flush its output immediately. -The intention is that this be used when using troff interactively. -There is little other use for it. +@cindex flush output +@cindex output, flush +@cindex interactive use of @code{gtroff} +@cindex @code{gtroff}, interactive use +The @code{fl} request instructs @code{gtroff} to flush its output +immediately. The intention is that this be used when using +@code{gtroff} interactively. There is little other use for it. @item @findex backtrace -The @code{backtrace} request will -print a backtrace of the input stack on stderr. +@cindex backtrace of input stack +@cindex input stack, backtrace +The @code{backtrace} request will print a backtrace of the input stack +on stderr. @item -Groff has command line options for printing out more warnings -(@samp{-w}) and for printing backtraces (@samp{-b}) when a warning or -an error occurs. The most verbose level of warnings is @samp{-ww}. +@cindex warnings +@code{gtroff} has command line options for printing out more warnings +(@samp{-w}) and for printing backtraces (@samp{-b}) when a warning or an +error occurs. The most verbose level of warnings is @samp{-ww}. @item @findex warn @vindex .warn -The @code{warn} request controls the level of warnings checked for. -The one argument is the sum of the numbers associated with each -warning that is to be enabled; all other warnings will be disabled. -The number associated with each warning is listed below. -For example, @code{.warn 0} will disable all warnings, and -@code{.warn 1} will disable -all warnings except that about missing characters. If an argument -is not given, all warnings will be enabled. -The number register @code{.warn} contains the current warning level. +@cindex level of warnings +@cindex warnings, level +The @code{warn} request controls the level of warnings checked for. The +only argument is the sum of the numbers associated with each warning +that is to be enabled; all other warnings will be disabled. The number +associated with each warning is listed below. For example, +@w{@code{.warn 0}} will disable all warnings, and @w{@code{.warn 1}} +will disable all warnings except that about missing characters. If an +argument is not given, all warnings will be enabled. The number +register @code{.warn} contains the current warning level. @end itemize @subsection Warnings @cindex warnings -The warnings that can be given by troff are divided into the -following categories. The name associated with each warning is used -by the @samp{-w} and @samp{-W} options; the number is used by the -@code{warn} request, and by the @code{.warn} register. +The warnings that can be given to @code{gtroff} are divided into the +following categories. The name associated with each warning is used by +the @samp{-w} and @samp{-W} options; the number is used by the +@code{warn} request and by the @code{.warn} register. @table @samp -@item char +@item char @itemx 1 Non-existent characters. This is enabled by default. -@item number +@item number @itemx 2 Invalid numeric expressions. This is enabled by default. -@item break +@xref{Expressions}. +@item break @itemx 4 -In fill mode, lines which could not be broken so that -their length was less than the line length. This is -enabled by default. -@item delim +In fill mode, lines which could not be broken so that their length was +less than the line length. This is enabled by default. +@item delim @itemx 8 Missing or mismatched closing delimiters. -@item el +@item el @itemx 16 +@findex ie +@findex el Use of the @code{el} request with no matching @code{ie} request. -@xref{if-else}, for more information. -@item scale +@xref{if-else}. +@item scale @itemx 32 Meaningless scaling indicators. -@item range +@item range @itemx 64 Out of range arguments. -@item syntax +@item syntax @itemx 128 Dubious syntax in numeric expressions. -@item di +@item di @itemx 256 @findex di @findex da Use of @code{di} or @code{da} without an argument when there is no current diversion. -@item mac +@item mac @itemx 512 -Use of undefined strings, macros and diversions. -When an undefined string, macro or diversion is used, -that string is automatically defined as empty. So, -in most cases, at most one warning will be given for -each name. +@findex de +@c XXX more findex entries +Use of undefined strings, macros and diversions. When an undefined +string, macro or diversion is used, that string is automatically defined +as empty. So, in most cases, at most one warning will be given for each +name. @item reg @itemx 1024 -Use of undefined number registers. When an undefined -number register is used, that register is -automatically defined to have a value of 0. a -definition is automatically made with a value of 0. -So, in most cases, at most one warning will be given -for use of a particular name. +@findex nr +@c XXX more findex entries +Use of undefined number registers. When an undefined number register is +used, that register is automatically defined to have a value of@w{ }0. +A definition is automatically made with a value of@w{ }0. So, in most +cases, at most one warning will be given for use of a particular name. @item tab @itemx 2048 Use of a tab character where a number was expected. @@ -5359,26 +5395,24 @@ Requests that are missing non-optional arguments. Illegal input characters. @item escape @itemx 32768 -Unrecognized escape sequences. When an unrecognized -escape sequence is encountered, the escape character -is ignored. +Unrecognized escape sequences. When an unrecognized escape sequence is +encountered, the escape character is ignored. @item space @itemx 65536 -Missing space between a request or macro and its -argument. This warning will be given when an -undefined name longer than two characters is -encountered, and the first two characters of the name -make a defined name. The request or macro will not -be invoked. When this warning is given, no macro is -automatically defined. This is enabled by default. +@cindex compatibility mode +Missing space between a request or macro and its argument. This warning +will be given when an undefined name longer than two characters is +encountered, and the first two characters of the name make a defined +name. The request or macro will not be invoked. When this warning is +given, no macro is automatically defined. This is enabled by default. This warning will never occur in compatibility mode. @item font @itemx 131072 Non-existent fonts. This is enabled by default. @item all All warnings except @samp{di}, @samp{mac} and @samp{reg}. It is -intended that this covers -all warnings that are useful with traditional macro packages. +intended that this covers all warnings that are useful with traditional +macro packages. @item w All warnings. @end table @@ -5388,11 +5422,16 @@ All warnings. @section Implementation Differences @cindex implementation differences @cindex differences in implementation +@cindex compatibility mode +@cindex mode, compatibility -GNU troff has a number of features which cause incompatibilites with -documents written with old versions of troff. +GNU @code{troff} has a number of features which cause incompatibilities +with documents written with old versions of @code{troff}. -Long names cause some incompatibilities. @sc{Unix} troff will interpret +@cindex long names +@cindex names, long +Long names cause some incompatibilities. @sc{Unix} @code{troff} will +interpret @example .dsabcd @@ -5402,60 +5441,79 @@ Long names cause some incompatibilities. @sc{Unix} troff will interpret @findex \n @findex cp @vindex .C -as defining a string @samp{ab} with contents @samp{cd}. -Normally, GNU troff will interpret this as a call of a macro named -@code{dsabcd}. Also @sc{Unix} troff will interpret @code{\*[} or -@code{\n[} as references to a string or number register called -@samp{[}. In GNU troff, however, this will normally be interpreted as the -start of a long name. In compatibility mode GNU troff will interpret -these things in the traditional way. In compatibility mode, however, -long names are not recognised. Compatibility mode can be turned on with -the @samp{-C} command line option, and turned on or off with the -@code{cp} request. -The number register @code{.C} is 1 if compatibility mode is on, 0 otherwise. +@noindent +as defining a string @samp{ab} with contents @samp{cd}. Normally, GNU +@code{troff} will interpret this as a call of a macro named +@code{dsabcd}. Also @sc{Unix} @code{troff} will interpret @code{\*[} or +@code{\n[} as references to a string or number register called @samp{[}. +In GNU @code{troff}, however, this will normally be interpreted as the +start of a long name. In compatibility mode GNU @code{troff} will +interpret these things in the traditional way. In compatibility mode, +however, long names are not recognized. Compatibility mode can be +turned on with the @samp{-C} command line option, and turned on or off +with the @code{cp} request. The number register @code{.C} is@w{ }1 if +compatibility mode is on, 0@w{ }otherwise. @findex \A -GNU troff does not allow the use of the escape sequences -@samp{\| \^ \& \@} \@{ \@key{SP} \' \` \- \_ \! \% \c} in names of -strings, macros, -diversions, number registers, fonts or environments; @sc{Unix} troff does. -The @code{\A} escape sequence may be helpful in avoiding use of these escape +@findex \| +@findex \^ +@findex \& +@findex \@} +@findex \@{ +@findex \@key{SP} +@findex \' +@findex \` +@findex \- +@findex \_ +@findex \! +@findex \% +@findex \c +GNU @code{troff} does not allow the use of the escape sequences +@code{\|}, @code{\^}, @code{\&}, @code{\@}}, @code{\@{}, +@code{\@key{SP}}, @code{\'}, @code{\`}, @code{\-}, @code{\_}, @code{\!}, +@code{\%}, and @code{\c} in names of strings, macros, diversions, number +registers, fonts or environments; @sc{Unix} @code{troff} does. The +@code{\A} escape sequence may be helpful in avoiding use of these escape sequences in names. @cindex fractional point sizes @cindex point sizes, fractional @findex ps -Fractional pointsizes cause one noteworthy incompatibility. In @sc{Unix} -troff the @code{ps} request ignores scale indicators and so +Fractional pointsizes cause one noteworthy incompatibility. In +@sc{Unix} @code{troff} the @code{ps} request ignores scale indicators +and thus @example .ps 10u @end example -will set the pointsize to 10 points, whereas in GNU troff it will set -the pointsize to 10 scaled points. -@xref{Fractional Type Sizes}, for more information. +@noindent +will set the pointsize to 10@w{ }points, whereas in GNU @code{troff} it +will set the pointsize to 10@w{ }scaled points. @xref{Fractional Type +Sizes}, for more information. @findex bd @findex cs @findex tkf @findex tr @findex fp -In GNU troff there is a fundamental difference between unformatted, -input characters, and formatted, output characters. Everything that -affects how an output character will be output is stored with the -character; once an output character has been constructed it is +@cindex input and output characters +@cindex output characters +@cindex characters, input and output +In GNU @code{troff} there is a fundamental difference between +unformatted, input characters, and formatted, output characters. +Everything that affects how an output character will be output is stored +with the character; once an output character has been constructed it is unaffected by any subsequent requests that are executed, including -@code{bd}, @code{cs}, @code{tkf}, @code{tr}, or @code{fp} -requests. Normally output characters are constructed -from input characters at the moment immediately before the character is -added to the current output line. Macros, diversions and strings are -all, in fact, the same type of object; they contain lists of input -characters and output characters in any combination. An output -character does not behave like an input character for the purposes of -macro processing; it does not inherit any of the special properties that -the input character from which it was constructed might have had. For -example, +@code{bd}, @code{cs}, @code{tkf}, @code{tr}, or @code{fp} requests. +Normally output characters are constructed from input characters at the +moment immediately before the character is added to the current output +line. Macros, diversions and strings are all, in fact, the same type of +object; they contain lists of input characters and output characters in +any combination. An output character does not behave like an input +character for the purposes of macro processing; it does not inherit any +of the special properties that the input character from which it was +constructed might have had. For example, @example .di x @@ -5468,36 +5526,40 @@ example, @findex \e @findex \! @findex \? -will print @samp{\\} in GNU troff; each pair of input backslashes is -turned into one -output backslash and the resulting output backslashes are not -interpreted as escape -characters when they are reread. @sc{Unix} troff would interpret them as -escape characters when they were reread and would end up printing one -@samp{\}. -The correct way to obtain a printable backslash is to use the -@code{\e} escape -sequence: this will always print a single instance of the current escape +@cindex transparent output +@cindex output, transparent +@noindent +will print @samp{\\} in GNU @code{troff}; each pair of input backslashes +is turned into one output backslash and the resulting output backslashes +are not interpreted as escape characters when they are reread. +@sc{Unix} @code{troff} would interpret them as escape characters when +they were reread and would end up printing one @samp{\}. The correct +way to obtain a printable backslash is to use the @code{\e} escape +sequence: This will always print a single instance of the current escape character, regardless of whether or not it is used in a diversion; it -will also work in both GNU troff and @sc{Unix} troff. If you wish for some -reason to store in a diversion an escape sequence that will be -interpreted when the diversion is reread, you can either use the -traditional @code{\!} transparent output facility, or, if this is unsuitable, -the new @code{\?} escape sequence. @xref{Diversions}, for more information. +will also work in both GNU @code{troff} and @sc{Unix} @code{troff}. If +you wish for some reason to store in a diversion an escape sequence that +will be interpreted when the diversion is reread, you can either use the +traditional @code{\!} transparent output facility, or, if this is +unsuitable, the new @code{\?} escape sequence. + +@xref{Diversions}, for more information. @node Summary, , Implementation Differences, Programming Tutorial @section Summary @cindex summary +@c XXX documentation + @node Preprocessors, Output Devices, Programming Tutorial, Top @chapter Preprocessors @cindex preprocessors -This chapter covers describes all preprocessors that come with -@code{groff} or which are freely available. +This chapter describes all preprocessors that come with @code{groff} or +which are freely available. @menu * geqn:: @@ -5515,6 +5577,8 @@ This chapter covers describes all preprocessors that come with @cindex @code{eqn} @cindex @code{geqn} +@c XXX + @menu * Invoking geqn:: @end menu @@ -5524,12 +5588,16 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{geqn} @cindex @code{geqn}, invoking +@c XXX + @node gtbl, gpic, geqn, Preprocessors @section @code{gtbl} @cindex @code{tbl} @cindex @code{gtbl} +@c XXX + @menu * Invoking gtbl:: @end menu @@ -5539,12 +5607,16 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{gtbl} @cindex @code{gtbl}, invoking +@c XXX + @node gpic, ggrn, gtbl, Preprocessors @section @code{gpic} @cindex @code{pic} @cindex @code{gpic} +@c XXX + @menu * Invoking gpic:: @end menu @@ -5554,12 +5626,16 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{gpic} @cindex @code{gpic}, invoking +@c XXX + @node ggrn, grap, gpic, Preprocessors @section @code{ggrn} @cindex @code{grn} @cindex @code{ggrn} +@c XXX + @menu * Invoking ggrn:: @end menu @@ -5569,12 +5645,19 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{ggrn} @cindex @code{ggrn}, invoking +@c XXX + @node grap, grefer, ggrn, Preprocessors @section @code{grap} @cindex @code{grap} -@code{grap} is available as an extra package, written by Ted Faber. +A freely available implementation of @code{grap}, written by Ted Faber, +is available as an extra package from the following address: + +@display +@url{http://www.lunabase.org/~faber/Vault/software/grap/} +@end display @node grefer, gsoelim, grap, Preprocessors @@ -5582,6 +5665,8 @@ This chapter covers describes all preprocessors that come with @cindex @code{refer} @cindex @code{grefer} +@c XXX + @menu * Invoking grefer:: @end menu @@ -5591,12 +5676,16 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{grefer} @cindex @code{grefer}, invoking +@c XXX + @node gsoelim, , grefer, Preprocessors @section @code{gsoelim} @cindex @code{soelim} @cindex @code{gsoelim} +@c XXX + @menu * Invoking gsoelim:: @end menu @@ -5606,6 +5695,8 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{gsoelim} @cindex @code{gsoelim}, invoking +@c XXX + @node Output Devices, File formats, Preprocessors, Top @@ -5613,12 +5704,15 @@ This chapter covers describes all preprocessors that come with @cindex output devices @cindex devices for output +@c XXX + @menu * Special Characters:: * grotty:: * grops:: * grodvi:: * grolj4:: +* grolbp:: * grohtml:: * gxditview:: @end menu @@ -5629,14 +5723,17 @@ This chapter covers describes all preprocessors that come with @cindex special characters @cindex characters, special -@c distribute these through the text -@xref{Font Files} +@c XXX + +@xref{Font Files}. @node grotty, grops, Special Characters, Output Devices @section @code{grotty} @cindex @code{grotty} +@c XXX + @menu * Invoking grotty:: @end menu @@ -5646,11 +5743,15 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{grotty} @cindex @code{grotty}, invoking +@c XXX + @node grops, grodvi, grotty, Output Devices @section @code{grops} @cindex @code{grops} +@c XXX + @menu * Invoking grops:: * Embedding PostScript:: @@ -5661,16 +5762,22 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{grops} @cindex @code{grops}, invoking +@c XXX + @node Embedding PostScript, , Invoking grops, grops @subsection Embedding PostScript @cindex embedding postscript @cindex postscript, embedding +@c XXX + @node grodvi, grolj4, grops, Output Devices @section @code{grodvi} @cindex @code{grodvi} +@c XXX + @menu * Invoking grodvi:: @end menu @@ -5680,11 +5787,15 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{grodvi} @cindex @code{grodvi}, invoking +@c XXX + -@node grolj4, grohtml, grodvi, Output Devices +@node grolj4, grolbp, grodvi, Output Devices @section @code{grolj4} @cindex @code{grolj4} +@c XXX + @menu * Invoking grolj4:: @end menu @@ -5694,11 +5805,33 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{grolj4} @cindex @code{grolj4}, invoking +@c XXX + + +@node grolbp, grohtml, grolj4, Output Devices +@section @code{grolbp} +@cindex @code{grolbp} -@node grohtml, gxditview, grolj4, Output Devices +@c XXX + +@menu +* Invoking grolbp:: +@end menu + +@node Invoking grolbp, , grolbp, grolbp +@subsection Invoking @code{grolbp} +@cindex invoking @code{grolbp} +@cindex @code{grolbp}, invoking + +@c XXX + + +@node grohtml, gxditview, grolbp, Output Devices @section @code{grohtml} @cindex @code{grohtml} +@c XXX + @menu * Invoking grohtml:: @end menu @@ -5708,11 +5841,15 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{grohtml} @cindex @code{grohtml}, invoking +@c XXX + @node gxditview, , grohtml, Output Devices @section @code{gxditview} @cindex @code{gxditview} +@c XXX + @menu * Invoking gxditview:: @end menu @@ -5722,6 +5859,9 @@ This chapter covers describes all preprocessors that come with @cindex invoking @code{gxditview} @cindex @code{gxditview}, invoking +@c XXX +@c X11's xditview + @node File formats, Installation, Output Devices, Top @@ -5729,6 +5869,8 @@ This chapter covers describes all preprocessors that come with @cindex file formats @cindex formats, file +@c XXX + @menu * gtroff Output:: * Font Files:: @@ -5740,82 +5882,116 @@ This chapter covers describes all preprocessors that come with @cindex @code{gtroff} output @cindex output, @code{gtroff} +This section describes the format output of GNU @code{troff}. The +output format used by GNU @code{troff} is very similar to that used by +@sc{Unix} device-independent @code{troff} (@code{ditroff}). + +@menu +* Output Format:: +* Device Control:: +* Drawing Functions:: +* Line Continuation:: +@end menu -This section describes the format output by GNU troff. The output -format used by GNU troff is very similar to that used by @sc{Unix} -device-independent troff. +@node Output Format, Device Control, gtroff Output, gtroff Output +@subsection Output Format +@cindex output format +@cindex format of output +@cindex 8-bit input +@cindex input, 8-bit The output format is text based, as opposed to a binary format (like -@TeX{} dvi). -The output format is 8 bit clean, thus single characters can have the -eighth bit set, as can the names of fonts and special characters. +@TeX{} dvi). The output format is @w{8-bit} clean, thus single +characters can have the eighth bit set, as can the names of fonts and +special characters. The output format consists of single command characters with attached -parameters which are separated from subsequent text by whitespace, or -a newline. +parameters which are separated from subsequent text by whitespace or a +newline. -The names of characters and fonts an be of arbitrary length; drivers +The names of characters and fonts can be of arbitrary length; drivers should not assume that they will be only two characters long (as -device-independent troff did). +@code{ditroff} does). When a character is to be printed, that character will always be in the -current font. -Unlike device-independent troff, it is not necessary for -drivers to search special fonts to find a character. +current font. Unlike @code{ditroff}, it is not necessary for drivers to +search special fonts to find a character. @table @code @item H@var{n} +@c XXX @item V@var{n} +@c XXX @item h@var{n} +@c XXX @item v@var{n} +@c XXX @item c@var{n} +@c XXX @item C@var{n} +@c XXX @item @var{nn}@var{c} +@c XXX @item t@var{xxx} @var{xxx} is any sequence of characters terminated by a space or a -newline; the first character should be printed at the current -position, the the current horizontal position should be increased by -the width of the first character, and so on for each character. -The width of the character is that given in the font file, -appropriately scaled for the current point size, -and rounded so that it is a multiple of the horizontal resolution. -Special characters cannot be printed using this command. - -This command is only allowed if the @samp{tcommand} line is present -in the @file{DESC} file. -@item u@var{n} @var{xxx} +newline; the first character should be printed at the current position, +the the current horizontal position should be increased by the width of +the first character, and so on for each character. The width of the +character is that given in the font file, appropriately scaled for the +current point size, and rounded so that it is a multiple of the +horizontal resolution. Special characters cannot be printed using this +command. + +@kindex tcommand @pindex DESC -This is same as the @code{t} command except that after printing each +This command is only allowed if the @samp{tcommand} line is present in +the @file{DESC} file. +@item u@var{n} @var{xxx} +This is same as the @samp{t} command except that after printing each character, the current horizontal position is increased by the sum of -the width of that character and @code{n}. +the width of that character and@w{ }@var{n}. -This command is only allowed if the @samp{tcommand} line is present -in the @file{DESC} file. +This command is only allowed if the @samp{tcommand} line is present in +the @file{DESC} file. @item n@var{a}@var{b} +@c XXX @item p@var{n} +@c XXX @item s@var{n} -The argument to the s command is in scaled points (units of points/n, -where n is the argument to the sizescale command in the DESC file.) +@kindex sizescale +@pindex DESC +The argument to the @samp{s} command is in scaled points (units of +points/@var{n}, where @var{n} is the argument to the @samp{sizescale} +command in the @file{DESC} file). @item f@var{n} @item x @dots{} \n Device control. +@c XXX more info @item D@var{c} @var{x}@dots{}\n +@c XXX @end table +@node Device Control, Drawing Functions, Output Format, gtroff Output @subsection Device Control +@cindex device control +@cindex control of devices -The @code{x} command is normally followed by a letter or word -indicating the function to perform, followed by white space separated -arguments. +The @samp{x} command is normally followed by a letter or word indicating +the function to perform, followed by white space separated arguments. The first argument can be abreviated to the first letter. @table @code @item x init +@c XXX @item x T +@c XXX @item x res @var{n} @var{h} @var{v} +@c XXX @item x H -The argument to the x Height command is also in scaled points. +@c XXX more info +The argument to the @w{@samp{x Height}} command is also in scaled +points. @end table The first three output commands are guaranteed to be: @@ -5826,88 +6002,124 @@ x res n h v x init @end example -For example, the input @samp{crunchy \fH\s+2frog\s0\fP!?} will produce: +@noindent +For example, the input + +@example +crunchy \fH\s+2frog\s0\fP!? +@end example + +@noindent +will produce + +@c XXX example @example ... sample output here ... @end example +@node Drawing Functions, Line Continuation, Device Control, gtroff Output @subsection Drawing Functions +@cindex drawing functions +@cindex functions for drawing + +@pindex gpic +The @samp{D} drawing command has been extended. These extensions will +only be used by GNU @code{pic} if the @samp{-x} option is given. -The D drawing command has been extended. These extensions will only be -used by GNU pic if the -x option is given. +@xref{Drawing Requests}. @table @code -... -@item Df n\n -Set the shade of gray to be used for filling solid objects to n; n must -be an integer between 0 and 1000, where 0 corresponds solid white and -1000 to solid black, and values in between correspond to intermediate -shades of gray. This applies only to solid circles, solid ellipses and -solid polygons. By default, a level of 1000 will be used. Whatever -color a solid object has, it should completely obscure everything -beneath it. A value greater than 1000 or less than 0 can also be used: -this means fill with the shade of gray that is currently being used for -lines and text. Normally this will be black, but some drivers may -provide a way of changing this. -@item DC d\n -Draw a solid circle with a diameter of d with the leftmost point at the -current position. -@item DE dx dy\n -Draw a solid ellipse with a horizontal diameter of dx and a vertical -diameter of dy with the leftmost point at the current position. -@item Dp $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub -n$\n -Draw a polygon with, for $i = 1 ,..., n+1$, the i-th vertex at the -current position $+ sum from j=1 to i-1 ( dx sub j , dy sub j )$. At -the moment, GNU pic only uses this command to generate triangles and -rectangles. -@item DP $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub -n$\n -Like Dp but draw a solid rather than outlined polygon. -@item Dt n\n -Set the current line thickness to n machine units. Traditionally @sc{Unix} -troff drivers use a line thickness proportional to the current point -size; drivers should continue to do this if no Dt command has been -given, or if a Dt command has been given with a negative value of n. A -zero value of n selects the smallest available line thickness. +@c XXX ... +@item Df @var{n} +Set the shade of gray to be used for filling solid objects to@w{ +}@var{n}; @var{n}@w{ }must be an integer between 0 and@w{ }1000, where 0 +corresponds solid white and 1000 to solid black, and values in between +correspond to intermediate shades of gray. This applies only to solid +circles, solid ellipses and solid polygons. By default, a level of@w{ +}1000 will be used. Whatever color a solid object has, it should +completely obscure everything beneath it. A value greater than@w{ }1000 +or less than@w{ }0 can also be used: this means fill with the shade of +gray that is currently being used for lines and text. Normally this +will be black, but some drivers may provide a way of changing this. +@item DC @var{d} +Draw a solid circle with a diameter of@w{ }@var{d} with the leftmost +point at the current position. +@item DE @var{dx} @var{dy} +Draw a solid ellipse with a horizontal diameter of@w{ }@var{dx} and a +vertical diameter of@w{ }@var{dy} with the leftmost point at the current +position. +@item Dp @var{dx1} @var{dy1} @var{dx2} @var{dy2} @dots{} @var{dxn} @var{dyn} +Draw a polygon with. The first vertex is at the current position, the +second vertex at an offset (@var{dx1},@var{dy1}) from the current +position, the second vertex at an offset (@var{dx2},@var{dy2}) from the +first vertex, and so on up to the @var{n}-th vertex. At the moment, GNU +@code{pic} only uses this command to generate triangles and rectangles. +@item DP @var{dx1} @var{dy1} @var{dx2} @var{dy2} @dots{} @var{dxn} @var{dyn} +Like @code{Dp} but draw a solid rather than outlined polygon. +@item Dt @var{n} +@cindex line thickness +@cindex thickness of lines +Set the current line thickness to @var{n}@w{ }machine units. +Traditionally, @sc{Unix} @code{troff} drivers use a line thickness +proportional to the current point size; drivers should continue to do +this if no @code{Dt} command has been given, or if a @code{Dt} command +has been given with a negative value of@w{ }@var{n}. A zero value of@w{ +}@var{n} selects the smallest available line thickness. @end table +@findex \D A difficulty arises in how the current position should be changed after the execution of these commands. This is not of great importance since -the code generated by GNU pic does not depend on this. Given a drawing -command of the form +the code generated by GNU @code{pic} does not depend on this. Given a +drawing command of the form -\D'c $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$' +@example +\D'@var{c} @var{x1} @var{y1} @var{x2} @var{y2} @dots{} @var{xn} @var{yn}' +@end example -where c is not one of c, e, l, a or ~, @sc{Unix} troff will treat each of the -$x sub i$ as a horizontal quantity, and each of the $y sub i$ as a -vertical quantity and will assume that the width of the drawn object is -$sum from i=1 to n x sub i$, and that the height is $sum from i=1 to n y -sub i$. (The assumption about the height can be seen by examining the -st and sb registers after using such a D command in a \w escape -sequence.) This rule also holds for all the original drawing commands -with the exception of De. For the sake of compatibility GNU troff also -follows this rule, even though it produces an ugly result in the case of -the Df, Dt, and, to a lesser extent, DE commands. Thus after executing -a D command of the form +@findex \w +@vindex st +@findex sb +@noindent +where @var{c} is not one of @samp{c}, @samp{e}, @samp{l}, @samp{a} or +@samp{~}, @sc{Unix} @code{troff} will treat each of the x@w{ }value as a +horizontal quantity, and each of the y@w{ }values as a vertical quantity +and will assume that the width of the drawn object is sum if all x@w{ +}values, and that the height is the sum of all y@w{ }values. (The +assumption about the height can be seen by examining the @code{st} and +@code{sb} registers after using such a @code{D}@w{ }command in a +@code{\w} escape sequence.) This rule also holds for all the original +drawing commands with the exception of @code{De}. For the sake of +compatibility GNU @code{troff} also follows this rule, even though it +produces an ugly result in the case of the @code{Df}, @code{Dt}, and, to +a lesser extent, @code{DE}@w{ }commands. Thus after executing a +@code{D}@w{ }command of the form -Dc $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\n +@example +D@var{c} @var{x1} @var{y1} @var{x2} @var{y2} @dots{} @var{xn} @var{yn} +@end example -the current position should be increased by $( sum from i=1 to n x sub i -, sum from i=1 to n y sub i )$. +@noindent +the current position should be increased horizontally by the sum of all +x@w{ }values and vertically by the sum of all y@w{ }values. +@node Line Continuation, , Drawing Functions, gtroff Output @subsection Line Continuation - -There is a continuation convention which permits the argument to the x X -command to contain newlines: when outputting the argument to the x X -command, GNU troff will follow each newline in the argument with a + -character (as usual, it will terminate the entire argument with a -newline); thus if the line after the line containing the x X command -starts with +, then the newline ending the line containing the x X -command should be treated as part of the argument to the x X command, -the + should be ignored, and the part of the line following the + should -be treated like the part of the line following the x X command. +@cindex line continuation in output commands +@cindex output commands, line continuation + +There is a continuation convention which permits the argument to the +@w{@samp{x X}} command to contain newlines: When outputting the argument +to the @w{@samp{x X}} command, GNU @code{troff} will follow each newline +in the argument with a @samp{+} character (as usual, it will terminate +the entire argument with a newline); thus if the line after the line +containing the @w{@samp{x X}} command starts with @samp{+}, then the +newline ending the line containing the @w{@samp{x X}} command should be +treated as part of the argument to the @w{@samp{x X}} command, the +@samp{+} should be ignored, and the part of the line following the +@samp{+} should be treated like the part of the line following the +@w{@samp{x X}} command. @node Font Files, , gtroff Output, File formats @@ -5915,142 +6127,187 @@ be treated like the part of the line following the x X command. @cindex font files @cindex files, font -The groff font format is roughly a superset of the ditroff font -format. Unlike the ditroff font format, there is no associated binary -format. The font files for device name are stored in a directory -@file{dev@var{name}}. There are two types of file: a device -description file called @file{DESC} and for each font @samp{F} a font -file called @file{F}. These are text files; there is no associated -binary format. +The @code{gtroff} font format is roughly a superset of the +@code{ditroff} font format. Unlike the @code{ditroff} font format, +there is no associated binary format; all files are text files. The +font files for device @var{name} are stored in a directory +@file{dev@var{name}}. There are two types of file: a device description +file called @file{DESC} and for each font@w{ }@samp{F} a font file +called@w{ }@file{F}. + +@menu +* DESC file format:: +* Font file format:: +@end menu +@node DESC file format, Font file format, Font Files, Font Files @subsection @file{DESC} file format +@cindex @file{DESC} file format +@cindex font description file format +@cindex format of font description file @pindex DESC The @file{DESC} file can contain the following types of line: @table @code +@kindex res @item res @var{n} There are @var{n} machine units per inch. +@kindex hor @item hor @var{n} The horizontal resolution is @var{n} machine units. +@kindex vert @item vert @var{n} The vertical resolution is @var{n} machine units. +@kindex sizescale @item sizescale @var{n} -The scale factor for pointsizes. By default this has a value of 1. One -scaled point is equal to one point/@var{n}. The arguments to the +The scale factor for pointsizes. By default this has a value of@w{ }1. +One scaled point is equal to one point/@var{n}. The arguments to the @code{unitwidth} and @code{sizes} commands are given in scaled points. @xref{Fractional Type Sizes}, for more information. +@kindex unitwidth @item unitwidth @var{n} -Quantities in the font files are given in machine units for fonts whose -point size is @var{n} scaled points. +Quantities in the font files are given in machine units for fonts whose +point size is @var{n}@w{ }scaled points. +@kindex tcommand @item tcommand -This means that the postprocessor can handle the @code{t} and -@code{u} output commands. -@item sizes @var{s1} @var{s2}@dots{}@var{sn} 0 -This means that the device has fonts at @var{s1}, @var{s2}, -@dots{}@var{sn} scaled points. The list of sizes must be terminated -by a 0. Each @var{si} can also be a range of -sizes @var{m}-@var{n}. The list can extend over more than one line. -@item styles @var{S1 S2@dots{}Sm} -The first @var{m} font positions will be associated with styles -@var{S1}@dots{}@var{Sm}. -@item fonts @var{n} @var{F1 F2 F3@dots{}Fn} -Fonts @var{F1@dots{}Fn} will be mounted in the font positions -@var{m}+1, @dots{}, @var{m}+@var{n} where @var{m} -is the number of styles. This command may extend over more than one -line. A font name of 0 will cause no font to be mounted on the -corresponding font position. +This means that the postprocessor can handle the @samp{t} and @samp{u} +output commands. +@kindex sizes +@item sizes @var{s1} @var{s2} @dots{} @var{sn} 0 +This means that the device has fonts at @var{s1}, @var{s2}, @dots{} +@var{sn} scaled points. The list of sizes must be terminated by a@w{ +}0. Each @var{si} can also be a range of sizes @var{m}-@var{n}. The +list can extend over more than one line. +@kindex styles +@item styles @var{S1} @var{S2} @dots{} @var{Sm} +The first @var{m}@w{ }font positions will be associated with styles +@var{S1} @dots{} @var{Sm}. +@kindex fonts +@item fonts @var{n} @var{F1} @var{F2} @var{F3} @dots{} @var{Fn} +Fonts @var{F1} @dots{} @var{Fn} will be mounted in the font positions +@var{m}+1, @dots{}, @var{m}+@var{n} where @var{m} is the number of +styles. This command may extend over more than one line. A font name +of@var{ }0 will cause no font to be mounted on the corresponding font +position. +@kindex family @item family @var{fam} The default font family is @var{fam}. +@kindex charset @item charset This line and everything following in the file are ignored. It is allowed for the sake of backwards compatibility. @end table The @code{res}, @code{unitwidth}, @code{fonts} and @code{sizes} lines -are compulsory. Other commands are ignored by troff but may be used -by postprocessors to store arbitrary information about the device in -the @file{DESC} file. +are compulsory. Other commands are ignored by @code{gtroff} but may be +used by postprocessors to store arbitrary information about the device +in the @file{DESC} file. +@c XXX add other commands resp. xrefs to output devices +@c XXX add obsolete commands +@node Font file format, , DESC file format, Font Files @subsection Font file format +@cindex font file format +@cindex format of font files A font file has two sections. The first section is a sequence of lines each containing a sequence of blank delimited words; the first word in the line is a key, and subsequent words give a value for that key. @table @code +@kindex name @item name @var{F} -The name of the font is @var{F}. +The name of the font is@w{ }@var{F}. +@kindex spacewidth @item spacewidth @var{n} -The normal width of a space is @var{n}. +The normal width of a space is@w{ }@var{n}. +@kindex slant @item slant @var{n} -The characters of the font have a slant of @var{n} degrees. +The characters of the font have a slant of @var{n}@w{ }degrees. (Positive means forward.) -@item ligatures @var{lig1} @var{lig2}@dots{}@var{lign} [0] +@kindex ligatures +@item ligatures @var{lig1} @var{lig2} @dots{} @var{lign} [0] Characters @var{lig1}, @var{lig2}, @dots{}, @var{lign} are ligatures; -possible ligatures are ff, fi, fl and ffl. For backwards -compatibiliy, the list of ligatures may be terminated with a 0. The -list of ligatures may not extend over more than one line. +possible ligatures are @samp{ff}, @samp{fi}, @samp{fl}, @samp{ffi} and +@samp{ffl}. For backwards compatibiliy, the list of ligatures may be +terminated with a@w{ }0. The list of ligatures may not extend over more +than one line. +@kindex special @item special The font is special; this means that when a character is requested that is not present in the current font, it will be searched for in any special fonts that are mounted. @end table -Other commands are ignored by troff but may be used by postprocessors to -store arbitrary information about the font in the font file. +Other commands are ignored by @code{gtroff} but may be used by +postprocessors to store arbitrary information about the font in the font +file. -The first section can contain comments which start with the # character -and extend to the end of a line. +@cindex comments in font files +@cindex font files, comments +@kindex # +The first section can contain comments which start with the @samp{#} +character and extend to the end of a line. The second section contains one or two subsections. It must contain a @code{charset} subsection and it may also contain a @code{kernpairs} subsection. These subsections can appear in any order. Each subsection starts with a word on a line by itself. -The word @code{charset} starts the @code{charset} subsection. The -@code{charset} line is followed by a sequence of lines. Each line -gives information for one character. A line comprises a number of -fields separated by blanks or tabs. The format is +@kindex charset +The word @code{charset} starts the character set subsection. The +@code{charset} line is followed by a sequence of lines. Each line gives +information for one character. A line comprises a number of fields +separated by blanks or tabs. The format is -@display +@c XXX fix it for new HTML additions + +@example @var{name} @var{metrics} @var{type} @var{code} @var{comment} -@end display +@end example -@var{name} identifies the character: if @var{name} is a single -character @var{c} then it corresponds to the groff input character -@var{c}; if it is of the form @samp{\@var{c}} where @var{c} is a -single character, then it corresponds to the groff input character -@samp{\@var{c}}; otherwise it corresponds to the groff input character -@samp{\[@var{name}]} (if it is exactly two characters @var{xx} it can -be entered as @samp{\(@var{xx}}.) Groff supports eight bit characters; -however some utilities has difficulties with eight bit characters. -For this reason, there is a convention that the @var{name} -@samp{char@var{n}} is equivalent to the single character whose code is -@var{n}. For example, @samp{char163} would be equivalent to the -character with @var{code} 163 which is the pounds sterling sign in ISO -Latin-1 character set. The name @samp{---} is special and indicates -that the character is unnamed; such characters can only be used by -means of the @code{\N} escape sequence in troff. +@cindex 8-bit input +@cindex input, 8-bit +@findex \N +@kindex --- +@noindent +@var{name} identifies the character: If @var{name} is a single +character@w{ }@var{c} then it corresponds to the @code{gtroff} input +character @var{c}; if it is of the form @samp{\@var{c}} where @var{c} is +a single character, then it corresponds to the @code{gtroff} input +character@w{ }\@var{c}; otherwise it corresponds to the groff input +character @samp{\[@var{name}]}. (If it is exactly two characters +@var{xx} it can be entered as @samp{\(@var{xx}}.) @code{gtroff} +supports 8-bit characters; however some utilities have difficulties with +eight-bit characters. For this reason, there is a convention that the +name @samp{char@var{n}} is equivalent to the single character whose code +is@w{ }@var{n}. For example, @samp{char163} would be equivalent to the +character with code@w{ }163 which is the pounds sterling sign in @w{ISO +Latin-1} character set. The name @samp{---} is special and indicates +that the character is unnamed; such characters can only be used by means +of the @code{\N} escape sequence in troff. + +@c XXX input encodings vs. output encodings The @var{type} field gives the character type: @table @code @item 1 -means the character has an descender, for example, p; +the character has an descender, for example, `p'; @item 2 -means the character has an ascender, for example, b; +the character has an ascender, for example, `b'; @item 3 -means the character has both an ascender and a descender, for example, -@samp{(}. +the character has both an ascender and a descender, for example, `('. @end table The @var{code} field gives the code which the postprocessor uses to -print the character. The character can also be input to groff using -this code by means of the @code{\N} escape sequence. The code can be any -integer. If it starts with a 0 it will be interpreted as octal; if it -starts with 0x or 0X it will be intepreted as hexdecimal. +print the character. The character can also be input to @code{gtroff} +using this code by means of the @code{\N} escape sequence. The code can +be any integer. If it starts with @samp{0} it will be interpreted as +octal; if it starts with @samp{0x} or @samp{0X} it will be intepreted as +hexadecimal. Anything on the line after the @var{code} field will be ignored. @@ -6060,24 +6317,24 @@ The @var{metrics} field has the form: @var{width[,height[,depth[,italic_correction[,left_italic_correction[,subscript_correction]]]]]} @end smallexample -There must not be any spaces between these subfields. Missing -subfields are assumed to be 0. The subfields are all decimal -integers. Since there is no associated binary format, these values -are not required to fit into a variable of type @samp{char} as they -are in ditroff. The @var{width} subfields gives the width of the -character. The @var{height} subfield gives the height of the -character (upwards is positive); if a character does not extend above -the baseline, it should be given a zero height, rather than a negative -height. The @var{depth} subfield gives the depth of the character, -that is, the distance below the lowest point below the baseline to -which the character extends (downwards is positive); if a character -does not extend below above the baseline, it should be given a zero -depth, rather than a negative depth. The @var{italic_correction} -subfield gives the amount of space that should be added after the -character when it is immediately to be followed by a character from a -roman font. The @var{left_italic_correction} subfield gives the -amount of space that should be added before the character when it is -immediately to be preceded by a character from a roman font. The +There must not be any spaces between these subfields. Missing subfields +are assumed to be@w{ }0. The subfields are all decimal integers. Since +there is no associated binary format, these values are not required to +fit into a variable of type @samp{char} as they are in @code{ditroff}. +The @var{width} subfield gives the width of the character. The +@var{height} subfield gives the height of the character (upwards is +positive); if a character does not extend above the baseline, it should +be given a zero height, rather than a negative height. The @var{depth} +subfield gives the depth of the character, that is, the distance below +the lowest point below the baseline to which the character extends +(downwards is positive); if a character does not extend below above the +baseline, it should be given a zero depth, rather than a negative depth. +The @var{italic_correction} subfield gives the amount of space that +should be added after the character when it is immediately to be +followed by a character from a roman font. The +@var{left_italic_correction} subfield gives the amount of space that +should be added before the character when it is immediately to be +preceded by a character from a roman font. The @var{subscript_correction} gives the amount of space that should be added after a character before adding a subscript. This should be less than the italic correction. @@ -6088,19 +6345,22 @@ A line in the @code{charset} section can also have the format @var{name} " @end example +@noindent This indicates that @var{name} is just another name for the character mentioned in the preceding line. +@kindex kernpairs The word @code{kernpairs} starts the kernpairs section. This contains a sequence of lines of the form: -@display -@var{c1 c2 n} -@end display +@example +@var{c1} @var{c2} @var{n} +@end example This means that when character @var{c1} appears next to character -@var{c2} the space between them should be increased by @var{n}. Most -entries in kernpairs section will have a negative value for @var{n}. +@var{c2} the space between them should be increased by@w{ }@var{n}. +Most entries in kernpairs section will have a negative value for@w{ +}@var{n}. @@ -6108,6 +6368,8 @@ entries in kernpairs section will have a negative value for @var{n}. @chapter Installation @cindex installation +@c XXX + @node Request and Operator Index, Register Index, Installation, Top @@ -6117,23 +6379,21 @@ entries in kernpairs section will have a negative value for @var{n}. -@node Register Index, String Index, Request and Operator Index, Top +@node Register Index, Font File Keyword Index, Request and Operator Index, Top @chapter Register Index @printindex vr -@node String Index, Macro Index, Register Index, Top -@chapter String Index - +@node Font File Keyword Index, Program and File Index, Register Index, Top +@chapter Font File Keyword Index -@node Macro Index, Program and File Index, String Index, Top -@chapter Macro Index +@printindex ky -@node Program and File Index, Concept Index, Macro Index, Top +@node Program and File Index, Concept Index, Font File Keyword Index, Top @chapter Program and File Index @printindex pg diff --git a/man/groff_font.man b/man/groff_font.man index 3ab3281c..8b9e3b40 100644 --- a/man/groff_font.man +++ b/man/groff_font.man @@ -182,7 +182,8 @@ Characters are ligatures; possible ligatures are .BR ff , .BR fi , -.BR fl +.BR fl , +.B ffi and .BR ffl . For backwards compatibility, the list of ligatures may be terminated diff --git a/man/groff_out.man b/man/groff_out.man index 09098232..5e4c9068 100644 --- a/man/groff_out.man +++ b/man/groff_out.man @@ -1,6 +1,7 @@ '\" e -.ig \"-*- nroff -*- -Copyright (C) 1989-1999 Free Software Foundation, Inc. +.\" The above line should force the use of eqn as a preprocessor +.ig +Copyright (C) 1989-2000 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -230,3 +231,7 @@ should be treated like the part of the line following the command. .SH "SEE ALSO" .BR groff_font (@MAN5EXT@) +.\" +.\" Local Variables: +.\" mode: nroff +.\" End: |