-->

Previous | Table of Contents | Next

Page 245

\n[.fam] The current font family. This is a string-valued register.
\n[.fp] The number of the next free font position.
\n[.g] Always 1. Macros should use this to determine whether they are running under GNU troff.
\n[.hla] The current hyphenation language as set by the hla request.
\n[.hlc] The number of immediately preceding consecutive hyphenated lines.
\n[.hlm] The maximum allowed number of consecutive hyphenated lines, as set by the hlm request.
\n[.hy] The current hyphenation flags (as set by the hy request.)
\n[.hym] The current hyphenation margin (as set by the hym request.)
\n[.hys] The current hyphenation space (as set by the hys request.)
\n[.in] The indent that applies to the current output line.
\n[.kern] 1 if pairwise kerning is enabled, 0 otherwise.
\n[.lg] The current ligature mode (as set by the lg request.)
\n[.ll] The line length that applies to the current output line.
\n[.lt] The title length as set by the lt request.
\n[.ne] The amount of space that was needed in the last ne request that caused a trap to be sprung. Useful in conjunction with the \n[.trunc] register.
\n[.pn] The number of the next page: either the value set by a pn request, or the number of the current page
plus 1.
\n[.ps] The current pointsize in scaled points.
\n[.psr] The last requested pointsize in scaled points.
\n[.rj] The number of lines to be right-justified as set by the rj request.
\n[.sr] The last requested pointsize in points as a decimal fraction. This is a string-valued register.
\n[.tabs] A string representation of the current tab settings suitable for use as an argument to the ta request.
\n[.trunc] The amount of vertical space truncated by the most recently sprung vertical position trap, or, if the trap was sprung by an ne request, minus the amount of vertical motion produced by the 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. Useful in conjunction with the \n[.ne] register.
\n[.ss] These give the values of the parameters set by the first and second arguments of the ss request.
\n[.sss]
\n[.vpt] 1 if vertical position traps are enabled, 0 otherwise.
\n[.warn] The sum of the numbers associated with each of the currently enabled WARNINGS. The number associated with each warning is listed in the "WARNINGS" subsection.
\n(.x The major version number. For example, if the version number is 1.03 then \n(.x will contain 1.
\n(.y The minor version number. For example, if the version number is 1.03 then \n(.y will contain 03.

Page 246

The following registers are set by the \w escape sequence:

\n[rst]
\n[rsb] Like the st and sb registers, but takes account of the heights and depths of characters.
\n[ssc] The amount of horizontal space (possibly negative) that should be added to the last character before a subscript.
\n[skw] How far to right of the center of the last character in the \w argument, the center of an accent from a roman font should be placed over that character.

The following read/write number registers are available:

\n[systat] The return value of the system() function executed by the last sy request.
\n[slimit] If greater than 0, the maximum number of objects on the input stack. If less than or equal to 0, there is no limit on the number of objects on the input stack. With no limit, recursion can continue until virtual memory is exhausted.

MISCELLANEOUS

Fonts not listed in the DESC file are automatically mounted on the next available font position when they are referenced.
If a font is to be mounted explicitly with the fp request on an unused font position, it should be mounted on the first unused font position, which can be found in the \n[.fp] register; although troff does not enforce this strictly, it will not allow a font to be mounted at a position whose number is much greater than that of any currently used position.

Interpolating a string does not hide existing macro arguments. Thus in a macro, a more efficient way of doing


.xx\\$@

is


\\*[xx]\\

If the font DESCRIPTION file contains pairwise kerning information, characters from that font will be kerned. Kerning between two characters can be inhibited by placing a \& between them.

In a string comparison in a condition, characters that appear at different input levels to the first delimiter character will not be recognized as the second or third delimiters. This applies also to the tl request. In a \w escape sequence, a character that appears at a different input level to the starting delimiter character will not be recognized as the closing delimiter character. When decoding a macro argument that is delimited by double quotes, a character that appears at a different input level to the starting delimiter character will not be recognized as the closing delimiter character. The implementation of \$@ ensures that the double quotes surrounding an argument will appear the same input level, which will be different to the input level
of the argument itself. In a long escape name ] will not be recognized as a closing delimiter except when it occurs at the same input level as the opening ]. In compatibility mode, no attention is paid to the input level.

There are some new types of condition:

.ifrxxx True if there is a number register named xxx.
.ifdxxx True if there is a string, macro, diversion, or request named xxx.
.ifcch True if there is a character ch available; ch is either an ASCII character or a special character \(xx or \[xxx]; the condition will also be true if ch has been defined by the char request.

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 _w and _W OPTIONS; the number is used by the warn request, and by the .warn register.

char1 Nonexistent characters. This is enabled by default.
number2 Invalid numeric expressions. This is enabled by default.
break4 In fill mode, lines which could not be broken so that their length was less than the line length. This is enabled by default.
delim8 Missing or mismatched closing delimiters.

Previous | Table of Contents | Next