NAME
groff - a short reference for the GNU roff language
DESCRIPTION
The name
groff
stands for
GNU roff
and is the free implementation of the roff type-setting system.
See
roff(7)
for a survey and the background of the groff system.
This document gives only short descriptions of the predefined roff
language elements as used in groff.
Both the classical features and the groff extensions are provided.
Historically, the
roff language
was called
troff.
groff
is compatible with the classical system and provides proper
extensions.
So in GNU, the terms
roff,
troff,
and
groff language
could be used as synonyms.
However
troff
slightly tends to refer more to the classical aspects, whereas
groff
emphasizes the GNU extensions, and
roff
is the general term for the language.
This file is only a short version of the complete documentation that
is found in the
groff
info(1)
file, which contains more detailed, actual, and concise information.
The general syntax for writing groff documents is relatively easy, but
writing extensions to the roff language can be a bit harder.
The roff language is line-oriented.
There are only two kinds of lines, control lines and text lines.
The control lines start with a control character, by default a period
".."
or a single quote
"''";
all other lines are text lines.
Control lines
represent commands, optionally with arguments.
They have the following syntax.
The leading control character can be followed by a command name;
arguments, if any, are separated by blanks from the command name and
among themselves, for example,
.command_name arg1 arg2
For indentation, any number of space or tab characters can be inserted
between the leading control character and the command name, but the
control character must be on the first position of the line.
Text lines
represent the parts that will be printed.
They can be modified by escape sequences, which are recognized by a
leading backslash
`\\'.
These are in-line or even in-word formatting elements or functions.
Some of these take arguments separated by single quotes
"''",
others are regulated by a length encoding introduced by an open
parenthesis
`(('
or enclosed in brackets
`[['
and
`]]'.
The roff language provides flexible instruments for writing language
extension, such as macros.
When interpreting macro definitions, the roff system enters a special
operating mode, called the
copy mode.
The copy mode behavior can be quite tricky, but there are some rules
that ensure a safe usage.
-
1.
Printable backslashes must be denoted as
-
\e.
To be more precise,
\e
represents the current escape character.
To get a backslash glyph, use
\(rs
or
\[rs].
-
2.
Double all backslashes.
-
-
3.
Begin all text lines with the special non-spacing character
-
\&.
This does not produce the most efficient code, but it should work as a
first measure.
For better strategies, see the groff info file and
groff_tmac(5)
Reading roff source files is easier, just reduce all double backslashes
to a single one in all macro definitions.
GROFF ELEMENTS
The roff language elements add formatting information to a text file.
The fundamental elements are predefined commands and variables that
make roff a full-blown programming language.
There are two kinds of roff commands, possibly with arguments.
Requests
are written on a line of their own starting with a dot
`..'
or a
"''",
whereas
Escape sequences
are in-line functions and in-word formatting elements starting with a
backslash
`\\'.
The user can define her own formatting commands using the
de
request.
These commands are called
macros,
but they are used exactly like requests.
Macro packages are pre-defined sets of macros written in the groff
language.
A user's possibilities to create escape sequences herself is very
limited, only special characters can be mapped.
The groff language provides several kinds of variables with
different interfaces.
There are pre-defined variables, but the user can define her own
variables as well.
String
variables store character sequences.
They are set with the
ds
request and retrieved by the
\*
escape sequences.
Strings can have variables.
Register
variables can store numerical values, numbers with a scale unit, and
occasionally string-like objects.
They are set with the
nr
request and retrieved by the
\n
escape sequences.
Environments
allow the user to temporarily store global formatting parameters like
line length, font size, etc. for later reuse.
This is done by the
ev
request.
Fonts
are identified either by a name or by an internal number.
The current font is chosen by the
ft
request or by the
\f
escape sequences.
Each device has special fonts, but the following fonts are available
for all devices.
R
is the standard font Roman.
B
is its
bold
counterpart.
The
italic
font is called
I
and is available everywhere, but on text devices it is displayed as an
underlined Roman font.
For the graphical output devices, there exist constant-width pendants
of these fonts,
CR,
CI,
and
CB.
On text devices, all characters have a constant width anyway.
Moreover, there are some advanced roff elements.
A
diversion
stores information into a macro for later usage.
A
trap
is a positional condition like a certain number of lines from page top
or in a diversion or in the input.
Some action can be prescribed to be run automatically when the
condition is met.
More detailed information and examples can be found in the groff info
file.
CONTROL CHARACTERS
There is a small set of characters that have a special controlling
task in certain conditions.
-
..
-
A dot is only special at the beginning of a line or after the
condition in the requests
if,
ie,
el,
and
while.
There it is the control character that introduces a request (or macro).
The special behavior can be delayed by using the
\.
escape.
By using the
cc
request, the control character can be set to a different character,
making the dot
`..'
a non-special character.
-
In all other positions, it just means a dot character.
-
In text paragraphs, it is advantageous to start each sentence at a
line of its own.
-
''
-
The single quote has two controlling tasks.
At the beginning of a line and in the conditional requests it is the
non-breaking control character.
That means that it introduces a request like the dot, but with the
additional property that this request doesn't cause a linebreak.
By using the
c2
request, the non-break control character can be set to a different
character.
-
As a second task, it is the most commonly used argument separator in
-
some functional escape sequences (but any pair of characters not part
of the argument will work).
In all other positions, it denotes the single quote or apostrophe
character.
Groff provides a printable representation with the
\(cq
escape sequence.
-
""
-
The double quote is used to enclose arguments in requests, macros, and
strings.
In the
ds
and
as
requests, a leading double quote in the argument will be stripped off,
making everything else afterwards the string to be defined (enabling
leading whitespace).
The escaped double quote
\"
introduces a comment.
Otherwise, it is not special.
Groff provides a printable representation with the
\(dq
escape sequence.
-
\\
-
The backslash usually introduces an escape sequence (this can be
changed with the
ec
request).
A printed version of the escape character is the
\e
escape; a backslash glyph can be obtained by
\(rs.
-
((
-
The open parenthesis is only special in escape sequences when
introducing an escape name or argument consisting of exactly two
characters.
In groff, this behavior can be replaced by the [[]] construct.
-
[[
-
The opening bracket is only special in groff escape sequences; there
it is used to introduce a long escape name or long escape argument.
Otherwise, it is non-special, e.g. in macro calls.
-
]]
-
The closing bracket is only special in groff escape sequences; there
it terminates a long escape name or long escape argument.
Otherwise, it is non-special.
-
_s_p_a_c_e
-
Space characters are only functional characters.
They separate the arguments in requests, macros, and strings, and the words
in text lines.
They are subject to groff's horizontal spacing calculations.
To get a defined space width, escape sequences like
`\\ '
(this is the escape character followed by a space),
\|,
\^,
or
\h
should be used.
-
_n_e_w_l_i_n_e
In text paragraphs, newlines mostly behave like space characters.
-
Continuation lines can be specified by an escaped newline, i.e., by
specifying a backslash
`\\'
as the last character of a line.
-
_t_a_b
If a tab character occurs during text the interpreter makes a
-
horizontal jump to the next pre-defined tab position.
There is a sophisticated interface for handling tab positions.
NUMERICAL EXPRESSIONS
A
numerical value
is a signed or unsigned integer or float with or without an appended
scaling indicator.
A
scaling indicator
is a one-character abbreviation for a unit of measurement.
A number followed by a scaling indicator signifies a size value.
By default, numerical values do not have a scaling indicator, i.e., they
are normal numbers.
The
roff
language defines the following scaling indicators.
-
c
-
Centimeter
-
i
-
Inch
-
P
-
Pica = 1/6 inch
-
p
-
Point = 1/72 inch
-
m
-
Em = the font size in points (width of letter `m')
-
M
-
100th of an Em
-
n
-
En = Em/2
-
u
-
Basic unit for actual output device
-
v
-
Vertical line space in basic units
scaled point = 1/_s_i_z_e_s_c_a_l_e of a point (defined in
font _D_E_S_C file)
-
f
-
Scale by 65536.
Numerical expressions
are combinations of the numerical values defined above with the
following arithmetical operators already defined in classical troff.
-
+
-
Addition
-
-
-
Subtraction
-
*
-
Multiplication
-
/
-
Division
-
%
-
Modulo
-
=
-
Equals
-
==
-
Equals
-
<
-
Less than
-
>
-
Greater than
-
<=
-
Less or equal
-
>=
-
Greater or equal
-
&
-
Logical and
-
:
-
Logical or
-
!
-
Logical not
-
(
-
Grouping of expressions
-
)
-
Close current grouping
Moreover,
groff
added the following operators for numerical expressions:
-
_e_1>>??_e_2
-
The maximum of
e1
and
e2.
-
_e_1<?_e_2
-
The minimum of
e1
and
e2.
-
((_c;;_e))
-
Evaluate
e
using
c
as the default scaling indicator.
For details see the groff info file.
CONDITIONS
Conditions
occur in tests raised by the
if,
ie,
and the
while
requests.
The following table characterizes the different types of conditions.
-
N
-
A numerical expression
N
yields true if its value is greater than 0.
-
!N
-
True if the value of
I
is 0.
-
's1's2'
-
True if string s1
is identical to string s2.
-
!'s1's2'
-
True if string s1
is not identical to string s2.
-
cch
-
True if there is a character ch
available.
-
dname
-
True if there is a string, macro, diversion, or request called
name.
-
e
-
Current page number is even.
-
o
-
Current page number is odd.
-
mname
-
True if there is a color called
name.
-
n
-
Formatter is
nroff.
-
rreg
-
True if there is a register named
reg.
-
t
-
Formatter is
troff.
-
Ffont
-
True if there exists a font named
font.
-
Sstyle
-
True if a style named
style
has been registered.
REQUESTS
This section provides a short reference for the predefined requests.
In groff, request and macro names can be arbitrarily long.
No bracketing or marking of long names is needed.
Most requests take one or more arguments.
The arguments are separated by space characters (no tabs!); there is
no inherent limit for their length or number.
An argument can be enclosed by a pair of double quotes.
This is very handy if an argument contains space characters, e.g.,
denotes a single argument.
Some requests have optional arguments with a different behaviour.
Not all of these details are outlined here.
Refer to the groff info file and
groff_diff(7)
for all details.
In the following request specifications, most argument names were
chosen to be descriptive.
Only the following denotations need clarification.
-
c
-
denotes a single character.
-
font
-
a font either specified as a font name or a font number.
-
anything
-
all characters up to the end of the line or within
\{
and
\}.
-
n
-
is a numerical expression that evaluates to an integer value.
-
N
-
is an arbitrary numerical expression, signed or unsigned.
-
±N
-
has three meanings depending on its sign, described below.
If an expression defined as
±N
starts with a
`++'
sign the resulting value of the expression will be added to an already
existing value inherent to the related request, e.g. adding to a number
register.
If the expression starts with a
`--'
the value of the expression will be subtracted from the request value.
Without a sign,
N
replaces the existing value directly.
To assign a negative number either prepend 0 or enclose the negative
number in parentheses.
Request Short Reference
-
..
-
Empty line, ignored.
Useful for structuring documents.
-
..\\"" _a_n_y_t_h_i_n_g
-
Complete line is a comment.
-
..aabb _s_t_r_i_n_g
-
Print
string
on standard error, exit program.
-
..aadd
-
Begin line adjustment for output lines in current adjust mode.
-
..aadd _c
-
Start line adjustment in mode
c
(_c=l,r,b,n).
-
..aaff _r_e_g_i_s_t_e_r _c
-
Assign format
c
to
register
(_c=l,i,I,a,A).
-
..aallnn _a_l_i_a_s _r_e_g_i_s_t_e_r
-
Create alias name for
register.
-
..aallss _a_l_i_a_s _o_b_j_e_c_t
-
Create alias name for request, string, macro, or diversion
object.
-
..aamm _m_a_c_r_o
-
Append to
macro
until
..
is encountered.
-
..aamm _m_a_c_r_o _e_n_d
-
Append to
macro
until
.end
is called.
-
..aamm11 _m_a_c_r_o
-
Same as
.am
but with compatibility mode switched off during macro expansion.
-
..aamm11 _m_a_c_r_o _e_n_d
-
Same as
.am
but with compatibility mode switched off during macro expansion.
-
..aammii _m_a_c_r_o
-
Append to a macro whose name is contained in the string register
macro
until
..
is encountered.
-
..aammii _m_a_c_r_o _e_n_d
-
Append to a macro indirectly.
macro
and
end
are string registers whose contents are interpolated for the macro name
and the end macro, respectively.
-
..aammii11 _m_a_c_r_o
-
Same as
.ami
but with compatibility mode switched off during macro expansion.
-
..aammii11 _m_a_c_r_o _e_n_d
-
Same as
.ami
but with compatibility mode switched off during macro expansion.
-
..aass _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
-
Append
anything
to
stringvar.
-
..aass11 _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
-
Same as
.as
but with compatibility mode switched off during string expansion.
-
..aasscciiiiffyy _d_i_v_e_r_s_i_o_n
-
Unformat ASCII characters, spaces, and some escape sequences in
diversion.
-
..bbaacckkttrraaccee
-
Print a backtrace of the input on stderr.
-
..bbdd _f_o_n_t _N
-
Embolden
font
by
N-1
units.
-
..bbdd _S _f_o_n_t _N
-
Embolden Special Font
S
when current font is
font.
-
..bbllmm
-
Unset the blank line macro.
-
..bbllmm _m_a_c_r_o
-
Set the blank line macro to
macro.
-
..bbooxx
-
End current diversion.
-
..bbooxx _m_a_c_r_o
-
Divert to
macro,
omitting a partially filled line.
-
..bbooxxaa
-
End current diversion.
-
..bbooxxaa _m_a_c_r_o
-
Divert and append to
macro,
omitting a partially filled line.
-
..bbpp
-
Eject current page and begin new page.
-
..bbpp _±_N
-
Eject current page; next page number
±N.
-
..bbrr
-
Line break.
-
..bbrrpp
-
Break and spread output line.
Same as
\p.
-
..bbrreeaakk
-
Break out of a while loop.
-
..cc22
-
Reset no-break control character to
"''".
-
..cc22 _c
-
Set no-break control character to
c.
-
..cccc
-
Reset control character to
`..'.
-
..cccc _c
-
Set control character to
c.
-
..ccee
-
Center the next input line.
-
..ccee _N
-
Center following
N
input lines.
-
..ccff _f_i_l_e_n_a_m_e
-
Copy contents of file
filename
unprocessed to stdout or to the diversion.
-
..ccffllaaggss _m_o_d_e _c_1 _c_2 _._._.
-
Treat characters
c1,
c2,
...
according to
mode
number.
-
..cchh _t_r_a_p _N
-
Change
trap
location
to
N .
-
..cchhaarr _c _a_n_y_t_h_i_n_g
-
Define character
c
as string
anything.
-
..cchhoopp _o_b_j_e_c_t
-
Chop the last character off macro, string, or diversion
object.
-
..cclloossee _s_t_r_e_a_m
-
Close the
stream.
-
..ccoolloorr
-
Enable colors.
-
..ccoolloorr _N
-
If
N
is zero disable colors, otherwise enable them.
-
..ccoommppoossiittee _f_r_o_m _t_o
-
Map glyph name
from
to glyph name
to
while constructing a composite glyph name.
-
..ccoonnttiinnuuee
-
Finish the current iteration of a while loop.
-
..ccpp
-
Enable compatibility mode.
-
..ccpp _N
-
If
N
is zero disable compatibility mode, otherwise enable it.
-
..ccss _f_o_n_t _N _M
-
Set constant character width mode for
font
to
N/36
ems with em
M.
-
..ccuu _N
-
Continuous underline in nroff, like
.ul
in troff.
-
..ddaa
-
End current diversion.
-
..ddaa _m_a_c_r_o
-
Divert and append to
macro.
-
..ddee _m_a_c_r_o
-
Define or redefine
macro
until
..
is encountered.
-
..ddee _m_a_c_r_o _e_n_d
-
Define or redefine
macro
until
.end
is called.
-
..ddee11 _m_a_c_r_o
-
Same as
.de
but with compatibility mode switched off during macro expansion.
-
..ddee11 _m_a_c_r_o _e_n_d
-
Same as
.de
but with compatibility mode switched off during macro expansion.
-
..ddeeffccoolloorr _c_o_l_o_r _s_c_h_e_m_e _c_o_m_p_o_n_e_n_t
-
Define or redefine a color with name
color.
scheme
can be
rgb,
cym,
cymk,
gray,
or
grey.
component
can be single components specified as fractions in the range 0 to 1
(default scaling indicator ff),
as a string of two-digit hexadecimal color components with a leading
#,
or as a string of four-digit hexadecimal components with two leading
#.
The color
default
can't be redefined.
-
..ddeeii _m_a_c_r_o
-
Define or redefine a macro whose name is contained in the string register
macro
until
..
is encountered.
-
..ddeeii _m_a_c_r_o _e_n_d
-
Define or redefine a macro indirectly.
macro
and
end
are string registers whose contents are interpolated for the macro name
and the end macro, respectively.
-
..ddeeii11 _m_a_c_r_o
-
Same as
.dei
but with compatibility mode switched off during macro expansion.
-
..ddeeii11 _m_a_c_r_o _e_n_d
-
Same as
.dei
but with compatibility mode switched off during macro expansion.
-
..ddii
-
End current diversion.
-
..ddii _m_a_c_r_o
-
Divert to
macro .
-
..ddoo _n_a_m_e
-
Interpret
.name
with compatibility mode disabled.
-
..ddss _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
-
Set
stringvar
to
anything.
-
..ddss11 _s_t_r_i_n_g_v_a_r _a_n_y_t_h_i_n_g
-
Same as
.ds
but with compatibility mode switched off during string expansion.
-
..ddtt _N _t_r_a_p
-
Set diversion trap to position
N
(default scaling indicator vv).
-
..eecc
-
Reset escape character to
`\\'.
-
..eecc _c
-
Set escape character to
c.
-
..eeccrr
-
Restore escape character saved with
.ecs.
-
..eeccss
-
Save current escape character.
-
..eell _a_n_y_t_h_i_n_g
-
Else part for if-else (ie)
request.
-
..eemm _m_a_c_r_o
-
The
macro
will be run after the end of input.
-
..eeoo
-
Turn off escape character mechanism.
-
..eevv
-
Switch to previous environment.
-
..eevv _e_n_v
-
Push down environment number or name
env
and switch to it.
-
..eevvcc _e_n_v
-
Copy the contents of environment
env
to the current environment.
No pushing or popping.
-
..eexx
-
Exit from roff processing.
-
..ffaamm
-
Return to previous font family.
-
..ffaamm _n_a_m_e
-
Set the current font family to
name.
-
..ffcc
-
Disable field mechanism.
-
..ffcc _a
-
Set field delimiter to
a
and pad character to space.
-
..ffcc _a _b
-
Set field delimiter to
a
and pad character to
b.
-
..ffcchhaarr _c _a_n_y_t_h_i_n_g
-
Define fallback character
c
as string
anything.
-
..ffccoolloorr
-
Set fill color to previous fill color.
-
..ffccoolloorr _c
-
Set fill color to
c.
-
..ffii
-
Fill output lines.
-
..ffll
-
Flush output buffer.
-
..ffpp _n _f_o_n_t
-
Mount
font
on position
n.
-
..ffpp _n _i_n_t_e_r_n_a_l _e_x_t_e_r_n_a_l
-
Mount font with long
external
name to short
internal
name on position
n.
-
..ffsscchhaarr _f _c _a_n_y_t_h_i_n_g
-
Define fallback character
c
for font
f
as string
anything.
-
..ffssppeecciiaall _f_o_n_t
-
Reset list of special fonts for
font
to be empty.
-
..ffssppeecciiaall _f_o_n_t _s_1 _s_2 _._._.
-
When the current font is
font,
then the fonts
s1,
s2,
...
will be special.
-
..fftt
-
Return to previous font.
Same as
\f[]
or
\fP.
-
..fftt _f_o_n_t
-
Change to font name or number
font;
same as
\\ff[[_f_o_n_t]]
escape sequence.
-
..ffttrr _f_o_n_t_1 _f_o_n_t_2
-
Translate
font1
to
font2.
-
..ggccoolloorr
-
Set glyph color to previous glyph color.
-
..ggccoolloorr _c
-
Set glyph color to
c.
-
..hhcc
-
Remove additional hyphenation indicator character.
-
..hhcc _c
-
Set up additional hyphenation indicator character c.
-
..hhccooddee _c_1 _c_o_d_e_1 _c_2 _c_o_d_e_2 _._._.
-
Set the hyphenation code of character
c1
to
code1,
that of
c2
to
code2,
etc.
-
..hhllaa _l_a_n_g
-
Set the current hyphenation language to
lang.
-
..hhllmm _n
-
Set the maximum number of consecutive hyphenated lines to
n.
-
..hhppff _f_i_l_e
-
Read hyphenation patterns from
file.
-
..hhppffaa _f_i_l_e
-
Append hyphenation patterns from
file.
-
..hhppffccooddee _f_i_l_e
-
Set input mapping for
.hpf.
-
..hhww _w_o_r_d_s
-
List of
words
with exceptional hyphenation.
-
..hhyy _N
-
Switch to hyphenation mode
N.
-
..hhyymm _n
-
Set the hyphenation margin to
n
(default scaling indicator mm).
-
..hhyyss _n
-
Set the hyphenation space to
n.
-
..iiee _c_o_n_d _a_n_y_t_h_i_n_g
-
If
cond
then
anything
else goto
.el.
-
..iiff _c_o_n_d _a_n_y_t_h_i_n_g
-
If
cond
then
anything;
otherwise do nothing.
-
..iigg
-
Ignore text until
..
is encountered.
-
..iigg _e_n_d
-
Ignore text until
.end.
-
..iinn
-
Change to previous indent value.
-
..iinn _±_N
-
Change indent according to
±N
(default scaling indicator mm).
-
..iitt _N _t_r_a_p
-
Set an input-line count trap for the next
N
lines.
-
..iittcc _N _t_r_a_p
-
Same as
.it
but count lines interrupted with
\c
as one line.
-
..kkeerrnn
-
Enable pairwise kerning.
-
..kkeerrnn _n
-
If
n
is zero, disable pairwise kerning, otherwise enable it.
-
..llcc
-
Remove leader repetition character.
-
..llcc _c
-
Set leader repetition character to c.
-
..lleennggtthh _r_e_g_i_s_t_e_r _a_n_y_t_h_i_n_g
-
Write the length of the string
anything
in
register.
-
..lliinneettaabbss
-
Enable line-tabs mode (i.e., calculate tab positions relative to output
line).
-
..lliinneettaabbss _n
-
If
n
is zero, disable line-tabs mode, otherwise enable it.
-
..llff _N
-
Set input line number to
N.
-
..llff _N _f_i_l_e
-
Set input line number to
N
and filename to
file.
-
..llgg _N
-
Ligature mode on if
N>0.
-
..llll
-
Change to previous line length.
-
..llll _±_N
-
Set line length according to
±N
(default size
6.5ii,
default scaling indicator mm).
-
..llss
-
Change to the previous value of additional intra-line skip.
-
..llss _N
-
Set additional intra-line skip value to
N,
i.e.,
N-1
blank lines are inserted after each text output line.
-
..lltt _±_N
-
Length of title (default scaling indicator mm).
-
..mmcc
-
Margin character off.
-
..mmcc _c
-
Print character
c
after each text line at actual distance from right margin.
-
..mmcc _c _N
-
Set margin character to
c
and distance to
N
from right margin (default scaling indicator mm).
-
..mmkk _r_e_g_i_s_t_e_r
-
Mark current vertical position in
register.
-
..mmssoo _f_i_l_e
-
The same as the .so request except that
file
is searched in the tmac directories.
-
..nnaa
-
No output-line adjusting.
-
..nnee
-
Need a one-line vertical space.
-
..nnee _N
-
Need
N
vertical space (default scaling indicator vv).
-
..nnff
-
No filling or adjusting of output-lines.
-
..nnhh
-
No hyphenation.
-
..nnmm
-
Number mode off.
-
..nnmm _±_N [_M [_S [_I]]]
-
In line number mode, set number, multiple, spacing, and indent.
-
..nnnn
-
Do not number next line.
-
..nnnn _N
-
Do not number next
N
lines.
-
..nnoopp _a_n_y_t_h_i_n_g
-
Always execute
anything.
-
..nnrr _r_e_g_i_s_t_e_r _±_N _M
-
Define or modify
register
using
±N
with auto-increment
M.
-
..nnrrooffff
-
Make the built-in condition
n
true and
t
false.
-
..nnss
-
Turn no-space mode on.
-
..nnxx
-
Immediately jump to end of current file.
-
..nnxx _f_i_l_e_n_a_m_e
-
Next file.
-
..ooppeenn _s_t_r_e_a_m _f_i_l_e_n_a_m_e
-
Open
register
filename
for writing and associate the stream named
register
stream
with it.
-
..ooppeennaa _s_t_r_e_a_m _f_i_l_e_n_a_m_e
-
Like
.open
but append to it.
-
..ooss
-
Output vertical distance that was saved by the
sv
request.
-
..oouuttppuutt _s_t_r_i_n_g
-
Emit
string
directly to intermediate output, allowing leading whitespace if
string
starts with
""
(which will be stripped off).
-
..ppcc
-
Reset page number character to `%%'.
-
..ppcc _c
-
Page number character.
-
..ppii _p_r_o_g_r_a_m
-
Pipe output to
program
(nroff only).
-
..ppll
-
Set page length to default
11ii.
The current page length is stored in
register
.p.
-
..ppll _±_N
-
Change page length to
±N
(default scaling indicator vv).
-
..ppmm
-
Print macro names and sizes (number of blocks of 128 bytes).
-
..ppmm tt
-
Print only total of sizes of macros (number of 128 bytes blocks).
-
..ppnn _±_N
-
Next page number
N.
-
..ppnnrr
-
Print the names and contents of all currently defined number registers
on stderr.
-
..ppoo
-
Change to previous page offset.
The current page offset is available in
register
.o.
-
..ppoo _±_N
-
Page offset
N.
-
..ppss
-
Return to previous point-size.
-
..ppss _±_N
-
Point size; same as
\\ss[[_±_N]].
-
..ppssbbbb _f_i_l_e_n_a_m_e
-
Get the bounding box of a PostScript image
filename.
-
..ppssoo _c_o_m_m_a_n_d
-
This behaves like the
so
request except that input comes from the standard output of
command.
-
..ppttrr
-
Print the names and positions of all traps (not including input line
traps and diversion traps) on stderr.
-
..ppvvss
-
Change to previous post-vertical line spacing.
-
..ppvvss _±_N
-
Change post-vertical line spacing according to
±N
(default scaling indicator pp).
-
..rrcchhaarr _c_1 _c_2 _._._.
-
Remove the definitions of characters
c1,
c2,
...
-
..rrdd _p_r_o_m_p_t
-
Read insertion.
-
..rreettuurrnn
-
Return from a macro.
-
..rreettuurrnn _a_n_y_t_h_i_n_g
-
Return twice, namely from the macro at the current level and from the macro
one level higher.
-
..rrffsscchhaarr _f _c_1 _c_2 _._._.
-
Remove the definitions of characters
c1,
c2,
...
for font
f.
-
..rrjj _n
-
Right justify the next
n
input lines.
-
..rrmm _n_a_m_e
-
Remove request, macro, or string
name.
-
..rrnn _o_l_d _n_e_w
-
Rename request, macro, or string
old
to
new.
-
..rrnnnn _r_e_g_1 _r_e_g_2
-
Rename register
reg1
to
reg2.
-
..rrrr _r_e_g_i_s_t_e_r
-
Remove
register.
-
..rrss
-
Restore spacing; turn no-space mode off.
-
..rrtt _±_N
-
Return
(upward only)
to marked vertical place (default scaling indicator vv).
-
..sscchhaarr _c _a_n_y_t_h_i_n_g
-
Define global fallback character
c
as string
anything.
-
..sshhcc
-
Reset soft hyphen character to
\(hy.
-
..sshhcc _c
-
Set the soft hyphen character to
c.
-
..sshhiifftt _n
-
In a macro, shift the arguments by
n positions.
-
..ssiizzeess _s_1 _s_2 _._._. _s_n [[00]]
<>
SSeett aavvaaiillaabbllee ffoonntt ssiizzeess ssiimmiillaarr ttoo tthhee
<>ssiizzeess</bb>>
ccoommmmaanndd iinn aa
<>DDEESSCC</bb>>
ffiillee..
<>
..ssoo _f_i_l_e_n_a_m_e
<>
IInncclluuddee ssoouurrccee ffiillee..
<>
..sspp
<>
SSkkiipp oonnee lliinnee vveerrttiiccaallllyy..
<>
..sspp _N
<>
SSppaaccee vveerrttiiccaall ddiissttaannccee
<>NN</ii>>
uupp oorr ddoowwnn aaccccoorrddiinngg ttoo ssiiggnn ooff
<>NN</ii>>
((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr vv))..
<>
..ssppeecciiaall
<>
RReesseett gglloobbaall lliisstt ooff ssppeecciiaall ffoonnttss ttoo bbee eemmppttyy..
<>
..ssppeecciiaall _s_1 _s_2 _._._.
<>
FFoonnttss
<>ss11</ii>>,,
<>ss22</ii>>,,
eettcc.. aarree ssppeecciiaall aanndd wwiillll bbee sseeaarrcchheedd ffoorr cchhaarraacctteerrss nnoott iinn tthhee
ccuurrrreenntt ffoonntt..
<>
..sspprreeaaddwwaarrnn
<>
TTooggggllee tthhee sspprreeaadd wwaarrnniinngg oonn aanndd ooffff wwiitthhoouutt cchhaannggiinngg iittss vvaalluuee..
<>
..sspprreeaaddwwaarrnn _l_i_m_i_t
<>
EEmmiitt aa wwaarrnniinngg iiff eeaacchh ssppaaccee iinn aann oouuttppuutt lliinnee iiss wwiiddeenneedd bbyy
<>lliimmiitt</ii>>
oorr mmoorree ((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr mm))..
<>
..ssss _N
<>
SSppaaccee--cchhaarraacctteerr ssiizzee sseett ttoo
<>NN</ii>>//1122
ooff tthhee ssppaacceewwiiddtthh iinn tthhee ccuurrrreenntt ffoonntt..
<>
..ssss _N _M
<>
SSppaaccee--cchhaarraacctteerr ssiizzee sseett ttoo
<>NN</ii>>//1122
aanndd sseenntteennccee ssppaaccee ssiizzee sseett ttoo
<>MM</ii>>//1122
ooff tthhee ssppaacceewwiiddtthh iinn tthhee ccuurrrreenntt ffoonntt ((=1/3 em))..
<>
..ssttyy _n _s_t_y_l_e
<>
AAssssoocciiaattee
<>ssttyyllee</ii>>
wwiitthh ffoonntt ppoossiittiioonn
<>nn</ii>>..
<>
..ssuubbssttrriinngg _x_x _n_1 _n_2
<>
RReeppllaaccee tthhee ssttrriinngg nnaammeedd
<>xxxx</ii>>
wwiitthh tthhee ssuubbssttrriinngg ddeeffiinneedd bbyy tthhee iinnddiicceess
<>nn11</ii>>
aanndd
<>nn22</ii>>..
<>
..ssvv
<>
SSaavvee
11vv
ooff vveerrttiiccaall ssppaaccee..
<>
..ssvv _N
<>
SSaavvee tthhee vveerrttiiccaall ddiissttaannccee
<>NN</ii>>
ffoorr llaatteerr oouuttppuutt wwiitthh
ooss
rreeqquueesstt..
<>
..ssyy _c_o_m_m_a_n_d_-_l_i_n_e
<>
EExxeeccuuttee pprrooggrraamm
<>ccoommmmaanndd--lliinnee</ii>>..
<>
..ttaa TT _N
<>
SSeett ttaabbss aafftteerr eevveerryy ppoossiittiioonn tthhaatt iiss aa mmuullttiippllee ooff
<>NN</ii>>
((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr mm))..
<>
..ttaa _n_1 _n_2 _._._. _n_n TT _r_1 _r_2 _._._. _r_n
<>
SSeett ttaabbss aatt ppoossiittiioonnss
<>nn11</ii>>,,
<>nn22</ii>>,,
......,,
<>nnnn</ii>>,,
tthheenn sseett ttaabbss aatt
<>nnnn</ii>>++<>rr11</ii>>,,
<>nnnn</ii>>++<>rr22</ii>>,,
......,,
<>nnnn</ii>>++<>rrnn</ii>>,,
tthheenn aatt
<>nnnn</ii>>++<>rrnn</ii>>++<>rr11</ii>>,,
<>nnnn</ii>>++<>rrnn</ii>>++<>rr22</ii>>,,
......,,
<>nnnn</ii>>++<>rrnn</ii>>++<>rrnn</ii>>,,
aanndd ssoo oonn..
<>
..ttcc
<>
RReemmoovvee ttaabb rreeppiittiioonn cchhaarraacctteerr..
<>
..ttcc _c
<>
SSeett ttaabb rreeppeettiittiioonn cchhaarraacctteerr ttoo <>cc</ii>>..
<>
..ttii _±_N
<>
TTeemmppoorraarryy iinnddeenntt nneexxtt lliinnee ((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr mm))..
<>
..ttkkff _f_o_n_t _s_1 _n_1 _s_2 _n_2
<>
EEnnaabbllee ttrraacckk kkeerrnniinngg ffoorr
<>ffoonntt</ii>>..
<>
..ttll ''_l_e_f_t''_c_e_n_t_e_r''_r_i_g_h_t''
<>
TThhrreeee--ppaarrtt ttiittllee..
<>
..ttmm _a_n_y_t_h_i_n_g
<>
PPrriinntt
<>aannyytthhiinngg</ii>>
oonn tteerrmmiinnaall ((UUNNIIXX ssttaannddaarrdd mmeessssaaggee oouuttppuutt))..
<>
..ttmm11 _a_n_y_t_h_i_n_g
<>
PPrriinntt
<>aannyytthhiinngg</ii>>
oonn tteerrmmiinnaall ((UUNNIIXX ssttaannddaarrdd mmeessssaaggee oouuttppuutt)),, aalllloowwiinngg lleeaaddiinngg
wwhhiitteessppaaccee iiff
<>aannyytthhiinngg</ii>>
ssttaarrttss wwiitthh
""
((wwhhiicchh wwiillll bbee ssttrriippppeedd ooffff))..
<>
..ttmmcc _a_n_y_t_h_i_n_g
<>
SSiimmiillaarr ttoo
..ttmm11
wwiitthhoouutt eemmiittttiinngg aa ffiinnaall nneewwlliinnee..
<>
..ttrr _a_b_c_d_._._.
<>
TTrraannssllaattee
<>aa</ii>>
ttoo
<>bb</ii>>,,
<>cc</ii>>
ttoo
<>dd</ii>>,,
eettcc.. oonn oouuttppuutt..
<>
..ttrrff _f_i_l_e_n_a_m_e
<>
TTrraannssppaarreennttllyy oouuttppuutt tthhee ccoonntteennttss ooff ffiillee
<>ffiilleennaammee</ii>>..
<>
..ttrriinn _a_b_c_d_._._.
<>
TThhiiss iiss tthhee ssaammee aass tthhee
ttrr
rreeqquueesstt eexxcceepptt tthhaatt tthhee
<>aasscciiiiffyy</bb>>
rreeqquueesstt wwiillll uussee tthhee cchhaarraacctteerr ccooddee ((iiff aannyy)) bbeeffoorree tthhee cchhaarraacctteerr
ttrraannssllaattiioonn..
<>
..ttrrnntt _a_b_c_d_._._.
<>
TThhiiss iiss tthhee ssaammee aass tthhee
ttrr
rreeqquueesstt eexxcceepptt tthhaatt tthhee ttrraannssllaattiioonnss ddoo nnoott aappppllyy ttoo tteexxtt tthhaatt iiss
ttrraannssppaarreennttllyy tthhrroouugghhppuutt iinnttoo aa ddiivveerrssiioonn wwiitthh
<>\\!!</bb>>..
<>
..ttrrooffff
<>
MMaakkee tthhee bbuuiilltt--iinn ccoonnddiittiioonn
<>tt</bb>>
ttrruuee aanndd
<>nn</bb>>
ffaallssee..
<>
..uuff _f_o_n_t
<>
UUnnddeerrlliinnee ffoonntt sseett ttoo
<>ffoonntt</ii>>
((ttoo bbee sswwiittcchheedd ttoo bbyy
<>..uull</bb>>))..
<>
..uull _N
<>
UUnnddeerrlliinnee ((iittaalliicciizzee iinn ttrrooffff))
<>NN</ii>>
iinnppuutt lliinneess..
<>
..uunnffoorrmmaatt _d_i_v_e_r_s_i_o_n
<>
UUnnffoorrmmaatt ssppaaccee cchhaarraacctteerrss aanndd ttaabbss,, pprreesseerrvviinngg ffoonntt iinnffoorrmmaattiioonn iinn
<>ddiivveerrssiioonn</ii>>..
<>
..vvpptt _n
<>
EEnnaabbllee vveerrttiiccaall ppoossiittiioonn ttrraappss iiff
<>nn</ii>>
iiss nnoonn--zzeerroo,, ddiissaabbllee tthheemm ootthheerrwwiissee..
<>
..vvss
<>
CChhaannggee ttoo pprreevviioouuss vveerrttiiccaall bbaassee lliinnee ssppaacciinngg..
<>
..vvss _±_N
<>
SSeett vveerrttiiccaall bbaassee lliinnee ssppaacciinngg aaccccoorrddiinngg ttoo
<>±±NN</ii>>
((ddeeffaauulltt ssccaalliinngg iinnddiiccaattoorr pp))..
DDeeffaauulltt vvaalluuee iiss
1122pp..
<>
..wwaarrnn _n
<>
SSeett wwaarrnniinnggss ccooddee ttoo
<>nn</ii>>..
<>
..wwaarrnnssccaallee _s_i
<>
SSeett ssccaalliinngg iinnddiiccaattoorr uusseedd iinn wwaarrnniinnggss ttoo
<>ssii</ii>>..
<>
..wwhh _N
<>
RReemmoovvee ((ffiirrsstt)) ttrraapp aatt ppoossiittiioonn
<>NN</ii>>..
<>
..wwhh _N _t_r_a_p
<>
SSeett llooccaattiioonn ttrraapp;; nneeggaattiivvee mmeeaannss ffrroomm ppaaggee bboottttoomm..
<>
..wwhhiillee _c_o_n_d _a_n_y_t_h_i_n_g
<>
WWhhiillee ccoonnddiittiioonn
<>ccoonndd</ii>>
iiss ttrruuee,, aacccceepptt
<>aannyytthhiinngg</ii>>
aass iinnppuutt..
<>
..wwrriittee _s_t_r_e_a_m _a_n_y_t_h_i_n_g
<>
WWrriittee
<>aannyytthhiinngg</ii>>
ttoo tthhee ssttrreeaamm nnaammeedd
<>ssttrreeaamm</ii>>..
<>
..wwrriitteecc _s_t_r_e_a_m _a_n_y_t_h_i_n_g
<>
SSiimmiillaarr ttoo
..wwrriittee
wwiitthhoouutt eemmiittttiinngg aa ffiinnaall nneewwlliinnee..
<>
..wwrriitteemm _s_t_r_e_a_m _x_x
<>
WWrriittee ccoonntteennttss ooff mmaaccrroo oorr ssttrriinngg
<>xxxx</ii>>
ttoo tthhee ssttrreeaamm nnaammeedd
<>ssttrreeaamm</ii>>..
</ddll>>
<
>
BBeessiiddeess tthheessee ssttaannddaarrdd ggrrooffff rreeqquueessttss,, tthheerree mmiigghhtt bbee ffuurrtthheerr mmaaccrroo
ccaallllss..
TThheeyy ccaann oorriiggiinnaattee ffrroomm aa mmaaccrroo ppaacckkaaggee ((sseeee
<>rrooffff((77))</aa>>
ffoorr aann oovveerrvviieeww)) oorr ffrroomm aa pprreepprroocceessssoorr..
<>
PPrreepprroocceessssoorr mmaaccrrooss aarree eeaassyy ttoo bbee rreeccooggnniizzeedd..
TThheeyy eenncclloossee tthheeiirr ccooddee iinnttoo aa ppaaiirr ooff cchhaarraacctteerriissttiicc mmaaccrrooss..
<
>
<
>
bbooxx,, cceenntteerr,, ttaabb ((@@));;
cc || cc || cc
CCffCCBB || CCffCCBB || CCffCCBB..
pprreepprroocceessssoorr@@ssttaarrtt mmaaccrroo@@ eenndd mmaaccrroo
==
eeqqnn@@..PPSS@@..PPEE
ggrraapp@@..GG11@@..GG22
ggrrnn@@..GGSS@@..GGEE
ppiicc@@..PPSS@@..PPEE
rreeffeerr@@..RR11@@..RR22
ssooeelliimm@@_n_o_n_e_@_n_o_n_e
_t_b_l_@_._T_S_@_._T_E
_<_/_p_r_e_>
_<_p_>
_<_h_3 _i_d_=_"_E_S_C_A_P_E _S_E_Q_U_E_N_C_E_S_"_> _E_S_C_A_P_E _S_E_Q_U_E_N_C_E_S _<_/_h_3_>
_E_s_c_a_p_e _s_e_q_u_e_n_c_e_s _a_r_e _i_n_-_l_i_n_e _l_a_n_g_u_a_g_e _e_l_e_m_e_n_t_s _u_s_u_a_l_l_y _i_n_t_r_o_d_u_c_e_d _b_y _a
_b_a_c_k_s_l_a_s_h
`\\'
_a_n_d _f_o_l_l_o_w_e_d _b_y _a_n _e_s_c_a_p_e _n_a_m_e _a_n_d _s_o_m_e_t_i_m_e_s _b_y _a _r_e_q_u_i_r_e_d _a_r_g_u_m_e_n_t_.
_I_n_p_u_t _p_r_o_c_e_s_s_i_n_g _i_s _c_o_n_t_i_n_u_e_d _d_i_r_e_c_t_l_y _a_f_t_e_r _t_h_e _e_s_c_a_p_e_d _c_h_a_r_a_c_t_e_r _o_r
_t_h_e _a_r_g_u_m_e_n_t _r_e_s_p_. _w_i_t_h_o_u_t _a_n _i_n_t_e_r_v_e_n_i_n_g _s_e_p_a_r_a_t_i_o_n _c_h_a_r_a_c_t_e_r_.
_S_o _t_h_e_r_e _m_u_s_t _b_e _a _w_a_y _t_o _d_e_t_e_r_m_i_n_e _t_h_e _e_n_d _o_f _t_h_e _e_s_c_a_p_e _n_a_m_e _a_n_d _t_h_e
_e_n_d _o_f _t_h_e _a_r_g_u_m_e_n_t_.
_<_p_>
_T_h_i_s _i_s _d_o_n_e _b_y _e_n_c_l_o_s_i_n_g _n_a_m_e_s _(_e_s_c_a_p_e _n_a_m_e _a_n_d _a_r_g_u_m_e_n_t_s _c_o_n_s_i_s_t_i_n_g
_o_f _a _v_a_r_i_a_b_l_e _n_a_m_e_) _b_y _a _p_a_i_r _o_f _b_r_a_c_k_e_t_s
_<_b_>_[_<_/_b_>_<_i_>_n_a_m_e_<_/_i_>_]
_a_n_d _c_o_n_s_t_a_n_t _a_r_g_u_m_e_n_t_s _(_n_u_m_b_e_r _e_x_p_r_e_s_s_i_o_n_s _a_n_d _c_h_a_r_a_c_t_e_r_s_) _b_y
_a_p_o_s_t_r_o_p_h_e_s _(_A_S_C_I_I _0_x_2_7_) _l_i_k_e
_<_b_>_'_<_/_b_>_<_i_>_c_o_n_s_t_a_n_t_<_/_i_>_<_b_>_'_<_/_b_>_<_i_>.
There are abbreviations for short names.
Two character escape names can be specified by an opening parenthesis
like
\(xy
without a closing counterpart.
And all one-character names different from the special characters
`[['
and
`(('
can even be specified without a marker in the form
\c.
Constant arguments of length 1 can omit the marker apostrophes, too,
but there is no two-character analogue.
While 1-character escape sequences are mainly used for in-line
functions and system related tasks, the 2-letter names following the
\(
construct are used for special characters predefined by the roff system.
Escapes sequences with names of more than two characters
\\[[_n_a_m_e]]
denote user defined named characters (see the
char
request).
Single Character Escapes
-
\\""
Beginning of a comment.
-
Everything up to the end of the line is ignored.
-
\\##
Everything up to and including the next newline is ignored.
-
This is interpreted in copy mode.
This is like
\"
except that the terminating newline is ignored as well.
-
\\**_s
_T_h_e _s_t_r_i_n_g _s_t_o_r_e_d _i_n _t_h_e _s_t_r_i_n_g _v_a_r_i_a_b_l_e _w_i_t_h _1_-_c_h_a_r_a_c_t_e_r _n_a_m_e
_<_d_d_>
_<_i_>_s_<_/_i_>_.
_<_d_t_>
_<_b_>\\**((_s_t
_T_h_e _s_t_r_i_n_g _s_t_o_r_e_d _i_n _t_h_e _s_t_r_i_n_g _v_a_r_i_a_b_l_e _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e
_<_d_d_>
_<_i_>_s_t_<_/_i_>_.
_<_d_t_>
_<_b_>\\**[[_s_t_r_i_n_g_v_a_r _a_r_g_1 _a_r_g_2 _._._.]]
_T_h_e _s_t_r_i_n_g _s_t_o_r_e_d _i_n _t_h_e _s_t_r_i_n_g _v_a_r_i_a_b_l_e _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e
_<_d_d_>
_<_i_>_s_t_r_i_n_g_v_a_r_<_/_i_>_,
_t_a_k_i_n_g
_<_i_>_a_r_g_1_<_/_i_>_,
_<_i_>_a_r_g_2_<_/_i_>_,
_<_i_>_._._._<_/_i_>
_a_s _a_r_g_u_m_e_n_t_s_.
_<_d_t_>
_<_b_>\\$$00
_T_h_e _n_a_m_e _b_y _w_h_i_c_h _t_h_e _c_u_r_r_e_n_t _m_a_c_r_o _w_a_s _i_n_v_o_k_e_d_.
_<_d_d_>
_T_h_e
_a_l_s
_r_e_q_u_e_s_t _c_a_n _m_a_k_e _a _m_a_c_r_o _h_a_v_e _m_o_r_e _t_h_a_n _o_n_e _n_a_m_e_.
_<_d_t_>
_<_b_>\\$$_x
_M_a_c_r_o _o_r _s_t_r_i_n_g _a_r_g_u_m_e_n_t _w_i_t_h _1_-_p_l_a_c_e _n_u_m_b_e_r
_<_d_d_>
_<_i_>_x_<_/_i_>_,
_w_h_e_r_e
_<_i_>_x_<_/_i_>
_i_s _a _d_i_g_i_t _b_e_t_w_e_e_n _1 _a_n_d _9_.
_<_d_t_>
_<_b_>\\$$((_x_y
_M_a_c_r_o _o_r _s_t_r_i_n_g _a_r_g_u_m_e_n_t _w_i_t_h _2_-_d_i_g_i_t _n_u_m_b_e_r
_<_d_d_>
_<_i_>_x_y_<_/_i_>_.
_<_d_t_>
_<_b_>\\$$[[_n_e_x_p]]
_M_a_c_r_o _o_r _s_t_r_i_n_g _a_r_g_u_m_e_n_t _w_i_t_h _n_u_m_b_e_r
_<_d_d_>
_<_i_>_n_e_x_p_<_/_i_>_,
_w_h_e_r_e
_<_i_>_n_e_x_p_<_/_i_>
_i_s _a _n_u_m_e_r_i_c_a_l _e_x_p_r_e_s_s_i_o_n _e_v_a_l_u_a_t_i_n_g _t_o _a_n _i_n_t_e_g_e_r _>_=_1_.
_<_d_t_>
_<_b_>\\$$**
_I_n _a _m_a_c_r_o _o_r _s_t_r_i_n_g_, _t_h_e _c_o_n_c_a_t_e_n_a_t_i_o_n _o_f _a_l_l _t_h_e _a_r_g_u_m_e_n_t_s _s_e_p_a_r_a_t_e_d
_<_d_d_>
_b_y _s_p_a_c_e_s_.
_<_d_t_>
_<_b_>\\$$@@
_I_n _a _m_a_c_r_o _o_r _s_t_r_i_n_g_, _t_h_e _c_o_n_c_a_t_e_n_a_t_i_o_n _o_f _a_l_l _t_h_e _a_r_g_u_m_e_n_t_s _w_i_t_h _e_a_c_h
_<_d_d_>
_s_u_r_r_o_u_n_d_e_d _b_y _d_o_u_b_l_e _q_u_o_t_e_s_, _a_n_d _s_e_p_a_r_a_t_e_d _b_y _s_p_a_c_e_s_.
_<_d_t_>
_<_b_>\\\\
_r_e_d_u_c_e_s _t_o _a _s_i_n_g_l_e _b_a_c_k_s_l_a_s_h_; _u_s_e_f_u_l _t_o _d_e_l_a_y _i_t_s _i_n_t_e_r_p_r_e_t_a_t_i_o_n _a_s
_<_d_d_>
_e_s_c_a_p_e _c_h_a_r_a_c_t_e_r _i_n _c_o_p_y _m_o_d_e_.
_F_o_r _a _p_r_i_n_t_a_b_l_e _b_a_c_k_s_l_a_s_h_, _u_s_e
_<_b_>_\_e_<_/_b_>_,
_o_r _e_v_e_n _b_e_t_t_e_r
_<_b_>_\_[_r_s_]_<_/_b_>_,
_t_o _b_e _i_n_d_e_p_e_n_d_e_n_t _f_r_o_m _t_h_e _c_u_r_r_e_n_t _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r_.
_<_d_t_>
_<_b_>\\''
_T_h_e _a_c_u_t_e _a_c_c_e_n_t _´_; _s_a_m_e _a_s
_<_d_d_>
_<_b_>_\_(_a_a_<_/_b_>_.
_U_n_e_s_c_a_p_e_d_: _a_p_o_s_t_r_o_p_h_e_, _r_i_g_h_t _q_u_o_t_a_t_i_o_n _m_a_r_k_, _s_i_n_g_l_e _q_u_o_t_e _(_A_S_C_I_I _0_x_2_7_)_.
_<_d_t_>
_<_b_>\\``
_T_h_e _g_r_a_v_e _a_c_c_e_n_t _`_; _s_a_m_e _a_s
_<_d_d_>
_<_b_>_\_(_g_a_<_/_b_>_.
_U_n_e_s_c_a_p_e_d_: _l_e_f_t _q_u_o_t_e_, _b_a_c_k_q_u_o_t_e _(_A_S_C_I_I _0_x_6_0_)_.
_<_d_t_>
_<_b_>\\--
_T_h_e _- _s_i_g_n _i_n _t_h_e _c_u_r_r_e_n_t _f_o_n_t_.
_<_d_d_>
_<_d_t_>
_<_b_>\\..
_A_n _u_n_i_n_t_e_r_p_r_e_t_e_d _d_o_t _(_p_e_r_i_o_d_)_, _e_v_e_n _a_t _s_t_a_r_t _o_f _l_i_n_e_.
_<_d_d_>
_<_d_t_>
_<_b_>\\%%
_D_e_f_a_u_l_t _o_p_t_i_o_n_a_l _h_y_p_h_e_n_a_t_i_o_n _c_h_a_r_a_c_t_e_r_.
_<_d_d_>
_<_d_t_>
_<_b_>\\!!
_T_r_a_n_s_p_a_r_e_n_t _l_i_n_e _i_n_d_i_c_a_t_o_r_.
_<_d_d_>
_<_d_t_>
_<_b_>\\??_a_n_y_t_h_i_n_g??
_I_n _a _d_i_v_e_r_s_i_o_n_, _t_h_i_s _w_i_l_l _t_r_a_n_s_p_a_r_e_n_t_l_y _e_m_b_e_d
_<_d_d_>
_<_i_>_a_n_y_t_h_i_n_g_<_/_i_>
_i_n _t_h_e _d_i_v_e_r_s_i_o_n_.
_<_i_>_a_n_y_t_h_i_n_g_<_/_i_>
_i_s _r_e_a_d _i_n _c_o_p_y _m_o_d_e_.
_S_e_e _a_l_s_o _t_h_e _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s
_\_!
_a_n_d
_<_b_>_\_?_<_/_b_>_.
_<_d_t_>
_<_b_>\\_s_p_a_c_e
_U_n_p_a_d_d_a_b_l_e _s_p_a_c_e_-_s_i_z_e _s_p_a_c_e _c_h_a_r_a_c_t_e_r _(_n_o _l_i_n_e _b_r_e_a_k_)_.
_<_d_d_>
_<_d_t_>
_<_b_>\\00
_D_i_g_i_t _w_i_d_t_h_.
_<_d_d_>
_<_d_t_>
_<_b_>\\||
_1_/_6 _e_m _n_a_r_r_o_w _s_p_a_c_e _c_h_a_r_a_c_t_e_r_; _z_e_r_o _w_i_d_t_h _i_n _n_r_o_f_f_.
_<_d_d_>
_<_d_t_>
_<_b_>\\^^
_1_/_1_2 _e_m _h_a_l_f_-_n_a_r_r_o_w _s_p_a_c_e _c_h_a_r_a_c_t_e_r_; _z_e_r_o _w_i_d_t_h _i_n _n_r_o_f_f_.
_<_d_d_>
_<_d_t_>
_<_b_>\\&&
_N_o_n_-_p_r_i_n_t_a_b_l_e_, _z_e_r_o _w_i_d_t_h _c_h_a_r_a_c_t_e_r_.
_<_d_d_>
_<_d_t_>
_<_b_>\\))
_L_i_k_e
_<_d_d_>
_\_&
_e_x_c_e_p_t _t_h_a_t _i_t _b_e_h_a_v_e_s _l_i_k_e _a _c_h_a_r_a_c_t_e_r _d_e_c_l_a_r_e_d _w_i_t_h _t_h_e _c_f_l_a_g_s
_r_e_q_u_e_s_t _t_o _b_e _t_r_a_n_s_p_a_r_e_n_t _f_o_r _t_h_e _p_u_r_p_o_s_e_s _o_f _e_n_d _o_f _s_e_n_t_e_n_c_e
_r_e_c_o_g_n_i_t_i_o_n_.
_<_d_t_>
_<_b_>\\//
_I_n_c_r_e_a_s_e_s _t_h_e _w_i_d_t_h _o_f _t_h_e _p_r_e_c_e_d_i_n_g _c_h_a_r_a_c_t_e_r _s_o _t_h_a_t _t_h_e _s_p_a_c_i_n_g
_<_d_d_>
_b_e_t_w_e_e_n _t_h_a_t _c_h_a_r_a_c_t_e_r _a_n_d _t_h_e _f_o_l_l_o_w_i_n_g _c_h_a_r_a_c_t_e_r _w_i_l_l _b_e _c_o_r_r_e_c_t _i_f
_t_h_e _f_o_l_l_o_w_i_n_g _c_h_a_r_a_c_t_e_r _i_s _a _r_o_m_a_n _c_h_a_r_a_c_t_e_r_.
_<_d_t_>
_<_b_>\\,,
_M_o_d_i_f_i_e_s _t_h_e _s_p_a_c_i_n_g _o_f _t_h_e _f_o_l_l_o_w_i_n_g _c_h_a_r_a_c_t_e_r _s_o _t_h_a_t _t_h_e _s_p_a_c_i_n_g
_<_d_d_>
_b_e_t_w_e_e_n _t_h_a_t _c_h_a_r_a_c_t_e_r _a_n_d _t_h_e _p_r_e_c_e_d_i_n_g _c_h_a_r_a_c_t_e_r _w_i_l_l _c_o_r_r_e_c_t _i_f _t_h_e
_p_r_e_c_e_d_i_n_g _c_h_a_r_a_c_t_e_r _i_s _a _r_o_m_a_n _c_h_a_r_a_c_t_e_r_.
_<_d_t_>
_<_b_>\\~~
_U_n_b_r_e_a_k_a_b_l_e _s_p_a_c_e _t_h_a_t _s_t_r_e_t_c_h_e_s _l_i_k_e _a _n_o_r_m_a_l _i_n_t_e_r_-_w_o_r_d _s_p_a_c_e _w_h_e_n _a
_<_d_d_>
_l_i_n_e _i_s _a_d_j_u_s_t_e_d_.
_<_d_t_>
_<_b_>\\::
_I_n_s_e_r_t_s _a _z_e_r_o_-_w_i_d_t_h _b_r_e_a_k _p_o_i_n_t _(_s_i_m_i_l_a_r _t_o
_<_d_d_>
_\_%
_b_u_t _w_i_t_h_o_u_t _a _s_o_f_t _h_y_p_h_e_n _c_h_a_r_a_c_t_e_r_)_.
_<_d_t_>
_<_b_>\\_n_e_w_l_i_n_e
_I_g_n_o_r_e_d _n_e_w_l_i_n_e_, _f_o_r _c_o_n_t_i_n_u_a_t_i_o_n _l_i_n_e_s_.
_<_d_d_>
_<_d_t_>
_<_b_>\\{{
_B_e_g_i_n _c_o_n_d_i_t_i_o_n_a_l _i_n_p_u_t_.
_<_d_d_>
_<_d_t_>
_<_b_>\\}}
_E_n_d _c_o_n_d_i_t_i_o_n_a_l _i_n_p_u_t_.
_<_d_d_>
_<_d_t_>
_<_b_>\\((_s_c
_T_h_e _s_p_e_c_i_a_l _c_h_a_r_a_c_t_e_r _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e
_<_d_d_>
_<_i_>_s_c_<_/_i_>_,
_s_e_e _s_e_c_t_i_o_n
_<_b_>_S_p_e_c_i_a_l _C_h_a_r_a_c_t_e_r_s_<_/_b_>_.
_<_d_t_>
_<_b_>\\[[_n_a_m_e]]
_T_h_e _n_a_m_e_d _c_h_a_r_a_c_t_e_r _(_o_r _r_a_t_h_e_r _g_l_y_p_h_) _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e
_<_d_d_>
_<_i_>_n_a_m_e_<_/_i_>_.
_<_d_t_>
_<_b_>\\[[_c_o_m_p_1 _c_o_m_p_2 _._._.]]
_A _c_o_m_p_o_s_i_t_e _g_l_y_p_h _w_i_t_h _c_o_m_p_o_n_e_n_t_s
_<_d_d_>
_<_i_>_c_o_m_p_1_<_/_i_>_,
_<_i_>_c_o_m_p_2_<_/_i_>_,
_<_i_>_._._._<_/_i_>
_<_d_t_>
_<_b_>\\aa
_N_o_n_-_i_n_t_e_r_p_r_e_t_e_d _l_e_a_d_e_r _c_h_a_r_a_c_t_e_r_.
_<_d_d_>
_<_d_t_>
_<_b_>\\AA''_a_n_y_t_h_i_n_g''
_I_f
_<_d_d_>
_<_i_>_a_n_y_t_h_i_n_g_<_/_i_>
_i_s _a_c_c_e_p_t_a_b_l_e _a_s _a _n_a_m_e _o_f _a _s_t_r_i_n_g_, _m_a_c_r_o_, _d_i_v_e_r_s_i_o_n_, _r_e_g_i_s_t_e_r_,
_e_n_v_i_r_o_n_m_e_n_t _o_r _f_o_n_t _i_t _e_x_p_a_n_d_s _t_o _1_, _a_n_d _t_o _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
_<_b_>\\bb''_a_b_c_._._.''
_B_r_a_c_k_e_t _b_u_i_l_d_i_n_g _f_u_n_c_t_i_o_n_.
_<_d_d_>
_<_d_t_>
_<_b_>\\BB''_a_n_y_t_h_i_n_g''
_I_f
_<_d_d_>
_<_i_>_a_n_y_t_h_i_n_g_<_/_i_>
_i_s _a_c_c_e_p_t_a_b_l_e _a_s _a _v_a_l_i_d _n_u_m_e_r_i_c _e_x_p_r_e_s_s_i_o_n _i_t _e_x_p_a_n_d_s _t_o _1_, _a_n_d
_t_o _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
_<_b_>\\cc
_I_n_t_e_r_r_u_p_t _t_e_x_t _p_r_o_c_e_s_s_i_n_g_.
_<_d_d_>
_<_d_t_>
_<_b_>\\CC''_c_h_a_r''
_T_h_e _c_h_a_r_a_c_t_e_r _c_a_l_l_e_d
_<_d_d_>
_<_i_>_c_h_a_r_<_/_i_>_;
_s_a_m_e _a_s
\\[[_c_h_a_r]]_,
_b_u_t _c_o_m_p_a_t_i_b_l_e _t_o _o_t_h_e_r _r_o_f_f _v_e_r_s_i_o_n_s_.
_<_d_t_>
_<_b_>\\dd
_F_o_r_w_a_r_d _(_d_o_w_n_) _1_/_2 _e_m _v_e_r_t_i_c_a_l _u_n_i_t _(_1_/_2 _l_i_n_e _i_n _n_r_o_f_f_)_.
_<_d_d_>
_<_d_t_>
_<_b_>\\DD''_c_h_a_r_s_e_q''
_D_r_a_w _a _g_r_a_p_h_i_c_a_l _e_l_e_m_e_n_t _d_e_f_i_n_e_d _b_y _t_h_e _c_h_a_r_a_c_t_e_r_s _i_n
_<_d_d_>
_<_i_>_c_h_a_r_s_e_q_<_/_i_>_;
_s_e_e _g_r_o_f_f _i_n_f_o _f_i_l_e _f_o_r _d_e_t_a_i_l_s_.
_<_d_t_>
_<_b_>\\ee
_P_r_i_n_t_a_b_l_e _v_e_r_s_i_o_n _o_f _t_h_e _c_u_r_r_e_n_t _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r_.
_<_d_d_>
_<_d_t_>
_<_b_>\\EE
_E_q_u_i_v_a_l_e_n_t _t_o _a_n _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r_, _b_u_t _i_s _n_o_t _i_n_t_e_r_p_r_e_t_e_d _i_n _c_o_p_y_-_m_o_d_e_.
_<_d_d_>
_<_d_t_>
_<_b_>\\ff_F
_C_h_a_n_g_e _t_o _f_o_n_t _w_i_t_h _1_-_c_h_a_r_a_c_t_e_r _n_a_m_e _o_r _1_-_d_i_g_i_t _n_u_m_b_e_r
_<_d_d_>
_<_i_>_F_<_/_i_>_.
_<_d_t_>
_<_b_>\\ffPP
_S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _f_o_n_t_.
_<_d_d_>
_<_d_t_>
_<_b_>\\ff((_f_o
_C_h_a_n_g_e _t_o _f_o_n_t _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e _o_r _2_-_d_i_g_i_t _n_u_m_b_e_r
_<_d_d_>
_<_i_>_f_o_<_/_i_>_.
_<_d_t_>
_<_b_>\\ff[[_f_o_n_t]]
_C_h_a_n_g_e _t_o _f_o_n_t _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e _o_r _n_u_m_b_e_r _e_x_p_r_e_s_s_i_o_n
_<_d_d_>
_<_i_>_f_o_n_t_<_/_i_>_.
_<_d_t_>
_<_b_>\\ff[[]]
_S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _f_o_n_t_.
_<_d_d_>
_<_d_t_>
_<_b_>\\FF_f
_C_h_a_n_g_e _t_o _f_o_n_t _f_a_m_i_l_y _w_i_t_h _1_-_c_h_a_r_a_c_t_e_r _n_a_m_e
_<_d_d_>
_<_i_>_f_<_/_i_>_.
_<_d_t_>
_<_b_>\\FF((_f_m
_C_h_a_n_g_e _t_o _f_o_n_t _f_a_m_i_l_y _w_i_t_h _2_-_c_h_a_r_a_c_t_e_r _n_a_m_e
_<_d_d_>
_<_i_>_f_m_<_/_i_>_.
_<_d_t_>
_<_b_>\\FF[[_f_a_m]]
_C_h_a_n_g_e _t_o _f_o_n_t _f_a_m_i_l_y _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e
_<_d_d_>
_<_i_>_f_a_m_<_/_i_>_.
_<_d_t_>
_<_b_>\\FF[[]]
_S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _f_o_n_t _f_a_m_i_l_y_.
_<_d_d_>
_<_d_t_>
_<_b_>\\gg[[_r_e_g]]
_R_e_t_u_r_n _f_o_r_m_a_t _o_f _r_e_g_i_s_t_e_r _w_i_t_h _n_a_m_e
_<_d_d_>
_<_i_>_r_e_g_<_/_i_>
_s_u_i_t_a_b_l_e _f_o_r
_<_b_>_._a_f_<_/_b_>_.
_A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s
\\gg((_x_y
_a_n_d
\\gg_x_.
_<_d_t_>
_<_b_>\\hh''_N''
_L_o_c_a_l _h_o_r_i_z_o_n_t_a_l _m_o_t_i_o_n_; _m_o_v_e _r_i_g_h_t
_<_d_d_>
_<_i_>_N_<_/_i_>
_(_l_e_f_t _i_f _n_e_g_a_t_i_v_e_)_.
_<_d_t_>
_<_b_>\\HH''_N''
_S_e_t _h_e_i_g_h_t _o_f _c_u_r_r_e_n_t _f_o_n_t _t_o
_<_d_d_>
_<_i_>_N_<_/_i_>_.
_<_d_t_>
_<_b_>\\kk[[_r_e_g]]
_M_a_r_k _h_o_r_i_z_o_n_t_a_l _i_n_p_u_t _p_l_a_c_e _i_n _r_e_g_i_s_t_e_r _w_i_t_h _a_r_b_i_t_r_a_r_y _l_e_n_g_t_h _n_a_m_e
_<_d_d_>
_<_i_>_r_e_g_<_/_i_>_.
_A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s
\\kk((_x_y
_a_n_d
\\kk_x_.
_<_d_t_>
_<_b_>\\ll''_N_c''
_H_o_r_i_z_o_n_t_a_l _l_i_n_e _d_r_a_w_i_n_g _f_u_n_c_t_i_o_n _(_o_p_t_i_o_n_a_l_l_y _u_s_i_n_g _c_h_a_r_a_c_t_e_r
_<_d_d_>
_<_i_>_c_<_/_i_>_)_.
_<_d_t_>
_<_b_>\\LL''_N_c''
_V_e_r_t_i_c_a_l _l_i_n_e _d_r_a_w_i_n_g _f_u_n_c_t_i_o_n _(_o_p_t_i_o_n_a_l_l_y _u_s_i_n_g _c_h_a_r_a_c_t_e_r
_<_d_d_>
_<_i_>_c_<_/_i_>_)_.
_<_d_t_>
_<_b_>\\mm[[_c_o_l_o_r]]
_C_h_a_n_g_e _t_o _c_o_l_o_r
_<_d_d_>
_<_i_>_c_o_l_o_r_<_/_i_>_.
_A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s
\\mm((_c_o
_a_n_d
\\mm_c_.
_<_d_t_>
_<_b_>\\mm[[]]
_S_w_i_t_c_h _b_a_c_k _t_o _p_r_e_v_i_o_u_s _c_o_l_o_r_.
_<_d_d_>
_<_d_t_>
_<_b_>\\MM[[_c_o_l_o_r]]
_C_h_a_n_g_e _f_i_l_l_i_n_g _c_o_l_o_r _f_o_r _c_l_o_s_e_d _d_r_a_w_n _o_b_j_e_c_t_s _t_o _c_o_l_o_r
_<_d_d_>
_<_i_>_c_o_l_o_r_<_/_i_>_.
_A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s
\\MM((_c_o
_a_n_d
\\MM_c_.
_<_d_t_>
_<_b_>\\MM[[]]
_S_w_i_t_c_h _t_o _p_r_e_v_i_o_u_s _f_i_l_l _c_o_l_o_r_.
_<_d_d_>
_<_d_t_>
_<_b_>\\nn_r
_T_h_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e _s_t_o_r_e_d _i_n _t_h_e _r_e_g_i_s_t_e_r _v_a_r_i_a_b_l_e _w_i_t_h _t_h_e
_<_d_d_>
_1_-_c_h_a_r_a_c_t_e_r _n_a_m_e
_<_i_>_r_<_/_i_>_.
_<_d_t_>
_<_b_>\\nn((_r_e
_T_h_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e _s_t_o_r_e_d _i_n _t_h_e _r_e_g_i_s_t_e_r _v_a_r_i_a_b_l_e _w_i_t_h _t_h_e
_<_d_d_>
_2_-_c_h_a_r_a_c_t_e_r _n_a_m_e
_<_i_>_r_e_<_/_i_>_.
_<_d_t_>
_<_b_>\\nn[[_r_e_g]]
_T_h_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e _s_t_o_r_e_d _i_n _t_h_e _r_e_g_i_s_t_e_r _v_a_r_i_a_b_l_e _w_i_t_h _a_r_b_i_t_r_a_r_y
_<_d_d_>
_l_e_n_g_t_h _n_a_m_e
_<_i_>_r_e_g_<_/_i_>_.
_<_d_t_>
_<_b_>\\NN''_n''
_T_y_p_e_s_e_t _t_h_e _c_h_a_r_a_c_t_e_r _w_i_t_h _c_o_d_e
_<_d_d_>
_<_i_>_n_<_/_i_>
_i_n _t_h_e _c_u_r_r_e_n_t _f_o_n_t_, _n_o _s_p_e_c_i_a_l _f_o_n_t_s _a_r_e _s_e_a_r_c_h_e_d_.
_U_s_e_f_u_l _f_o_r _a_d_d_i_n_g _c_h_a_r_a_c_t_e_r_s _t_o _a _f_o_n_t _u_s_i_n_g _t_h_e
_c_h_a_r
_r_e_q_u_e_s_t_.
_<_d_t_>
_<_b_>\\oo''_a_b_c_._._.''
_O_v_e_r_s_t_r_i_k_e _c_h_a_r_a_c_t_e_r_s
_<_d_d_>
_<_i_>_a_<_/_i_>_,
_<_i_>_b_<_/_i_>_,
_<_i_>_c_<_/_i_>_,
_e_t_c_.
_<_d_t_>
_<_b_>\\OO_0
_D_i_s_a_b_l_e _g_l_y_p_h _o_u_t_p_u_t_.
_<_d_d_>
_M_a_i_n_l_y _f_o_r _i_n_t_e_r_n_a_l _u_s_e_.
_<_d_t_>
_<_b_>\\OO_1
_E_n_a_b_l_e _g_l_y_p_h _o_u_t_p_u_t_.
_<_d_d_>
_M_a_i_n_l_y _f_o_r _i_n_t_e_r_n_a_l _u_s_e_.
_<_d_t_>
_<_b_>\\pp
_B_r_e_a_k _a_n_d _s_p_r_e_a_d _o_u_t_p_u_t _l_i_n_e_.
_<_d_d_>
_<_d_t_>
_<_b_>\\rr
_R_e_v_e_r_s_e _1 _e_m _v_e_r_t_i_c_a_l _m_o_t_i_o_n _(_r_e_v_e_r_s_e _l_i_n_e _i_n _n_r_o_f_f_)_.
_<_d_d_>
_<_d_t_>
_<_b_>\\RR''_n_a_m_e _±_n''
_T_h_e _s_a_m_e _a_s
_<_d_d_>
_._n_r
_<_i_>_n_a_m_e_<_/_i_>
_<_i_>_±_n_<_/_i_>_.
_<_d_t_>
_<_b_>\\ss[[_±_N]]
_S_e_t _t_h_e _p_o_i_n_t _s_i_z_e _t_o
_<_d_d_>
_<_i_>_N_<_/_i_>
_s_c_a_l_e_d _p_o_i_n_t_s_.
_N_o_t_e _t_h_e _a_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s
_<_b_>_\_s_<_/_b_>_<_i_>_±_<_/_i_>_<_b_>_[_<_/_b_>_<_i_>_N_<_/_i_>_]_,
_<_b_>_\_s_'_<_/_b_>_<_i_>_±_N_<_/_i_>_'_,
_<_b_>_\_s_<_/_b_>_<_i_>_±_<_/_i_>_<_b_>_'_<_/_b_>_<_i_>_N_<_/_i_>_'_,
\\ss((_±_x_y_,
_<_b_>_\_s_<_/_b_>_<_i_>_±_<_/_i_>_<_b_>_(_<_/_b_>_<_i_>_x_y_,
\\ss_±_x_.
_S_a_m_e _a_s
_p_s
_r_e_q_u_e_s_t_.
_<_d_t_>
_<_b_>\\SS''_N''
_S_l_a_n_t _o_u_t_p_u_t
_<_d_d_>
_<_i_>_N_<_/_i_>
_d_e_g_r_e_e_s_.
_<_d_t_>
_<_b_>\\tt
_N_o_n_-_i_n_t_e_r_p_r_e_t_e_d _h_o_r_i_z_o_n_t_a_l _t_a_b_.
_<_d_d_>
_<_d_t_>
_<_b_>\\uu
_R_e_v_e_r_s_e _(_u_p_) _1_/_2 _e_m _v_e_r_t_i_c_a_l _m_o_t_i_o_n _(_1_/_2 _l_i_n_e _i_n _n_r_o_f_f_)_.
_<_d_d_>
_<_d_t_>
_<_b_>\\vv''_N''
_L_o_c_a_l _v_e_r_t_i_c_a_l _m_o_t_i_o_n_; _m_o_v_e _d_o_w_n
_<_d_d_>
_<_i_>_N_<_/_i_>
_(_u_p _i_f _n_e_g_a_t_i_v_e_)_.
_<_d_t_>
_<_b_>\\VV[[_e_n_v]]
_T_h_e _c_o_n_t_e_n_t_s _o_f _t_h_e _e_n_v_i_r_o_n_m_e_n_t _v_a_r_i_a_b_l_e
_<_d_d_>
_<_i_>_e_n_v_<_/_i_>_.
_A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s
\\VV((_x_y
_a_n_d
\\VV_x_.
_<_d_t_>
_<_b_>\\ww''_s_t_r_i_n_g''
_T_h_e _w_i_d_t_h _o_f _t_h_e _c_h_a_r_a_c_t_e_r _s_e_q_u_e_n_c_e
_<_d_d_>
_<_i_>_s_t_r_i_n_g_<_/_i_>_.
_<_d_t_>
_<_b_>\\xx''_N''
_E_x_t_r_a _l_i_n_e_-_s_p_a_c_e _f_u_n_c_t_i_o_n _(_n_e_g_a_t_i_v_e _b_e_f_o_r_e_, _p_o_s_i_t_i_v_e _a_f_t_e_r_)_.
_<_d_d_>
_<_d_t_>
_<_b_>\\XX''_s_t_r_i_n_g''
_O_u_t_p_u_t
_<_d_d_>
_<_i_>_s_t_r_i_n_g_<_/_i_>
_a_s _d_e_v_i_c_e _c_o_n_t_r_o_l _f_u_n_c_t_i_o_n_.
_<_d_t_>
_<_b_>\\YY[[_n_a_m_e]]
_O_u_t_p_u_t _s_t_r_i_n_g _v_a_r_i_a_b_l_e _o_r _m_a_c_r_o
_<_d_d_>
_<_i_>_n_a_m_e_<_/_i_>
_u_n_i_n_t_e_r_p_r_e_t_e_d _a_s _d_e_v_i_c_e _c_o_n_t_r_o_l _f_u_n_c_t_i_o_n_.
_A_l_t_e_r_n_a_t_i_v_e _f_o_r_m_s
\\YY((_x_y
_a_n_d
\\YY_x_.
_<_d_t_>
_<_b_>\\zz_c
_P_r_i_n_t
_<_d_d_>
_<_i_>_c_<_/_i_>
_w_i_t_h _z_e_r_o _w_i_d_t_h _(_w_i_t_h_o_u_t _s_p_a_c_i_n_g_)_.
_<_d_t_>
_<_b_>\\ZZ''_a_n_y_t_h_i_n_g''
_P_r_i_n_t
_<_d_d_>
_<_i_>_a_n_y_t_h_i_n_g_<_/_i_>
_a_n_d _t_h_e_n _r_e_s_t_o_r_e _t_h_e _h_o_r_i_z_o_n_t_a_l _a_n_d _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n_;
_<_i_>_a_n_y_t_h_i_n_g_<_/_i_>
_m_a_y _n_o_t _c_o_n_t_a_i_n _t_a_b_s _o_r _l_e_a_d_e_r_s_.
_<_/_d_l_>
_<_p_>
_T_h_e _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s
_<_b_>_\_e_<_/_b_>_,
_<_b_>_\_._<_/_b_>_,
_<_b_>_\_"_<_/_b_>_,
_<_b_>_\_$_<_/_b_>_,
_<_b_>_\_*_<_/_b_>_,
_<_b_>_\_a_<_/_b_>_,
_<_b_>_\_n_<_/_b_>_,
_<_b_>_\_t_<_/_b_>_,
_<_b_>_\_g_<_/_b_>_,
_a_n_d
\\_n_e_w_l_i_n_e
_a_r_e _i_n_t_e_r_p_r_e_t_e_d _i_n _c_o_p_y _m_o_d_e_.
_<_p_>
_E_s_c_a_p_e _s_e_q_u_e_n_c_e_s _s_t_a_r_t_i_n_g _w_i_t_h
_\_(
_o_r
_\_[
_d_o _n_o_t _r_e_p_r_e_s_e_n_t _s_i_n_g_l_e _c_h_a_r_a_c_t_e_r _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s_, _b_u_t _i_n_t_r_o_d_u_c_e _e_s_c_a_p_e
_n_a_m_e_s _w_i_t_h _t_w_o _o_r _m_o_r_e _c_h_a_r_a_c_t_e_r_s_.
_<_p_>
_I_f _a _b_a_c_k_s_l_a_s_h _i_s _f_o_l_l_o_w_e_d _b_y _a _c_h_a_r_a_c_t_e_r _t_h_a_t _d_o_e_s _n_o_t _c_o_n_s_t_i_t_u_t_e _a
_d_e_f_i_n_e_d _e_s_c_a_p_e _s_e_q_u_e_n_c_e _t_h_e _b_a_c_k_s_l_a_s_h _i_s _s_i_l_e_n_t_l_y _i_g_n_o_r_e_d _a_n_d _t_h_e
_c_h_a_r_a_c_t_e_r _m_a_p_s _t_o _i_t_s_e_l_f_.
_<_h_4 _i_d_=_"_S_p_e_c_i_a_l _C_h_a_r_a_c_t_e_r_s_"_> _S_p_e_c_i_a_l _C_h_a_r_a_c_t_e_r_s _<_/_h_4_>
_C_o_m_m_o_n _s_p_e_c_i_a_l _c_h_a_r_a_c_t_e_r_s _a_r_e _p_r_e_d_e_f_i_n_e_d _b_y _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s _o_f _t_h_e
_f_o_r_m
_<_b_>_\_(_<_/_b_>_<_i_>_x_y_<_/_i_>
_w_i_t_h _c_h_a_r_a_c_t_e_r_s
_<_i_>_x_<_/_i_>
_a_n_d
_<_i_>_y_<_/_i_>_.
_S_o_m_e _o_f _t_h_e_s_e _e_x_i_s_t _i_n _t_h_e _u_s_u_a_l _f_o_n_t _w_h_i_l_e _m_o_s_t _o_f _t_h_e_m _a_r_e _o_n_l_y
_a_v_a_i_l_a_b_l_e _i_n _t_h_e _s_p_e_c_i_a_l _f_o_n_t_.
_B_e_l_o_w _y_o_u_'_l_l _f_i_n_d _a _s_e_l_e_c_t_i_o_n _o_f _t_h_e _m_o_s_t _i_m_p_o_r_t_a_n_t _g_l_y_p_h_s_; _a _c_o_m_p_l_e_t_e
_l_i_s_t _c_a_n _b_e _f_o_u_n_d _i_n
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___c_h_a_r_._h_t_m_l_"_>_g_r_o_f_f___c_h_a_r_(_7_)_<_/_a_>
_<_p_>
_<_d_l _c_o_m_p_a_c_t_>
_<_d_t_>
_<_b_>\\((bbuu
_B_u_l_l_e_t _s_i_g_n
_<_d_d_>
_<_d_t_>
_<_b_>\\((ccoo
_C_o_p_y_r_i_g_h_t
_<_d_d_>
_<_d_t_>
_<_b_>\\((cctt
_C_e_n_t
_<_d_d_>
_<_d_t_>
_<_b_>\\((dddd
_D_o_u_b_l_e _d_a_g_g_e_r
_<_d_d_>
_<_d_t_>
_<_b_>\\((ddee
_D_e_g_r_e_e
_<_d_d_>
_<_d_t_>
_<_b_>\\((ddgg
_D_a_g_g_e_r
_<_d_d_>
_<_d_t_>
_<_b_>\\((rrss
_P_r_i_n_t_a_b_l_e _d_o_u_b_l_e _q_u_o_t_e
_<_d_d_>
_<_d_t_>
_<_b_>\\((eemm
_E_m_-_d_a_s_h
_<_d_d_>
_<_d_t_>
_<_b_>\\((hhyy
_H_y_p_h_e_n
_<_d_d_>
_<_d_t_>
_<_b_>\\((rrgg
_R_e_g_i_s_t_e_r_e_d _s_i_g_n
_<_d_d_>
_<_d_t_>
_<_b_>\\((rrss
_P_r_i_n_t_a_b_l_e _b_a_c_k_s_l_a_s_h _c_h_a_r_a_c_t_e_r
_<_d_d_>
_<_d_t_>
_<_b_>\\((sscc
_S_e_c_t_i_o_n _s_i_g_n
_<_d_d_>
_<_d_t_>
_<_b_>\\((uull
_U_n_d_e_r_l_i_n_e _c_h_a_r_a_c_t_e_r
_<_d_d_>
_<_d_t_>
_<_b_>\\((====
_I_d_e_n_t_i_c_a_l
_<_d_d_>
_<_d_t_>
_<_b_>\\((>>==
_L_a_r_g_e_r _o_r _e_q_u_a_l
_<_d_d_>
_<_d_t_>
_<_b_>\\((<<==
_L_e_s_s _o_r _e_q_u_a_l
_<_d_d_>
_<_d_t_>
_<_b_>\\((!!==
_N_o_t _e_q_u_a_l
_<_d_d_>
_<_d_t_>
_<_b_>\\((-->>
_R_i_g_h_t _a_r_r_o_w
_<_d_d_>
_<_d_t_>
_<_b_>\\((<<--
_L_e_f_t _a_r_r_o_w
_<_d_d_>
_<_d_t_>
_<_b_>\\((++--
_P_l_u_s_-_m_i_n_u_s _s_i_g_n
_<_d_d_>
_<_/_d_l_>
_<_h_4 _i_d_=_"_S_t_r_i_n_g_s_"_> _S_t_r_i_n_g_s _<_/_h_4_>
_S_t_r_i_n_g_s _a_r_e _d_e_f_i_n_e_d _b_y _t_h_e
_d_s
_r_e_q_u_e_s_t _a_n_d _c_a_n _b_e _r_e_t_r_i_e_v_e_d _b_y _t_h_e
_\_*
_e_s_c_a_p_e _s_e_q_u_e_n_c_e_.
_<_p_>
_S_t_r_i_n_g_s _s_h_a_r_e _t_h_e_i_r _n_a_m_e _s_p_a_c_e _w_i_t_h _m_a_c_r_o_s_.
_S_o _s_t_r_i_n_g_s _a_n_d _m_a_c_r_o_s _w_i_t_h_o_u_t _a_r_g_u_m_e_n_t_s _a_r_e _r_o_u_g_h_l_y _e_q_u_i_v_a_l_e_n_t_; _i_t _i_s
_p_o_s_s_i_b_l_e _t_o _c_a_l_l _a _s_t_r_i_n_g _l_i_k_e _a _m_a_c_r_o _a_n_d _v_i_c_e_-_v_e_r_s_a_, _b_u_t _t_h_i_s _o_f_t_e_n
_l_e_a_d_s _t_o _u_n_p_r_e_d_i_c_t_a_b_l_e _r_e_s_u_l_t_s_.
_T_h_e _f_o_l_l_o_w_i_n_g _s_t_r_i_n_g_s _a_r_e _p_r_e_d_e_f_i_n_e_d _i_n _g_r_o_f_f_.
_<_d_l _c_o_m_p_a_c_t_>
_<_d_t_>
\*[..TT]
-
_T_h_e _n_a_m_e _o_f _t_h_e _c_u_r_r_e_n_t _o_u_t_p_u_t _d_e_v_i_c_e _a_s _s_p_e_c_i_f_i_e_d _b_y _t_h_e
--TT
_c_o_m_m_a_n_d _l_i_n_e _o_p_t_i_o_n_.
_<_/_d_l_>
_<_h_3 _i_d_=_"_R_E_G_I_S_T_E_R_S_"_> _R_E_G_I_S_T_E_R_S _<_/_h_3_>
_R_e_g_i_s_t_e_r_s _a_r_e _v_a_r_i_a_b_l_e_s _t_h_a_t _s_t_o_r_e _a _v_a_l_u_e_.
_I_n _g_r_o_f_f_, _m_o_s_t _r_e_g_i_s_t_e_r_s _s_t_o_r_e _n_u_m_e_r_i_c_a_l _v_a_l_u_e_s _(_s_e_e _s_e_c_t_i_o_n
_<_b_>_N_U_M_E_R_I_C_A_L _E_X_P_R_E_S_S_I_O_N_S_<_/_b_>
_a_b_o_v_e_)_, _b_u_t _s_o_m_e _c_a_n _a_l_s_o _h_o_l_d _a _s_t_r_i_n_g _v_a_l_u_e_.
_<_p_>
_E_a_c_h _r_e_g_i_s_t_e_r _i_s _g_i_v_e_n _a _n_a_m_e_.
_A_r_b_i_t_r_a_r_y _r_e_g_i_s_t_e_r_s _c_a_n _b_e _d_e_f_i_n_e_d _a_n_d _s_e_t _w_i_t_h _t_h_e _r_e_q_u_e_s_t
_n_r
_<_i_>_r_e_g_i_s_t_e_r_<_/_i_>_.
_<_p_>
_T_h_e _v_a_l_u_e _s_t_o_r_e_d _i_n _a _r_e_g_i_s_t_e_r _c_a_n _b_e _r_e_t_r_i_e_v_e_d _b_y _t_h_e _e_s_c_a_p_e _s_e_q_u_e_n_c_e_s
_i_n_t_r_o_d_u_c_e_d _b_y
_<_b_>_\_n_<_/_b_>_.
_<_p_>
_M_o_s_t _u_s_e_f_u_l _a_r_e _p_r_e_d_e_f_i_n_e_d _r_e_g_i_s_t_e_r_s_.
_I_n _t_h_e _f_o_l_l_o_w_i_n_g _t_h_e _n_o_t_a_t_i_o_n
_<_i_>_n_a_m_e_<_/_i_>
_i_s _u_s_e_d _t_o _r_e_f_e_r _t_o _a _r_e_g_i_s_t_e_r _c_a_l_l_e_d
_r_e_g_i_s_t_e_r
_n_a_m_e
_t_o _m_a_k_e _c_l_e_a_r _t_h_a_t _w_e _s_p_e_a_k _a_b_o_u_t _r_e_g_i_s_t_e_r_s_.
_P_l_e_a_s_e _k_e_e_p _i_n _m_i_n_d _t_h_a_t _t_h_e
\\nn[[]]
_d_e_c_o_r_a_t_i_o_n _i_s _n_o_t _p_a_r_t _o_f _t_h_e _r_e_g_i_s_t_e_r _n_a_m_e_.
_<_h_4 _i_d_=_"_R_e_a_d_-_o_n_l_y _R_e_g_i_s_t_e_r_s_"_> _R_e_a_d_-_o_n_l_y _R_e_g_i_s_t_e_r_s _<_/_h_4_>
_T_h_e _f_o_l_l_o_w_i_n_g _r_e_g_i_s_t_e_r_s _h_a_v_e _p_r_e_d_e_f_i_n_e_d _v_a_l_u_e_s _t_h_a_t _s_h_o_u_l_d _n_o_t _b_e
_m_o_d_i_f_i_e_d _b_y _t_h_e _u_s_e_r _(_u_s_u_a_l_l_y_, _r_e_g_i_s_t_e_r_s _s_t_a_r_t_i_n_g _w_i_t_h _a _d_o_t _a
_r_e_a_d_-_o_n_l_y_)_.
_M_o_s_t_l_y_, _t_h_e_y _p_r_o_v_i_d_e _i_n_f_o_r_m_a_t_i_o_n _o_n _t_h_e _c_u_r_r_e_n_t _s_e_t_t_i_n_g_s _o_r _s_t_o_r_e
_r_e_s_u_l_t_s _f_r_o_m _r_e_q_u_e_s_t _c_a_l_l_s_.
_<_p_>
_<_d_l _c_o_m_p_a_c_t_>
_<_d_t_>
\n[..$$]
-
_N_u_m_b_e_r _o_f _a_r_g_u_m_e_n_t_s _i_n _t_h_e _c_u_r_r_e_n_t _m_a_c_r_o _o_r _s_t_r_i_n_g_.
_<_d_t_>
\n[..aa]
-
_P_o_s_t_-_l_i_n_e _e_x_t_r_a _l_i_n_e_-_s_p_a_c_e _m_o_s_t _r_e_c_e_n_t_l_y _u_t_i_l_i_z_e_d _u_s_i_n_g
\\xx''_N''_.
_<_d_t_>
\n[..AA]
-
_S_e_t _t_o _1 _i_n
_<_b_>_t_r_o_f_f_<_/_b_>
_i_f _o_p_t_i_o_n
_<_b_>_-_A_<_/_b_>
_i_s _u_s_e_d_; _a_l_w_a_y_s _1 _i_n
_<_b_>_n_r_o_f_f_<_/_b_>_.
_<_d_t_>
\n[..cc]
-
_C_u_r_r_e_n_t _i_n_p_u_t _l_i_n_e _n_u_m_b_e_r_.
_<_d_t_>
\n[..CC]
-
_1 _i_f _c_o_m_p_a_t_i_b_i_l_i_t_y _m_o_d_e _i_s _i_n _e_f_f_e_c_t_, _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
\n[..ccddpp]
-
_T_h_e _d_e_p_t_h _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _a_d_d_e_d _t_o _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t_.
_I_t _i_s _p_o_s_i_t_i_v_e _i_f _t_h_e _c_h_a_r_a_c_t_e_r _e_x_t_e_n_d_s _b_e_l_o_w _t_h_e _b_a_s_e_l_i_n_e_.
_<_d_t_>
\n[..ccee]
-
_T_h_e _n_u_m_b_e_r _o_f _l_i_n_e_s _r_e_m_a_i_n_i_n_g _t_o _b_e _c_e_n_t_e_r_e_d_, _a_s _s_e_t _b_y _t_h_e
_c_e
_r_e_q_u_e_s_t_.
_<_d_t_>
\n[..cchhtt]
-
_T_h_e _h_e_i_g_h_t _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _a_d_d_e_d _t_o _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t_.
_I_t _i_s _p_o_s_i_t_i_v_e _i_f _t_h_e _c_h_a_r_a_c_t_e_r _e_x_t_e_n_d_s _a_b_o_v_e _t_h_e _b_a_s_e_l_i_n_e_.
_<_d_t_>
\n[..ccoolloorr]
-
_1 _i_f _c_o_l_o_r_s _a_r_e _e_n_a_b_l_e_d_, _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
\n[..ccsskk]
-
_T_h_e _s_k_e_w _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _a_d_d_e_d _t_o _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t_.
_T_h_e _s_k_e_w _o_f _a _c_h_a_r_a_c_t_e_r _i_s _h_o_w _f_a_r _t_o _t_h_e _r_i_g_h_t _o_f _t_h_e _c_e_n_t_e_r _o_f _a _c_h_a_r_a_c_t_e_r
_t_h_e _c_e_n_t_e_r _o_f _a_n _a_c_c_e_n_t _o_v_e_r _t_h_a_t _c_h_a_r_a_c_t_e_r _s_h_o_u_l_d _b_e _p_l_a_c_e_d_.
_<_d_t_>
\n[..dd]
-
_C_u_r_r_e_n_t _v_e_r_t_i_c_a_l _p_l_a_c_e _i_n _c_u_r_r_e_n_t _d_i_v_e_r_s_i_o_n_; _e_q_u_a_l _t_o
_r_e_g_i_s_t_e_r
_<_b_>_n_l_<_/_b_>_.
_<_d_t_>
\n[..eevv]
-
_T_h_e _n_a_m_e _o_r _n_u_m_b_e_r _o_f _t_h_e _c_u_r_r_e_n_t _e_n_v_i_r_o_n_m_e_n_t _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_.
_<_d_t_>
\n[..ff]
-
_C_u_r_r_e_n_t _f_o_n_t _n_u_m_b_e_r_.
_<_d_t_>
\n[..ffaamm]
-
_T_h_e _c_u_r_r_e_n_t _f_o_n_t _f_a_m_i_l_y _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_.
_<_d_t_>
\n[..ffnn]
-
_T_h_e _c_u_r_r_e_n_t _(_i_n_t_e_r_n_a_l_) _r_e_a_l _f_o_n_t _n_a_m_e _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_.
_<_d_t_>
\n[..ffpp]
-
_T_h_e _n_u_m_b_e_r _o_f _t_h_e _n_e_x_t _f_r_e_e _f_o_n_t _p_o_s_i_t_i_o_n_.
_<_d_t_>
\n[..gg]
-
_A_l_w_a_y_s _1 _i_n _G_N_U _t_r_o_f_f_.
_M_a_c_r_o_s _s_h_o_u_l_d _u_s_e _i_t _t_o _t_e_s_t _i_f _r_u_n_n_i_n_g _u_n_d_e_r _g_r_o_f_f_.
_<_d_t_>
\n[..hh]
-
_T_e_x_t _b_a_s_e_-_l_i_n_e _h_i_g_h_-_w_a_t_e_r _m_a_r_k _o_n _c_u_r_r_e_n_t _p_a_g_e _o_r _d_i_v_e_r_s_i_o_n_.
_<_d_t_>
\n[..HH]
-
_A_v_a_i_l_a_b_l_e _h_o_r_i_z_o_n_t_a_l _r_e_s_o_l_u_t_i_o_n _i_n _b_a_s_i_c _u_n_i_t_s_.
_<_d_t_>
\n[..hheeiigghhtt]
-
_T_h_e _c_u_r_r_e_n_t _f_o_n_t _h_e_i_g_h_t _a_s _s_e_t _w_i_t_h
_<_b_>_\_H_<_/_b_>_.
_<_d_t_>
\n[..hhllaa]
-
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _l_a_n_g_u_a_g_e _a_s _s_e_t _b_y _t_h_e
_<_b_>_._h_l_a_<_/_b_>
_r_e_q_u_e_s_t_.
_<_d_t_>
\n[..hhllcc]
-
_T_h_e _n_u_m_b_e_r _o_f _i_m_m_e_d_i_a_t_e_l_y _p_r_e_c_e_d_i_n_g _c_o_n_s_e_c_u_t_i_v_e _h_y_p_h_e_n_a_t_e_d _l_i_n_e_s_.
_<_d_t_>
\n[..hhllmm]
-
_T_h_e _m_a_x_i_m_u_m _a_l_l_o_w_e_d _n_u_m_b_e_r _o_f _c_o_n_s_e_c_u_t_i_v_e _h_y_p_h_e_n_a_t_e_d _l_i_n_e_s_, _a_s _s_e_t _b_y
_t_h_e
_h_l_m
_r_e_q_u_e_s_t_.
_<_d_t_>
\n[..hhyy]
-
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _f_l_a_g_s _(_a_s _s_e_t _b_y _t_h_e
_h_y
_r_e_q_u_e_s_t_)_.
_<_d_t_>
\n[..hhyymm]
-
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _m_a_r_g_i_n _(_a_s _s_e_t _b_y _t_h_e
_h_y_m
_r_e_q_u_e_s_t_)_.
_<_d_t_>
\n[..hhyyss]
-
_T_h_e _c_u_r_r_e_n_t _h_y_p_h_e_n_a_t_i_o_n _s_p_a_c_e _(_a_s _s_e_t _b_y _t_h_e
_h_y_s
_r_e_q_u_e_s_t_)_.
_<_d_t_>
\n[..ii]
-
_C_u_r_r_e_n_t _i_d_e_n_t_.
_<_d_t_>
\n[..iinn]
-
_T_h_e _i_n_d_e_n_t _t_h_a_t _a_p_p_l_i_e_s _t_o _t_h_e _c_u_r_r_e_n_t _o_u_t_p_u_t _l_i_n_e_.
_<_d_t_>
\n[..iinntt]
-
_P_o_s_i_t_i_v_e _i_f _l_a_s_t _o_u_t_p_u_t _l_i_n_e _c_o_n_t_a_i_n_s
_<_b_>_\_c_<_/_b_>_.
_<_d_t_>
\n[..kkeerrnn]
-
_1 _i_f _p_a_i_r_w_i_s_e _k_e_r_n_i_n_g _i_s _e_n_a_b_l_e_d_, _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
\n[..ll]
-
_C_u_r_r_e_n_t _l_i_n_e _l_e_n_g_t_h_.
_<_d_t_>
\n[..llgg]
-
_T_h_e _c_u_r_r_e_n_t _l_i_g_a_t_u_r_e _m_o_d_e _(_a_s _s_e_t _b_y _t_h_e
_l_g
_r_e_q_u_e_s_t_)_.
_<_d_t_>
\n[..lliinneettaabbss]
-
_T_h_e _c_u_r_r_e_n_t _l_i_n_e_-_t_a_b_s _m_o_d_e _(_a_s _s_e_t _b_y _t_h_e
_l_i_n_e_t_a_b_s
_r_e_q_u_e_s_t_)_.
_<_d_t_>
\n[..llll]
-
_T_h_e _l_i_n_e _l_e_n_g_t_h _t_h_a_t _a_p_p_l_i_e_s _t_o _t_h_e _c_u_r_r_e_n_t _o_u_t_p_u_t _l_i_n_e_.
_<_d_t_>
\n[..lltt]
-
_T_h_e _t_i_t_l_e _l_e_n_g_t_h _(_a_s _s_e_t _b_y _t_h_e
_l_t
_r_e_q_u_e_s_t_)_.
_<_d_t_>
\n[..mm]
-
_T_h_e _c_u_r_r_e_n_t _d_r_a_w_i_n_g _c_o_l_o_r _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_.
_<_d_t_>
\n[..MM]
-
_T_h_e _c_u_r_r_e_n_t _b_a_c_k_g_r_o_u_n_d _c_o_l_o_r _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_.
_<_d_t_>
\n[..nn]
-
_L_e_n_g_t_h _o_f _t_e_x_t _p_o_r_t_i_o_n _o_n _p_r_e_v_i_o_u_s _o_u_t_p_u_t _l_i_n_e_.
_<_d_t_>
\n[..nnee]
-
_T_h_e _a_m_o_u_n_t _o_f _s_p_a_c_e _t_h_a_t _w_a_s _n_e_e_d_e_d _i_n _t_h_e _l_a_s_t
_n_e
_r_e_q_u_e_s_t _t_h_a_t _c_a_u_s_e_d _a _t_r_a_p _t_o _b_e _s_p_r_u_n_g_.
_U_s_e_f_u_l _i_n _c_o_n_j_u_n_c_t_i_o_n _w_i_t_h
_r_e_g_i_s_t_e_r
_<_b_>_._t_r_u_n_c_<_/_b_>_.
_<_d_t_>
\n[..nnss]
-
_1 _i_f _i_n _n_o_-_s_p_a_c_e _m_o_d_e_, _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
\n[..oo]
-
_C_u_r_r_e_n_t _p_a_g_e _o_f_f_s_e_t_.
_<_d_t_>
\n[..pp]
-
_C_u_r_r_e_n_t _p_a_g_e _l_e_n_g_t_h_.
_<_d_t_>
\n[..ppee]
-
_1 _d_u_r_i_n_g _p_a_g_e _e_j_e_c_t_i_o_n_, _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
\n[..ppnn]
-
_T_h_e _n_u_m_b_e_r _o_f _t_h_e _n_e_x_t _p_a_g_e_: _e_i_t_h_e_r _t_h_e _v_a_l_u_e _s_e_t _b_y _a
_p_n
_r_e_q_u_e_s_t_, _o_r _t_h_e _n_u_m_b_e_r _o_f _t_h_e _c_u_r_r_e_n_t _p_a_g_e _p_l_u_s _1_.
_<_d_t_>
\n[..ppss]
-
_T_h_e _c_u_r_r_e_n_t _p_o_i_n_t_s_i_z_e _i_n _s_c_a_l_e_d _p_o_i_n_t_s_.
_<_d_t_>
\n[..ppssrr]
-
_T_h_e _l_a_s_t_-_r_e_q_u_e_s_t_e_d _p_o_i_n_t_s_i_z_e _i_n _s_c_a_l_e_d _p_o_i_n_t_s_.
_<_d_t_>
\n[..ppvvss]
-
_T_h_e _c_u_r_r_e_n_t _p_o_s_t_-_v_e_r_t_i_c_a_l _l_i_n_e _s_p_a_c_i_n_g_.
_<_d_t_>
\n[..rrjj]
-
_T_h_e _n_u_m_b_e_r _o_f _l_i_n_e_s _t_o _b_e _r_i_g_h_t_-_j_u_s_t_i_f_i_e_d _a_s _s_e_t _b_y _t_h_e _r_j _r_e_q_u_e_s_t_.
_<_d_t_>
\n[..ss]
-
_C_u_r_r_e_n_t _p_o_i_n_t _s_i_z_e _a_s _a _d_e_c_i_m_a_l _f_r_a_c_t_i_o_n_.
_<_d_t_>
\n[..ssllaanntt]
-
_T_h_e _s_l_a_n_t _o_f _t_h_e _c_u_r_r_e_n_t _f_o_n_t _a_s _s_e_t _w_i_t_h
_<_b_>_\_S_<_/_b_>_.
_<_d_t_>
\n[..ssrr]
-
_T_h_e _l_a_s_t _r_e_q_u_e_s_t_e_d _p_o_i_n_t_s_i_z_e _i_n _p_o_i_n_t_s _a_s _a _d_e_c_i_m_a_l _f_r_a_c_t_i_o_n
_(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_.
_<_d_t_>
\n[..ssss]
-
_T_h_e _v_a_l_u_e _o_f _t_h_e _p_a_r_a_m_e_t_e_r_s _s_e_t _b_y _t_h_e _f_i_r_s_t _a_r_g_u_m_e_n_t _o_f _t_h_e
_s_s
_r_e_q_u_e_s_t_.
_<_d_t_>
\n[..ssssss]
-
_T_h_e _v_a_l_u_e _o_f _t_h_e _p_a_r_a_m_e_t_e_r_s _s_e_t _b_y _t_h_e _s_e_c_o_n_d _a_r_g_u_m_e_n_t _o_f _t_h_e
_s_s
_r_e_q_u_e_s_t_.
_<_d_t_>
\n[..ssttyy]
-
_T_h_e _c_u_r_r_e_n_t _f_o_n_t _s_t_y_l_e _(_s_t_r_i_n_g_-_v_a_l_u_e_d_)_.
_<_d_t_>
\n[..tt]
-
_D_i_s_t_a_n_c_e _t_o _t_h_e _n_e_x_t _t_r_a_p_.
_<_d_t_>
\n[..TT]
-
_S_e_t _t_o _1
_i_f _o_p_t_i_o_n
_<_b_>_-_T_<_/_b_>
_i_s _u_s_e_d_.
_<_d_t_>
\n[..ttaabbss]
-
_A _s_t_r_i_n_g _r_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _t_h_e _c_u_r_r_e_n_t _t_a_b _s_e_t_t_i_n_g_s _s_u_i_t_a_b_l_e _f_o_r _u_s_e
_a_s _a_n _a_r_g_u_m_e_n_t _t_o _t_h_e
_t_a
_r_e_q_u_e_s_t_.
_<_d_t_>
\n[..ttrruunncc]
-
_T_h_e _a_m_o_u_n_t _o_f _v_e_r_t_i_c_a_l _s_p_a_c_e _t_r_u_n_c_a_t_e_d _b_y _t_h_e _m_o_s_t _r_e_c_e_n_t_l_y _s_p_r_u_n_g
_v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _t_r_a_p_, _o_r_, _i_f _t_h_e _t_r_a_p _w_a_s _s_p_r_u_n_g _b_y _a
_n_e
_r_e_q_u_e_s_t_, _m_i_n_u_s _t_h_e _a_m_o_u_n_t _o_f _v_e_r_t_i_c_a_l _m_o_t_i_o_n _p_r_o_d_u_c_e_d _b_y
_<_b_>_._n_e_<_/_b_>_.
_I_n _o_t_h_e_r _w_o_r_d_s_, _a_t _t_h_e _p_o_i_n_t _a _t_r_a_p _i_s _s_p_r_u_n_g_, _i_t _r_e_p_r_e_s_e_n_t_s
_t_h_e _d_i_f_f_e_r_e_n_c_e _o_f _w_h_a_t _t_h_e _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _w_o_u_l_d _h_a_v_e _b_e_e_n _b_u_t _f_o_r
_t_h_e _t_r_a_p_, _a_n_d _w_h_a_t _t_h_e _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _a_c_t_u_a_l_l_y _i_s_.
_U_s_e_f_u_l _i_n _c_o_n_j_u_n_c_t_i_o_n _w_i_t_h _t_h_e
_r_e_g_i_s_t_e_r
_<_b_>_._n_e_<_/_b_>_.
_<_d_t_>
\n[..uu]
-
_E_q_u_a_l _t_o _1 _i_n _f_i_l_l _m_o_d_e _a_n_d _0 _i_n _n_o_f_i_l_l _m_o_d_e_.
_<_d_t_>
\n[..UU]
-
_E_q_u_a_l _t_o _1 _i_n _s_a_f_e_r _m_o_d_e _a_n_d _0 _i_n _u_n_s_a_f_e _m_o_d_e_.
_<_d_t_>
\n[..vv]
-
_C_u_r_r_e_n_t _v_e_r_t_i_c_a_l _l_i_n_e _s_p_a_c_i_n_g_.
_<_d_t_>
\n[..VV]
-
_A_v_a_i_l_a_b_l_e _v_e_r_t_i_c_a_l _r_e_s_o_l_u_t_i_o_n _i_n _b_a_s_i_c _u_n_i_t_s_.
_<_d_t_>
\n[..vvpptt]
-
_1 _i_f _v_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _t_r_a_p_s _a_r_e _e_n_a_b_l_e_d_, _0 _o_t_h_e_r_w_i_s_e_.
_<_d_t_>
\n[..ww]
-
_W_i_d_t_h _o_f _p_r_e_v_i_o_u_s _c_h_a_r_a_c_t_e_r_.
_<_d_t_>
\n[..wwaarrnn]
-
_T_h_e _s_u_m _o_f _t_h_e _n_u_m_b_e_r _c_o_d_e_s _o_f _t_h_e _c_u_r_r_e_n_t_l_y _e_n_a_b_l_e_d _w_a_r_n_i_n_g_s_.
_<_d_t_>
\n[..xx]
-
_T_h_e _m_a_j_o_r _v_e_r_s_i_o_n _n_u_m_b_e_r_.
_<_d_t_>
\n[..yy]
-
_T_h_e _m_i_n_o_r _v_e_r_s_i_o_n _n_u_m_b_e_r_.
_<_d_t_>
\n[..YY]
-
_T_h_e _r_e_v_i_s_i_o_n _n_u_m_b_e_r _o_f _g_r_o_f_f_.
_<_d_t_>
\n[..zz]
-
_N_a_m_e _o_f _c_u_r_r_e_n_t _d_i_v_e_r_s_i_o_n_.
_<_/_d_l_>
_<_h_4 _i_d_=_"_W_r_i_t_a_b_l_e _R_e_g_i_s_t_e_r_s_"_> _W_r_i_t_a_b_l_e _R_e_g_i_s_t_e_r_s _<_/_h_4_>
_T_h_e _f_o_l_l_o_w_i_n_g _r_e_g_i_s_t_e_r_s _c_a_n _b_e _r_e_a_d _a_n_d _w_r_i_t_t_e_n _b_y _t_h_e _u_s_e_r_.
_T_h_e_y _h_a_v_e _p_r_e_d_e_f_i_n_e_d _d_e_f_a_u_l_t _v_a_l_u_e_s_, _b_u_t _t_h_e_s_e _c_a_n _b_e _m_o_d_i_f_i_e_d _f_o_r
_c_u_s_t_o_m_i_z_i_n_g _a _d_o_c_u_m_e_n_t_.
_<_p_>
_<_d_l _c_o_m_p_a_c_t_>
_<_d_t_>
\n[%%]
-
_C_u_r_r_e_n_t _p_a_g_e _n_u_m_b_e_r_.
_<_d_t_>
\n[cc..]
-
_C_u_r_r_e_n_t _i_n_p_u_t _l_i_n_e _n_u_m_b_e_r_.
_<_d_t_>
\n[cctt]
-
_C_h_a_r_a_c_t_e_r _t_y_p_e _(_s_e_t _b_y _w_i_d_t_h _f_u_n_c_t_i_o_n
_<_b_>_\_w_<_/_b_>_)_.
_<_d_t_>
\n[ddll]
-
_M_a_x_i_m_a_l _w_i_d_t_h _o_f _l_a_s_t _c_o_m_p_l_e_t_e_d _d_i_v_e_r_s_i_o_n_.
_<_d_t_>
\n[ddnn]
-
_H_e_i_g_h_t _o_f _l_a_s_t _c_o_m_p_l_e_t_e_d _d_i_v_e_r_s_i_o_n_.
_<_d_t_>
\n[ddww]
-
_C_u_r_r_e_n_t _d_a_y _o_f _w_e_e_k _(_1_-_7_)_.
_<_d_t_>
\n[ddyy]
-
_C_u_r_r_e_n_t _d_a_y _o_f _m_o_n_t_h _(_1_-_3_1_)_.
_<_d_t_>
\n[hhoouurrss]
-
_T_h_e _n_u_m_b_e_r _o_f _h_o_u_r_s _p_a_s_t _m_i_d_n_i_g_h_t_.
_I_n_i_t_i_a_l_i_z_e_d _a_t _s_t_a_r_t_-_u_p_.
_<_d_t_>
\n[hhpp]
-
_C_u_r_r_e_n_t _h_o_r_i_z_o_n_t_a_l _p_o_s_i_t_i_o_n _a_t _i_n_p_u_t _l_i_n_e_.
_<_d_t_>
\n[llllxx]
-
_L_o_w_e_r _l_e_f_t _x_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t
_i_m_a_g_e _(_s_e_t _b_y
_<_b_>_._p_s_b_b_<_/_b_>_)_.
_<_d_t_>
\n[llllyy]
-
_L_o_w_e_r _l_e_f_t _y_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t
_i_m_a_g_e _(_s_e_t _b_y
_<_b_>_._p_s_b_b_<_/_b_>_)_.
_<_d_t_>
\n[llnn]
-
_O_u_t_p_u_t _l_i_n_e _n_u_m_b_e_r_.
_<_d_t_>
\n[mmiinnuutteess]
-
_T_h_e _n_u_m_b_e_r _o_f _m_i_n_u_t_e_s _a_f_t_e_r _t_h_e _h_o_u_r_.
_I_n_i_t_i_a_l_i_z_e_d _a_t _s_t_a_r_t_-_u_p_.
_<_d_t_>
\n[mmoo]
-
_C_u_r_r_e_n_t _m_o_n_t_h _(_1_-_1_2_)_.
_<_d_t_>
\n[nnll]
-
_V_e_r_t_i_c_a_l _p_o_s_i_t_i_o_n _o_f _l_a_s_t _p_r_i_n_t_e_d _t_e_x_t _b_a_s_e_-_l_i_n_e_.
_<_d_t_>
\n[rrssbb]
-
_L_i_k_e
_r_e_g_i_s_t_e_r
_<_b_>_s_b_<_/_b_>_,
_b_u_t _t_a_k_e_s _a_c_c_o_u_n_t _o_f _t_h_e _h_e_i_g_h_t_s _a_n_d _d_e_p_t_h_s _o_f _c_h_a_r_a_c_t_e_r_s_.
_<_d_t_>
\n[rrsstt]
-
_L_i_k_e
_r_e_g_i_s_t_e_r
_<_b_>_s_t_<_/_b_>_,
_b_u_t _t_a_k_e_s _a_c_c_o_u_n_t _o_f _t_h_e _h_e_i_g_h_t_s _a_n_d _d_e_p_t_h_s _o_f _c_h_a_r_a_c_t_e_r_s_.
_<_d_t_>
\n[ssbb]
-
_D_e_p_t_h _o_f _s_t_r_i_n_g _b_e_l_o_w _b_a_s_e _l_i_n_e _(_g_e_n_e_r_a_t_e_d _b_y _w_i_d_t_h _f_u_n_c_t_i_o_n
_<_b_>_\_w_<_/_b_>_)_.
_<_d_t_>
\n[sseeccoonnddss]
-
_T_h_e _n_u_m_b_e_r _o_f _s_e_c_o_n_d_s _a_f_t_e_r _t_h_e _m_i_n_u_t_e_.
_I_n_i_t_i_a_l_i_z_e_d _a_t _s_t_a_r_t_-_u_p_.
_<_d_t_>
\n[sskkww]
-
_R_i_g_h_t _s_k_i_p _w_i_d_t_h _f_r_o_m _t_h_e _c_e_n_t_e_r _o_f _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _i_n _t_h_e
_\_w
_a_r_g_u_m_e_n_t_.
_<_d_t_>
\n[sslliimmiitt]
-
_I_f _g_r_e_a_t_e_r _t_h_a_n _0_, _t_h_e _m_a_x_i_m_u_m _n_u_m_b_e_r _o_f _o_b_j_e_c_t_s _o_n _t_h_e _i_n_p_u_t _s_t_a_c_k_.
_I_f _<_=_0 _t_h_e_r_e _i_s _n_o _l_i_m_i_t_, _i_._e_._, _r_e_c_u_r_s_i_o_n _c_a_n _c_o_n_t_i_n_u_e _u_n_t_i_l _v_i_r_t_u_a_l
_m_e_m_o_r_y _i_s _e_x_h_a_u_s_t_e_d_.
_<_d_t_>
\n[sssscc]
-
_T_h_e _a_m_o_u_n_t _o_f _h_o_r_i_z_o_n_t_a_l _s_p_a_c_e _(_p_o_s_s_i_b_l_y _n_e_g_a_t_i_v_e_) _t_h_a_t _s_h_o_u_l_d _b_e
_a_d_d_e_d _t_o _t_h_e _l_a_s_t _c_h_a_r_a_c_t_e_r _b_e_f_o_r_e _a _s_u_b_s_c_r_i_p_t _(_g_e_n_e_r_a_t_e_d _b_y _w_i_d_t_h
_f_u_n_c_t_i_o_n
_<_b_>_\_w_<_/_b_>_)_.
_<_d_t_>
\n[sstt]
-
_H_e_i_g_h_t _o_f _s_t_r_i_n_g _a_b_o_v_e _b_a_s_e _l_i_n_e _(_g_e_n_e_r_a_t_e_d _b_y _w_i_d_t_h _f_u_n_c_t_i_o_n
_<_b_>_\_w_<_/_b_>_)_.
_<_d_t_>
\n[ssyyssttaatt]
-
_T_h_e _r_e_t_u_r_n _v_a_l_u_e _o_f _t_h_e
_<_i_>_s_y_s_t_e_m_(_)_<_/_i_>
_f_u_n_c_t_i_o_n _e_x_e_c_u_t_e_d _b_y _t_h_e _l_a_s_t
_s_y
_r_e_q_u_e_s_t_.
_<_d_t_>
\n[uurrxx]
-
_U_p_p_e_r _r_i_g_h_t _x_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t
_i_m_a_g_e _(_s_e_t _b_y
_<_b_>_._p_s_b_b_<_/_b_>_)_.
_<_d_t_>
\n[uurryy]
-
_U_p_p_e_r _r_i_g_h_t _y_-_c_o_o_r_d_i_n_a_t_e _(_i_n _P_o_s_t_S_c_r_i_p_t _u_n_i_t_s_) _o_f _a _g_i_v_e_n _P_o_s_t_S_c_r_i_p_t
_i_m_a_g_e _(_s_e_t _b_y
_<_b_>_._p_s_b_b_<_/_b_>_)_.
_<_d_t_>
\n[yyeeaarr]
-
_T_h_e _c_u_r_r_e_n_t _y_e_a_r _(_y_e_a_r _2_0_0_0 _c_o_m_p_l_i_a_n_t_)_.
_<_d_t_>
\n[yyrr]
-
_C_u_r_r_e_n_t _y_e_a_r _m_i_n_u_s _1_9_0_0_.
_F_o_r _Y_2_K _c_o_m_p_l_i_a_n_c_e _u_s_e
_r_e_g_i_s_t_e_r
_y_e_a_r
_i_n_s_t_e_a_d_.
_<_/_d_l_>
_<_h_3 _i_d_=_"_C_O_M_P_A_T_I_B_I_L_I_T_Y_"_> _C_O_M_P_A_T_I_B_I_L_I_T_Y _<_/_h_3_>
_T_h_e _d_i_f_f_e_r_e_n_c_e_s _o_f _t_h_e _g_r_o_f_f _l_a_n_g_u_a_g_e _i_n _c_o_m_p_a_r_i_s_o_n _t_o _c_l_a_s_s_i_c_a_l _t_r_o_f_f
_a_s _d_e_f_i_n_e_d _b_y
_<_i_>_[_C_S_T_R _#_5_4_]_<_/_i_>
_a_r_e _d_o_c_u_m_e_n_t_e_d _i_n
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___d_i_f_f_._h_t_m_l_"_>_g_r_o_f_f___d_i_f_f_(_7_)_<_/_a_>
_<_p_>
_T_h_e _g_r_o_f_f _s_y_s_t_e_m _p_r_o_v_i_d_e_s _a _c_o_m_p_a_t_i_b_i_l_i_t_y _m_o_d_e_, _s_e_e
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_1_/_g_r_o_f_f_._h_t_m_l_"_>_g_r_o_f_f_(_1_)_<_/_a_>
_o_n _h_o_w _t_o _i_n_v_o_k_e _t_h_i_s_.
_<_h_3 _i_d_=_"_B_U_G_S_"_> _B_U_G_S _<_/_h_3_>
_R_e_p_o_r_t _b_u_g_s _t_o _t_h_e
_g_r_o_f_f _b_u_g _m_a_i_l_i_n_g _l_i_s_t _<_b_u_g_-_g_r_o_f_f_@_g_n_u_._o_r_g_>_.
_I_n_c_l_u_d_e _a _c_o_m_p_l_e_t_e_, _s_e_l_f_-_c_o_n_t_a_i_n_e_d _e_x_a_m_p_l_e _t_h_a_t _w_i_l_l _a_l_l_o_w _t_h_e _b_u_g _t_o
_b_e _r_e_p_r_o_d_u_c_e_d_, _a_n_d _s_a_y _w_h_i_c_h _v_e_r_s_i_o_n _o_f _g_r_o_f_f _y_o_u _a_r_e _u_s_i_n_g_.
_<_h_3 _i_d_=_"_A_U_T_H_O_R_S_"_> _A_U_T_H_O_R_S _<_/_h_3_>
_C_o_p_y_r_i_g_h_t _(_C_) _2_0_0_0_, _2_0_0_1_, _2_0_0_2_, _2_0_0_3_, _2_0_0_4_, _2_0_0_5
_F_r_e_e _S_o_f_t_w_a_r_e _F_o_u_n_d_a_t_i_o_n_, _I_n_c_.
_<_p_>
_T_h_i_s _d_o_c_u_m_e_n_t _i_s _d_i_s_t_r_i_b_u_t_e_d _u_n_d_e_r _t_h_e _t_e_r_m_s _o_f _t_h_e _F_D_L _(_G_N_U _F_r_e_e
_D_o_c_u_m_e_n_t_a_t_i_o_n _L_i_c_e_n_s_e_) _v_e_r_s_i_o_n _1_._1 _o_r _l_a_t_e_r_.
_Y_o_u _s_h_o_u_l_d _h_a_v_e _r_e_c_e_i_v_e_d _a _c_o_p_y _o_f _t_h_e _F_D_L _o_n _y_o_u_r _s_y_s_t_e_m_, _i_t _i_s _a_l_s_o
_a_v_a_i_l_a_b_l_e _o_n_-_l_i_n_e _a_t _t_h_e
_G_N_U _c_o_p_y_l_e_f_t _s_i_t_e _<_h_t_t_p_:_/_/_w_w_w_._g_n_u_._o_r_g_/_c_o_p_y_l_e_f_t_/_f_d_l_._h_t_m_l_>_.
_<_p_>
_T_h_i_s _d_o_c_u_m_e_n_t _i_s _p_a_r_t _o_f
_<_i_>_g_r_o_f_f_<_/_i_>_,
_t_h_e _G_N_U _r_o_f_f _d_i_s_t_r_i_b_u_t_i_o_n_.
_I_t _w_a_s _w_r_i_t_t_e_n _b_y
_B_e_r_n_d _W_a_r_k_e_n _<_b_w_a_r_k_e_n_@_m_a_y_n_._d_e_>_;
_i_t _i_s _m_a_i_n_t_a_i_n_e_d _b_y
_W_e_r_n_e_r _L_e_m_b_e_r_g _<_w_l_@_g_n_u_._o_r_g_>_.
_<_h_3 _i_d_=_"_S_E_E _A_L_S_O_"_> _S_E_E _A_L_S_O _<_/_h_3_>
_<_p_>
_T_h_e _m_a_i_n _s_o_u_r_c_e _o_f _i_n_f_o_r_m_a_t_i_o_n _f_o_r _t_h_e _g_r_o_f_f _l_a_n_g_u_a_g_e _i_s _t_h_e
_<_b_>_g_r_o_f_f_<_/_b_>
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_1_/_i_n_f_o_._h_t_m_l_"_>_i_n_f_o_(_1_)_<_/_a_>
_f_i_l_e_.
_B_e_s_i_d_e_s _t_h_e _g_o_r_y _d_e_t_a_i_l_s_, _i_t _c_o_n_t_a_i_n_s _m_a_n_y _e_x_a_m_p_l_e_s_.
_<_d_l _c_o_m_p_a_c_t_>
_<_d_t_>
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_1_/_g_r_o_f_f_._h_t_m_l_"_>_g_r_o_f_f_(_1_)_<_/_a_>
_<_d_d_>
_t_h_e _u_s_a_g_e _o_f _t_h_e _g_r_o_f_f _p_r_o_g_r_a_m _a_n_d _p_o_i_n_t_e_r_s _t_o _t_h_e _d_o_c_u_m_e_n_t_a_t_i_o_n _a_n_d
_a_v_a_i_l_a_b_i_l_i_t_y _o_f _t_h_e _g_r_o_f_f _s_y_s_t_e_m_.
_<_d_t_>
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___d_i_f_f_._h_t_m_l_"_>_g_r_o_f_f___d_i_f_f_(_7_)_<_/_a_>
_<_d_d_>
_t_h_e _d_i_f_f_e_r_e_n_c_e_s _o_f _t_h_e _g_r_o_f_f _l_a_n_g_u_a_g_e _a_s _c_o_m_p_a_r_e_d _t_o _c_l_a_s_s_i_c_a_l _r_o_f_f_.
_T_h_i_s _i_s _t_h_e _a_u_t_h_o_r_i_t_a_t_i_v_e _d_o_c_u_m_e_n_t _f_o_r _t_h_e _p_r_e_d_e_f_i_n_e_d _l_a_n_g_u_a_g_e
_e_l_e_m_e_n_t_s _t_h_a_t _a_r_e _s_p_e_c_i_f_i_c _t_o _g_r_o_f_f_.
_<_d_t_>
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_g_r_o_f_f___c_h_a_r_._h_t_m_l_"_>_g_r_o_f_f___c_h_a_r_(_7_)_<_/_a_>
_<_d_d_>
_t_h_e _p_r_e_d_e_f_i_n_e_d _g_r_o_f_f _c_h_a_r_a_c_t_e_r_s _(_g_l_y_p_h_s_)_.
_<_d_t_>
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_5_/_g_r_o_f_f___f_o_n_t_._h_t_m_l_"_>_g_r_o_f_f___f_o_n_t_(_5_)_<_/_a_>
_<_d_d_>
_t_h_e _s_p_e_c_i_f_i_c_a_t_i_o_n _o_f _f_o_n_t_s _a_n_d _t_h_e _D_E_S_C _f_i_l_e_.
_<_d_t_>
_<_a _h_r_e_f_=_"_._._/_h_t_m_l_7_/_r_o_f_f_._h_t_m_l_"_>_r_o_f_f_(_7_)_<_/_a_>
_<_d_d_>
_t_h_e _h_i_s_t_o_r_y _o_f _r_o_f_f_, _t_h_e _c_o_m_m_o_n _p_a_r_t_s _s_h_a_r_e_d _b_y _a_l_l _r_o_f_f _s_y_s_t_e_m_s_, _a_n_d
_p_o_i_n_t_e_r_s _t_o _f_u_r_t_h_e_r _d_o_c_u_m_e_n_t_a_t_i_o_n_.
_<_d_t_>
_<_i_>_[_C_S_T_R _#_5_4_]_<_/_i_>
_<_d_d_>
_N_r_o_f_f_/_T_r_o_f_f _U_s_e_r_'_s _M_a_n_u_a_l _b_y _O_s_a_n_n_a _& _K_e_r_n_i_g_h_a_n _<_h_t_t_p_:_/_/_c_m_._b_e_l_l_-_l_a_b_s_._c_o_m_/_c_m_/_c_s_/_5_4_._p_s_>
_-_- _t_h_e _b_i_b_l_e _f_o_r _c_l_a_s_s_i_c_a_l _t_r_o_f_f_.
_<_/_b_o_d_y_>
_<_/_h_t_m_l_>