summaryrefslogtreecommitdiffstats
path: root/contrib/groff/doc/groff-3
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/groff/doc/groff-3')
-rw-r--r--contrib/groff/doc/groff-3754
1 files changed, 483 insertions, 271 deletions
diff --git a/contrib/groff/doc/groff-3 b/contrib/groff/doc/groff-3
index b808a39..a7b1cd2 100644
--- a/contrib/groff/doc/groff-3
+++ b/contrib/groff/doc/groff-3
@@ -1,8 +1,9 @@
-This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
+This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
-This manual documents GNU `troff' version 1.18.
+This manual documents GNU `troff' version 1.19.
- Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
+Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -16,12 +17,390 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
-INFO-DIR-SECTION Miscellaneous
+INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

+File: groff, Node: ms Strings and Special Characters, Prev: ms TOC, Up: ms Page Layout
+
+Strings and Special Characters
+..............................
+
+ The `ms' macros provide the following predefined strings. You can
+change the string definitions to help in creating documents in
+languages other than English.
+
+ - String: \*[REFERENCES]
+ Contains the string printed at the beginning of the references
+ (bibliography) page. The default is `References'.
+
+ - String: \*[ABSTRACT]
+ Contains the string printed at the beginning of the abstract. The
+ default is `ABSTRACT'.
+
+ - String: \*[TOC]
+ Contains the string printed at the beginning of the table of
+ contents.
+
+ - String: \*[MONTH1]
+ - String: \*[MONTH2]
+ - String: \*[MONTH3]
+ - String: \*[MONTH4]
+ - String: \*[MONTH5]
+ - String: \*[MONTH6]
+ - String: \*[MONTH7]
+ - String: \*[MONTH8]
+ - String: \*[MONTH9]
+ - String: \*[MONTH10]
+ - String: \*[MONTH11]
+ - String: \*[MONTH12]
+ Prints the full name of the month in dates. The default is
+ `January', `February', etc.
+
+ The following special characters are available(1) (*note ms Strings
+and Special Characters-Footnote-1::):
+
+ - String: \*[-]
+ Prints an em dash.
+
+ - String: \*[*Q]
+ - String: \*[*U]
+ Prints typographer's quotes in troff, plain quotes in nroff. `*Q'
+ is the left quote and `*U' is the right quote.
+
+ Improved accent marks are available in the `ms' macros.
+
+ - Macro: .AM
+ Specify this macro at the beginning of your document to enable
+ extended accent marks and special characters. This is a Berkeley
+ extension.
+
+ To use the accent marks, place them *after* the character being
+ accented.
+
+ The following accent marks are available after invoking the `AM'
+macro:
+
+ - String: \*[']
+ Acute accent.
+
+ - String: \*[`]
+ Grave accent.
+
+ - String: \*[^]
+ Circumflex.
+
+ - String: \*[,]
+ Cedilla.
+
+ - String: \*[~]
+ Tilde.
+
+ - String: \*[:]
+ Umlaut.
+
+ - String: \*[v]
+ Hacek.
+
+ - String: \*[_]
+ Macron (overbar).
+
+ - String: \*[.]
+ Underdot.
+
+ - String: \*[o]
+ Ring above.
+
+ The following are standalone characters available after invoking the
+`AM' macro:
+
+ - String: \*[?]
+ Upside-down question mark.
+
+ - String: \*[!]
+ Upside-down exclamation point.
+
+ - String: \*[8]
+ German ss ligature.
+
+ - String: \*[3]
+ Yogh.
+
+ - String: \*[Th]
+ Uppercase thorn.
+
+ - String: \*[th]
+ Lowercase thorn.
+
+ - String: \*[D-]
+ Uppercase eth.
+
+ - String: \*[d-]
+ Lowercase eth.
+
+ - String: \*[q]
+ Hooked o.
+
+ - String: \*[ae]
+ Lowercase ae ligature.
+
+ - String: \*[Ae]
+ Uppercase AE ligature.
+
+
+File: groff, Node: ms Strings and Special Characters-Footnotes, Up: ms Strings and Special Characters
+
+ (1) For an explanation what special characters are see *Note Special
+Characters::.
+
+
+File: groff, Node: Differences from AT&T ms, Prev: ms Page Layout, Up: ms
+
+Differences from AT&T `ms'
+--------------------------
+
+ This section lists the (minor) differences between the `groff -ms'
+macros and AT&T `troff -ms' macros.
+
+* Menu:
+
+* Missing ms Macros::
+* Additional ms Macros::
+
+
+File: groff, Node: Missing ms Macros, Next: Additional ms Macros, Prev: Differences from AT&T ms, Up: Differences from AT&T ms
+
+`troff' macros not appearing in `groff'
+.......................................
+
+ Macros missing from `groff -ms' are cover page macros specific to
+Bell Labs. The macros known to be missing are:
+
+`.TM'
+ Technical memorandum; a cover sheet style
+
+`.IM'
+ Internal memorandum; a cover sheet style
+
+`.MR'
+ Memo for record; a cover sheet style
+
+`.MF'
+ Memo for file; a cover sheet style
+
+`.EG'
+ Engineer's notes; a cover sheet style
+
+`.TR'
+ Computing Science Tech Report; a cover sheet style
+
+`.OK'
+ Other keywords
+
+`.CS'
+ Cover sheet information
+
+`.MH'
+ A cover sheet macro
+
+
+File: groff, Node: Additional ms Macros, Prev: Missing ms Macros, Up: Differences from AT&T ms
+
+`groff' macros not appearing in AT&T `troff'
+............................................
+
+ The `groff -ms' macros have a few minor extensions compared to the
+AT&T `troff -ms' macros.
+
+ - Macro: .AM
+ Improved accent marks. *Note ms Strings and Special Characters::,
+ for details.
+
+ - Macro: .DS I
+ Indented display. The default behavior of AT&T `troff -ms' was to
+ indent; the `groff' default prints displays flush left with the
+ body text.
+
+ - Macro: .CW
+ Print text in `constant width' (Courier) font.
+
+ - Macro: .IX
+ Indexing term (printed on standard error). You can write a script
+ to capture and process an index generated in this manner.
+
+
+ The following additional number registers appear in `groff -ms':
+
+ - Register: \n[MINGW]
+ Specifies a minimum space between columns (for multi-column
+ output); this takes the place of the `GW' register that was
+ documented but apparently not implemented in AT&T `troff'.
+
+
+ Several new string registers are available as well. You can change
+these to handle (for example) the local language. *Note ms Strings and
+Special Characters::, for details.
+
+
+File: groff, Node: me, Next: mm, Prev: ms, Up: Macro Packages
+
+`me'
+====
+
+ See the `meintro.me' and `meref.me' documents in groff's `doc'
+directory.
+
+
+File: groff, Node: mm, Prev: me, Up: Macro Packages
+
+`mm'
+====
+
+ See the `groff_mm(7)' man page (type `man groff_mm' at the command
+line).
+
+
+File: groff, Node: gtroff Reference, Next: Preprocessors, Prev: Macro Packages, Up: Top
+
+`gtroff' Reference
+******************
+
+ This chapter covers *all* of the facilities of `gtroff'. Users of
+macro packages may skip it if not interested in details.
+
+* Menu:
+
+* Text::
+* Measurements::
+* Expressions::
+* Identifiers::
+* Embedded Commands::
+* Registers::
+* Manipulating Filling and Adjusting::
+* Manipulating Hyphenation::
+* Manipulating Spacing::
+* Tabs and Fields::
+* Character Translations::
+* Troff and Nroff Mode::
+* Line Layout::
+* Line Control::
+* Page Layout::
+* Page Control::
+* Fonts and Symbols::
+* Sizes::
+* Strings::
+* Conditionals and Loops::
+* Writing Macros::
+* Page Motions::
+* Drawing Requests::
+* Traps::
+* Diversions::
+* Environments::
+* Suppressing output::
+* Colors::
+* I/O::
+* Postprocessor Access::
+* Miscellaneous::
+* Gtroff Internals::
+* Debugging::
+* Implementation Differences::
+
+
+File: groff, Node: Text, Next: Measurements, Prev: gtroff Reference, Up: gtroff Reference
+
+Text
+====
+
+ `gtroff' input files contain text with control commands interspersed
+throughout. But, even without control codes, `gtroff' still does
+several things with the input text:
+
+ * filling and adjusting
+
+ * adding additional space after sentences
+
+ * hyphenating
+
+ * inserting implicit line breaks
+
+* Menu:
+
+* Filling and Adjusting::
+* Hyphenation::
+* Sentences::
+* Tab Stops::
+* Implicit Line Breaks::
+* Input Conventions::
+* Input Encodings::
+
+
+File: groff, Node: Filling and Adjusting, Next: Hyphenation, Prev: Text, Up: Text
+
+Filling and Adjusting
+---------------------
+
+ When `gtroff' reads text, it collects words from the input and fits
+as many of them together on one output line as it can. This is known as
+"filling".
+
+ Once `gtroff' has a "filled" line, it tries to "adjust" it. This
+means it widens the spacing between words until the text reaches the
+right margin (in the default adjustment mode). Extra spaces between
+words are preserved, but spaces at the end of lines are ignored.
+Spaces at the front of a line cause a "break" (breaks are explained in
+*Note Implicit Line Breaks::).
+
+ *Note Manipulating Filling and Adjusting::.
+
+
+File: groff, Node: Hyphenation, Next: Sentences, Prev: Filling and Adjusting, Up: Text
+
+Hyphenation
+-----------
+
+ Since the odds are not great for finding a set of words, for every
+output line, which fit nicely on a line without inserting excessive
+amounts of space between words, `gtroff' hyphenates words so that it
+can justify lines without inserting too much space between words. It
+uses an internal hyphenation algorithm (a simplified version of the
+algorithm used within TeX) to indicate which words can be hyphenated
+and how to do so. When a word is hyphenated, the first part of the
+word is added to the current filled line being output (with an attached
+hyphen), and the other portion is added to the next line to be filled.
+
+ *Note Manipulating Hyphenation::.
+
+
+File: groff, Node: Sentences, Next: Tab Stops, Prev: Hyphenation, Up: Text
+
+Sentences
+---------
+
+ Although it is often debated, some typesetting rules say there
+should be different amounts of space after various punctuation marks.
+For example, the `Chicago typsetting manual' says that a period at the
+end of a sentence should have twice as much space following it as would
+a comma or a period as part of an abbreviation.
+
+ `gtroff' does this by flagging certain characters (normally `!',
+`?', and `.') as "end-of-sentence" characters. When `gtroff'
+encounters one of these characters at the end of a line, it appends a
+normal space followed by a "sentence space" in the formatted output.
+(This justifies one of the conventions mentioned in *Note Input
+Conventions::.)
+
+ In addition, the following characters and symbols are treated
+transparently while handling end-of-sentence characters: `"', `'', `)',
+`]', `*', `\[dg]', and `\[rq]'.
+
+ See the `cflags' request in *Note Using Symbols::, for more details.
+
+ To prevent the insertion of extra space after an end-of-sentence
+character (at the end of a line), append `\&'.
+
+
File: groff, Node: Tab Stops, Next: Implicit Line Breaks, Prev: Sentences, Up: Text
Tab Stops
@@ -49,7 +428,7 @@ produces
*Note Tabs and Fields::.

-File: groff, Node: Implicit Line Breaks, Prev: Tab Stops, Up: Text
+File: groff, Node: Implicit Line Breaks, Next: Input Conventions, Prev: Tab Stops, Up: Text
Implicit Line Breaks
--------------------
@@ -74,10 +453,10 @@ document may vanish!
is discussed in *Note Manipulating Filling and Adjusting::.

-File: groff, Node: Input Conventions, Next: Measurements, Prev: Text, Up: gtroff Reference
+File: groff, Node: Input Conventions, Next: Input Encodings, Prev: Implicit Line Breaks, Up: Text
Input Conventions
-=================
+-----------------
Since `gtroff' does filling automatically, it is traditional in
`groff' not to try and type things in as nicely formatted paragraphs.
@@ -95,7 +474,57 @@ These are some conventions commonly used when typing `gtroff' text:
try using spaces to get proper indentation).

-File: groff, Node: Measurements, Next: Expressions, Prev: Input Conventions, Up: gtroff Reference
+File: groff, Node: Input Encodings, Prev: Input Conventions, Up: Text
+
+Input Encodings
+---------------
+
+ Currently, the following input encodings are available.
+
+cp1047
+ This input encoding works only on EBCDIC platforms (and vice
+ versa, the other input encodings don't work with EBCDIC); the file
+ `cp1047.tmac' is by default loaded at start-up.
+
+latin-1
+ This is the default input encoding on non-EBCDIC platforms; the
+ file `latin1.tmac' is loaded at start-up.
+
+latin-2
+ To use this encoding, either say `.mso latin2.tmac' at the very
+ beginning of your document or use `-mlatin2' as a command line
+ argument for `groff'.
+
+latin-9 (latin-0)
+ This encoding is intended (at least in Europe) to replace latin-1
+ encoding. The main difference to latin-1 is that latin-9 contains
+ the Euro character. To use this encoding, either say
+ `.mso latin9.tmac' at the very beginning of your document or use
+ `-mlatin9' as a command line argument for `groff'.
+
+ Note that it can happen that some input encoding characters are not
+available for a particular output device. For example, saying
+
+
+ groff -Tlatin1 -mlatin9 ...
+
+will fail if you use the Euro character in the input. Usually, this
+limitation is present only for devices which have a limited set of
+output glyphs (e.g. `-Tascii' and `-Tlatin1'); for other devices it is
+usually sufficient to install proper fonts which contain the necessary
+glyphs.
+
+ Due to the importance of the Euro glyph in Europe, the groff package
+now comes with a POSTSCRIPT font called `freeeuro.pfa' which provides
+various glyph shapes for the Euro. With other words, latin-9 encoding
+is supported for the `-Tps' device out of the box (latin-2 isn't).
+
+ By its very nature, `-Tutf8' supports all input encodings; `-Tdvi'
+has support for both latin-2 and latin-9 if the command line `-mec' is
+used also to load the file `ec.tmac' (which flips to the EC fonts).
+
+
+File: groff, Node: Measurements, Next: Expressions, Prev: Text, Up: gtroff Reference
Measurements
============
@@ -259,14 +688,15 @@ signs indicate increments and decrements.
*Note Setting Registers::, for some examples.
- - Escape: \B'ANYTHING'
+ - Escape: \B'anything'
Return 1 if ANYTHING is a valid numeric expression; or 0 if
ANYTHING is empty or not a valid numeric expression.
Due to the way arguments are parsed, spaces are not allowed in
expressions, unless the entire expression is surrounded by parentheses.
- *Note Request Arguments::, and *Note Conditionals and Loops::.
+ *Note Request and Macro Arguments::, and *Note Conditionals and
+Loops::.

File: groff, Node: Identifiers, Next: Embedded Commands, Prev: Expressions, Up: gtroff Reference
@@ -322,7 +752,7 @@ after `.[' and `.]' is handled as a special argument to `refer'. For
example, `.[foo' makes `refer' to start a reference, using `foo' as a
parameter.
- - Escape: \A'IDENT'
+ - Escape: \A'ident'
Test whether an identifier IDENT is valid in `gtroff'. It expands
to the character 1 or 0 according to whether its argument (usually
delimited by quotes) is or is not acceptable as the name of a
@@ -466,21 +896,23 @@ character prevents this.
* Menu:
-* Request Arguments::
+* Request and Macro Arguments::

-File: groff, Node: Request Arguments, Prev: Requests, Up: Requests
+File: groff, Node: Request and Macro Arguments, Prev: Requests, Up: Requests
-Request Arguments
-.................
+Request and Macro Arguments
+...........................
- Arguments to requests (and macros) are processed much like the shell:
+ Arguments to requests and macros are processed much like the shell:
The line is split into arguments according to spaces.(1) (*note Request
-Arguments-Footnote-1::) An argument which is intended to contain
-spaces can either be enclosed in double quotes, or have the spaces
-"escaped" with backslashes.
+and Macro Arguments-Footnote-1::)
+
+ An argument to a macro which is intended to contain spaces can
+either be enclosed in double quotes, or have the spaces "escaped" with
+backslashes. This is _not_ true for requests.
- Here are a few examples:
+ Here are a few examples for a hypothetical macro `uh':
.uh The Mouse Problem
@@ -490,7 +922,7 @@ spaces can either be enclosed in double quotes, or have the spaces
The first line is the `uh' macro being called with 3 arguments, `The',
`Mouse', and `Problem'. The latter two have the same effect of calling
the `uh' macro with one argument, `The Mouse Problem'.(2) (*note
-Request Arguments-Footnote-2::)
+Request and Macro Arguments-Footnote-2::)
A double quote which isn't preceded by a space doesn't start a macro
argument. If not closing a string, it is printed literally.
@@ -543,7 +975,7 @@ obscure behaviour!
Strings::, for more details.

-File: groff, Node: Request Arguments-Footnotes, Up: Request Arguments
+File: groff, Node: Request and Macro Arguments-Footnotes, Up: Request and Macro Arguments
(1) Plan 9's `troff' implementation also allows tabs for argument
separation - `gtroff' intentionally doesn't support this.
@@ -563,9 +995,9 @@ Macros
`gtroff' has a "macro" facility for defining a series of lines which
can be invoked by name. They are called in the same manner as requests
-- arguments also may be passed in the same manner.
+- arguments also may be passed basically in the same manner.
- *Note Writing Macros::, and *Note Request Arguments::.
+ *Note Writing Macros::, and *Note Request and Macro Arguments::.

File: groff, Node: Escapes, Prev: Macros, Up: Embedded Commands
@@ -723,9 +1155,9 @@ forms of escapes is the comment.
as expected.
- - Request: .ig yy
- Ignore all input until `gtroff' encounters the macro named `.'YY
- on a line by itself (or `..' if YY is not specified). This is
+ - Request: .ig [end]
+ Ignore all input until `gtroff' encounters the macro named `.'END
+ on a line by itself (or `..' if END is not specified). This is
useful for commenting out large blocks of text:
@@ -786,7 +1218,7 @@ Setting Registers
Define or set registers using the `nr' request or the `\R' escape.
- Request: .nr ident value
- - Escape: \R'IDENT VALUE'
+ - Escape: \R'ident value'
Set number register IDENT to VALUE. If IDENT doesn't exist,
`gtroff' creates it.
@@ -809,8 +1241,8 @@ decrement a register.
- Request: .nr ident +value
- Request: .nr ident -value
- - Escape: \R'IDENT +VALUE'
- - Escape: \R'IDENT -VALUE'
+ - Escape: \R'ident +value'
+ - Escape: \R'ident -value'
Increment (decrement) register IDENT by VALUE.
@@ -869,11 +1301,11 @@ Interpolating Registers
Numeric registers can be accessed via the `\n' escape.
- - Escape: \nI
- - Escape: \n(ID
- - Escape: \n[IDENT]
+ - Escape: \ni
+ - Escape: \n(id
+ - Escape: \n[ident]
Interpolate number register with name IDENT (one-character name I,
- two-character name ID). This means that the value of the register
+ two-character name ID). This means that the value of the register
is expanded in-place while `gtroff' is parsing the input line.
Nested assignments (also called indirect assignments) are possible.
@@ -912,16 +1344,16 @@ to the `nr' request or `\R' escape.
To activate auto-incrementing, the escape `\n' has a special syntax
form.
- - Escape: \n+I
- - Escape: \n-I
- - Escape: \n(+ID
- - Escape: \n(-ID
- - Escape: \n+(ID
- - Escape: \n-(ID
- - Escape: \n[+IDENT]
- - Escape: \n[-IDENT]
- - Escape: \n+[IDENT]
- - Escape: \n-[IDENT]
+ - Escape: \n+i
+ - Escape: \n-i
+ - Escape: \n(+id
+ - Escape: \n(-id
+ - Escape: \n+(id
+ - Escape: \n-(id
+ - Escape: \n[+ident]
+ - Escape: \n[-ident]
+ - Escape: \n+[ident]
+ - Escape: \n-[ident]
Before interpolating, increment or decrement IDENT (one-character
name I, two-character name ID) by the auto-increment value as
specified with the `nr' request (or the `\R' escape). If no
@@ -1027,9 +1459,9 @@ using the `af' request.
writeable register, then apply the `af' request to this other
register.
- - Escape: \gI
- - Escape: \g(ID
- - Escape: \g[IDENT]
+ - Escape: \gi
+ - Escape: \g(id
+ - Escape: \g[ident]
Return the current format of the specified register IDENT
(one-character name I, two-character name ID). For example, `\ga'
after the previous example would produce the string `000'. If the
@@ -1115,12 +1547,12 @@ appendix *Note Register Index::.
*Note Miscellaneous::, for more information about line numbering.
`.x'
- The major version number. For example, if the version number
- is 1.03 then `.x' contains `1'.
+ The major version number. For example, if the version number is
+ 1.03 then `.x' contains `1'.
`.y'
- The minor version number. For example, if the version number
- is 1.03 then `.y' contains `03'.
+ The minor version number. For example, if the version number is
+ 1.03 then `.y' contains `03'.
`.Y'
The revision number of `groff'.
@@ -1152,223 +1584,3 @@ appendix *Note Register Index::.
register `.T' which contains the current output device (for
example, `latin1' or `ps').
-
-File: groff, Node: Manipulating Filling and Adjusting, Next: Manipulating Hyphenation, Prev: Registers, Up: gtroff Reference
-
-Manipulating Filling and Adjusting
-==================================
-
- Various ways of causing "breaks" were given in *Note Implicit Line
-Breaks::. The `br' request likewise causes a break. Several other
-requests also cause breaks, but implicitly. These are `bp', `ce',
-`cf', `fi', `fl', `in', `nf', `rj', `sp', `ti', and `trf'.
-
- - Request: .br
- Break the current line, i.e., the input collected so far is emitted
- without adjustment.
-
- If the no-break control character is used, `gtroff' suppresses the
- break:
-
-
- a
- 'br
- b
- => a b
-
-
- Initially, `gtroff' fills and adjusts text to both margins. Filling
-can be disabled via the `nf' request and re-enabled with the `fi'
-request.
-
- - Request: .fi
- - Register: \n[.u]
- Activate fill mode (which is the default). This request implicitly
- enables adjusting; it also inserts a break in the text currently
- being filled. The read-only number register `.u' is set to 1.
-
- The fill mode status is associated with the current environment
- (*note Environments::).
-
- See *Note Line Control::, for interaction with the `\c' escape.
-
- - Request: .nf
- Activate no-fill mode. Input lines are output as-is, retaining
- line breaks and ignoring the current line length. This command
- implicitly disables adjusting; it also causes a break. The number
- register `.u' is set to 0.
-
- The fill mode status is associated with the current environment
- (*note Environments::).
-
- See *Note Line Control::, for interaction with the `\c' escape.
-
- - Request: .ad [mode]
- - Register: \n[.j]
- Set adjusting mode.
-
- Activation and deactivation of adjusting is done implicitly with
- calls to the `fi' or `nf' requests.
-
- MODE can have one of the following values:
-
- `l'
- Adjust text to the left margin. This produces what is
- traditionally called ragged-right text.
-
- `r'
- Adjust text to the right margin, producing ragged-left text.
-
- `c'
- Center filled text. This is different to the `ce' request
- which only centers text without filling.
-
- `b'
- `n'
- Justify to both margins. This is the default used by
- `gtroff'.
-
- With no argument, `gtroff' adjusts lines in the same way it did
- before adjusting was deactivated (with a call to `na', for
- example).
-
-
- text
- .ad r
- text
- .ad c
- text
- .na
- text
- .ad \" back to centering
- text
-
- The current adjustment mode is available in the read-only number
- register `.j'; it can be stored and subsequently used to set
- adjustment.
-
- The adjustment mode status is associated with the current
- environment (*note Environments::).
-
- - Request: .na
- Disable adjusting. This request won't change the current
- adjustment mode: A subsequent call to `ad' uses the previous
- adjustment setting.
-
- The adjustment mode status is associated with the current
- environment (*note Environments::).
-
- - Request: .brp
- - Escape: \p
- Adjust the current line and cause a break.
-
- In most cases this produces very ugly results since `gtroff'
- doesn't have a sophisticated paragraph building algorithm (as TeX
- have, for example); instead, `gtroff' fills and adjusts a paragraph
- line by line:
-
-
- This is an uninteresting sentence.
- This is an uninteresting sentence.\p
- This is an uninteresting sentence.
-
- is formatted as
-
-
- This is an uninteresting sentence. This is an
- uninteresting sentence.
- This is an uninteresting sentence.
-
-
- - Request: .ss word_space_size [sentence_space_size]
- - Register: \n[.ss]
- - Register: \n[.sss]
- Change the minimum size of a space between filled words. It takes
- its units as one twelfth of the space width parameter for the
- current font. Initially both the WORD_SPACE_SIZE and
- SENTENCE_SPACE_SIZE are 12.
-
- If two arguments are given to the `ss' request, the second
- argument sets the sentence space size. If the second argument is
- not given, sentence space size is set to WORD_SPACE_SIZE. The
- sentence space size is used in two circumstances: If the end of a
- sentence occurs at the end of a line in fill mode, then both an
- inter-word space and a sentence space are added; if two spaces
- follow the end of a sentence in the middle of a line, then the
- second space is a sentence space. If a second argument is never
- given to the `ss' request, the behaviour of UNIX `troff' is the
- same as that exhibited by GNU `troff'. In GNU `troff', as in UNIX
- `troff', a sentence should always be followed by either a newline
- or two spaces.
-
- The read-only number registers `.ss' and `.sss' hold the values of
- the parameters set by the first and second arguments of the `ss'
- request.
-
- The word space and sentence space values are associated with the
- current environment (*note Environments::).
-
- Contrary to AT&T `troff', this request is _not_ ignored if a TTY
- output device is used; the given values are then rounded down to a
- multiple of 12 (*note Implementation Differences::).
-
- The request is ignored if there is no parameter.
-
- - Request: .ce [nnn]
- - Register: \n[.ce]
- Center text. While the `.ad c' request also centers text, it
- fills the text as well. `ce' does not fill the text it affects.
- This request causes a break. The number of lines still to be
- centered is associated with the current environment (*note
- Environments::).
-
- The following example demonstrates the differences. Here the
- input:
-
-
- .ll 4i
- .ce 1000
- This is a small text fragment which shows the differences
- between the `.ce' and the `.ad c' request.
- .ce 0
-
- .ad c
- This is a small text fragment which shows the differences
- between the `.ce' and the `.ad c' request.
-
- And here the result:
-
-
- This is a small text fragment which
- shows the differences
- between the `.ce' and the `.ad c' request.
-
- This is a small text fragment which
- shows the differences between the `.ce'
- and the `.ad c' request.
-
- With no arguments, `ce' centers the next line of text. NNN
- specifies the number of lines to be centered. If the argument is
- zero or negative, centering is disabled.
-
- The basic length for centering text is the line length (as set
- with the `ll' request) minus the indentation (as set with the `in'
- request). Temporary indentation is ignored.
-
- As can be seen in the previous example, it is a common idiom to
- turn on centering for a large number of lines, and to turn off
- centering after text to be centered. This is useful for any
- request which takes a number of lines as an argument.
-
- The `.ce' read-only number register contains the number of lines
- remaining to be centered, as set by the `ce' request.
-
- - Request: .rj [nnn]
- - Register: \n[.rj]
- Justify unfilled text to the right margin. Arguments are
- identical to the `ce' request. The `.rj' read-only number
- register is the number of lines to be right-justified as set by
- the `rj' request. This request causes a break. The number of
- lines still to be right-justified is associated with the current
- environment (*note Environments::).
-
OpenPOWER on IntegriCloud