760 lines
19 KiB
Groff
760 lines
19 KiB
Groff
.\" manual page for cawf(1)
|
|
.\"
|
|
.\"
|
|
.\" Copyright (c) 1991 Purdue University Research Foundation,
|
|
.\" West Lafayette, Indiana 47907. All rights reserved.
|
|
.\"
|
|
.\" Written by Victor A. Abell <abe@cc.purdue.edu>, Purdue
|
|
.\" University Computing Center. Not derived from licensed software;
|
|
.\" derived from awf(1) by Henry Spencer of the University of Toronto.
|
|
.\"
|
|
.\" Permission is granted to anyone to use this software for any
|
|
.\" purpose on any computer system, and to alter it and redistribute
|
|
.\" it freely, subject to the following restrictions:
|
|
.\"
|
|
.\" 1. The author is not responsible for any consequences of use of
|
|
.\" this software, even if they arise from flaws in it.
|
|
.\"
|
|
.\" 2. The origin of this software must not be misrepresented, either
|
|
.\" by explicit claim or by omission. Credits must appear in the
|
|
.\" documentation.
|
|
.\"
|
|
.\" 3. Altered versions must be plainly marked as such, and must not
|
|
.\" be misrepresented as being the original software. Credits must
|
|
.\" appear in the documentation.
|
|
.\"
|
|
.\" 4. This notice may not be removed or altered.
|
|
.\"
|
|
.\" Some of the stuff in this file is a bit contorted, because it's also
|
|
.\" the regression-test input.
|
|
.nr ES 5n
|
|
.de ES
|
|
.PP
|
|
.in +\\n(ESu
|
|
.nf
|
|
..
|
|
.de EE
|
|
.in -\\n(ESu
|
|
.fi
|
|
.PP
|
|
..
|
|
.de PT
|
|
.ie \\n(.$>1 .TP "\\$2"
|
|
.el .TP
|
|
.ie !'\\$1'' \\$1
|
|
.el \(bu
|
|
..
|
|
.ds Nr \fInroff\fR
|
|
.TH CAWF 1 "November, 1992"
|
|
.BY "Purdue University"
|
|
.SH NAME
|
|
cawf, nroff \- C version of the nroff-like, Amazingly Workable (text) Formatter
|
|
.SH SYNOPSIS
|
|
.B cawf
|
|
.RB [ \-c\c
|
|
.IR config ]
|
|
.RB [ \-d\c
|
|
.IR device ]
|
|
.RB [ \-e ]
|
|
.RB [ \-f\c
|
|
.IR font ]
|
|
.RB [ \-h ]
|
|
.RB [ \-m\c
|
|
.IR acros ]
|
|
.RI [ file " ...]"
|
|
.SH DESCRIPTION
|
|
.I Cawf
|
|
formats the text from the input \fIfile\fR(s)
|
|
(standard input if none)
|
|
in an approximation of \*(Nr.
|
|
It comes closest to duplicating \*(Nr's
|
|
.B man
|
|
or
|
|
.B ms
|
|
macro package styles.
|
|
It has some limited support for \*(Nr's
|
|
.B me
|
|
macros.
|
|
.SH OPTIONS
|
|
Options must precede file names.
|
|
.TP
|
|
.BI \-c config
|
|
defines an alternate path to the device configuration file.
|
|
Normally the device configuration file is found in
|
|
.I device.cf
|
|
in the
|
|
.I cawf
|
|
library (see the
|
|
.B FILES
|
|
section).
|
|
.IP
|
|
The device configuration file contains device character strings for
|
|
selecting fonts and the bold or italic type faces.
|
|
See the
|
|
.B DEVICES
|
|
section for more information.
|
|
.TP
|
|
.BI \-d device
|
|
specifies the name of the output device.
|
|
There are three built\-in devices \- ANSI, NONE and NORMAL \- and
|
|
other devices may be defined in the device configuration file.
|
|
See the
|
|
.B DEVICES
|
|
section for more information.
|
|
.IP
|
|
The NORMAL device is the default.
|
|
.TP
|
|
.B \-e
|
|
directs
|
|
.I cawf
|
|
to issue an eject (FF or ^L) after the last page.
|
|
.TP
|
|
.BI \-f font
|
|
specifies the one font for the device, declared with the
|
|
.BI \-d device
|
|
option, that is to be used for the
|
|
entire document.
|
|
.I Font
|
|
must match a font associated with the device's stanza in the device
|
|
configuration file.
|
|
See the
|
|
.B DEVICES
|
|
section for more information.
|
|
.IP
|
|
No
|
|
.I font
|
|
may be specified for the built\-in devices ANSI, NONE or NORMAL.
|
|
.TP
|
|
.B \-h
|
|
requests a help display.
|
|
.TP
|
|
.BI \-m acro
|
|
specifies the macro file to be used.
|
|
The standard
|
|
.I cawf
|
|
distribution supplies macro files to support ``\-man'', ``\-me'' or ``\-ms''.
|
|
.I Cawf
|
|
finds a macro file by constructing its name from `m',
|
|
.I acro
|
|
and
|
|
.B .mac
|
|
\- e. g.,
|
|
.BI \-m an
|
|
is converted to
|
|
.BR man.mac .
|
|
The default directory for macro files is defined when
|
|
.I cawf
|
|
is compiled; it's \fIC:\\SYS\\LIB\\CAWF\fP in the MS\-DOS environment;
|
|
.I /usr/lib/cawf
|
|
in the UNIX environment.
|
|
.TP
|
|
file ...
|
|
are the names of files containing \*(Nr source text.
|
|
.SH NROFF COMPATIBILITY
|
|
.I Cawf
|
|
accepts the following raw \*(Nr requests:
|
|
.ES
|
|
\&.\e" .ad .bp .br .ce .de .di .ds
|
|
\&.el .fi .fl .ft .i0 .ie .if .in
|
|
\&.it .lg .li .ll .ls .na .ne .nf
|
|
\&.nr .ns .pl .po .ps .rm .rn .rr
|
|
\&.rs .so .sp .ta .ti .tm .tr
|
|
.EE
|
|
and the following in-text codes:
|
|
.ES
|
|
\e$ \e% \e* \e" \ec \ef \eh \ek
|
|
\en \es \ew
|
|
.EE
|
|
plus the full list of \*(Nr/\c
|
|
.I troff
|
|
special characters in
|
|
the original V7 \fItroff\fR manual.
|
|
.PP
|
|
Many restrictions are present; the behavior in general is a subset of
|
|
\*(Nr's. Of particular note are the following:
|
|
.IP \(bu 2
|
|
The fully supported nroff request control character is the period.
|
|
There is limited support for the non\-break, acute accent control
|
|
character.
|
|
.PT
|
|
Point sizes do not exist;
|
|
.B .ps
|
|
is ignored.
|
|
.PT
|
|
Special vertical spacing \- the
|
|
.B .vs
|
|
request included \- is ignored.
|
|
.PT
|
|
Conditionals cover only the numeric comparisons >, =, <, >= and <= on
|
|
.BR \en(.$ ;
|
|
string com\%par\%isons between a macro parameter and a literal;
|
|
.B n
|
|
(always true);
|
|
and
|
|
.BR t
|
|
(always false).
|
|
Only single line input is accepted from conditionals;
|
|
multi\-line input \- e.g., \\(\fIanything\fP\\) \- is not supported.
|
|
.PT
|
|
The handling of strings is generally primitive.
|
|
.IP \(bu
|
|
Horizontal motion via
|
|
.B \eh
|
|
must be supplied with a number register interpolation and must be
|
|
positive - e. g.,
|
|
.BR \ew\en(NN ,
|
|
where the value in NN is >= 0.
|
|
.IP \(bu
|
|
The
|
|
.B \ek
|
|
function is reliable only after TAB characters, so it is useful only
|
|
for measuring table positions.
|
|
.IP \(bu
|
|
The
|
|
.B .di
|
|
request only turns output on and off \- any macro name is ignored.
|
|
.IP \(bu
|
|
Expressions - e. g.,
|
|
.B .sp
|
|
- are reasonably general, but the
|
|
.BR | ,
|
|
.BR & ,
|
|
and
|
|
.BR :\&
|
|
operators do not exist, there must be white space between the end of the \*(Nr
|
|
function and the beginning of the expression, and
|
|
.B \ew
|
|
requires that quote (') be used as the delimiters.
|
|
.B \ew
|
|
counts the characters inside the quotes and scales the result in ens,
|
|
so that, for example, \ew'\e(bu' equals 4n, and \ew'\e(bu'/1n equals 4.
|
|
.PT
|
|
The only acceptable count for the
|
|
.B .it
|
|
request is one,
|
|
and it is effective only with
|
|
.BR man ,
|
|
.B me
|
|
or
|
|
.B ms
|
|
macros.
|
|
.PT
|
|
The default scaling factor is `v' for the
|
|
.BR .ne ,
|
|
.BR .sp ,
|
|
and
|
|
.B .pl
|
|
raw \*(Nr requests; it is `u' for
|
|
.BR .nr ;
|
|
and `n' for
|
|
.BR .in ,
|
|
.BR .ll ,
|
|
.BR .ls ,
|
|
.BR .po ,
|
|
.BR .ta
|
|
and
|
|
.BR .ti .
|
|
(A different scaling factor may be specified with a trailing character.)
|
|
.PT
|
|
Some obsolete or meaningless requests \-
|
|
.BR .i0 ,
|
|
.B .lg
|
|
and
|
|
.B .li
|
|
\&\- are silently ignored.
|
|
.P
|
|
White space at the beginning of lines,
|
|
and embedded white space within lines is dealt with properly.
|
|
Sentence terminators at ends of lines are understood to imply
|
|
extra space afterward in filled lines.
|
|
Tabs are im\%plemented crudely and not exactly, although
|
|
usually they work as expected.
|
|
Hyphenation is done only at explicit hyphens, em-dashes, and \*(Nr
|
|
discretionary hyphens.
|
|
By default bold and italic characters are emulated with backspacing and
|
|
overprinting, but the
|
|
.B \-d
|
|
and
|
|
.B \-f
|
|
options, combined with the contents of the device configuration file,
|
|
may be used to generate special codes for bold and italic characters.
|
|
(See the
|
|
.B DEVICES
|
|
section for more information.)
|
|
.SH "MAN MACROS"
|
|
The
|
|
.B man
|
|
macro set replicates the full V7 manual macros,
|
|
plus a few semi-random oddballs.
|
|
The full list is:
|
|
.ES
|
|
\&.AT .B .BI .BR .BY .DE .DT .HP
|
|
\&.I .IB .IP .IR .IX .LP .NB .P
|
|
\&.PD .PP .RB .RE .RI .RS .SH .SM
|
|
\&.SS .TH .TP .UC
|
|
.EE
|
|
.B .BY
|
|
and
|
|
.B .NB
|
|
each take a single string argument (respectively, an indi\%cation of
|
|
authorship and a note about the status of the manual page) and arrange
|
|
to place it in the page footer.
|
|
.B .AT
|
|
and
|
|
.B .IX
|
|
do nothing.
|
|
.SH "ME MACROS"
|
|
The
|
|
.B me
|
|
macro subset has been derived from the
|
|
.I cawf
|
|
.B ms
|
|
macros by Chet Creider <creider@csd.uwo.ca>.
|
|
It includes:
|
|
.ES
|
|
\&.(l .(q .)l .)q .b .bu .i .ip
|
|
\&.lp .np .pp .r .sh .sm .u .uh
|
|
.EE
|
|
The .(l C and .(l L options are supported.
|
|
In addition, the .AB, .AE, .AI, .AU, .DA, .ND, .TL and .UX macros have
|
|
been retained from the
|
|
.B ms
|
|
set, and the .XP macro has been borrowed from the Berkeley additions to the
|
|
.B ms
|
|
macro set.
|
|
.SH "MS MACROS"
|
|
The
|
|
.B ms
|
|
macro set is a substantial subset of the V7 manuscript macros.
|
|
The macros are:
|
|
.ES
|
|
\&.AB .AE .AI .AU .B .CD .DA .DE
|
|
\&.DS .I .ID .IP .LD .LG .LP .ND
|
|
\&.NH .NL .PP .QE .QP .QS .R .RE
|
|
\&.RP .RS .SH .SM .TL .TP .UL .UX
|
|
.EE
|
|
Size changes are recognized but ignored, as are
|
|
.B .RP
|
|
and
|
|
.BR .ND .
|
|
.B .UL
|
|
just prints its argument in italics.
|
|
.BR .DS / .DE
|
|
does not do a keep,
|
|
nor do any of the other macros that normally imply keeps.
|
|
.LP
|
|
The
|
|
.B DY
|
|
string variable is available.
|
|
The
|
|
.BR PD ,
|
|
.BR PI ,
|
|
and
|
|
.BR LL
|
|
number registers exist and can be changed.
|
|
.SH "HEADERS AND FOOTERS"
|
|
.I Cawf
|
|
allows the placement of text into the five line header and
|
|
footer sections from the
|
|
.BR LH ,
|
|
.BR CH ,
|
|
.BR RF ,
|
|
.BR LF ,
|
|
.BR CF ,
|
|
and
|
|
.B RF
|
|
string variables, via the control of the
|
|
.B .^b
|
|
request:
|
|
.LP
|
|
.ta \w'.^b HF 0'u+3n
|
|
.nf
|
|
\&.^b fh 1 enables header string placement on the first page
|
|
\&.^b fh 0 disables header string placement on the first page
|
|
\&.^b HF 1 enables header/footer string placement
|
|
\&.^b HF 0 disables header/footer string placement
|
|
.fi
|
|
.LP
|
|
There are appropriate
|
|
.B .^b
|
|
requests in the distribution
|
|
.BR man ,
|
|
.B me
|
|
and
|
|
.B ms
|
|
macro files.
|
|
(The
|
|
.B me
|
|
and
|
|
.B ms
|
|
macro files use another
|
|
.B .^b
|
|
request, \fB.^b NH\fP, to enable numbered header processing.)
|
|
.SH OUTPUT
|
|
The default output format supported by
|
|
.IR cawf ,
|
|
in its distributed form,
|
|
is that appropriate to a dumb terminal,
|
|
using overprinting for italics (via underlining) and bold.
|
|
The \*(Nr special characters are printed as some vague approximation
|
|
(it's sometimes extremely vague) to their correct appearance.
|
|
.PP
|
|
One part of
|
|
.IR cawf 's
|
|
knowledge of the output device, related to the formation of characters,
|
|
is established by a device file, which is read before the user's input.
|
|
The search for it begins in
|
|
.IR cawf 's
|
|
library directory, under the name \fIterm\fP.\fBdev\fP
|
|
(where \fIterm\fR is the value of the TERM environment variable).
|
|
Failing to find that,
|
|
.I cawf
|
|
searches for
|
|
.BR dumb.dev .
|
|
(See the
|
|
.B FILES
|
|
section for a description of the path to
|
|
.IR cawf 's
|
|
library directory.)
|
|
The device file
|
|
uses special internal requests
|
|
to set up resolution, special characters
|
|
and more normal \*(Nr functions to set up page length, etc.
|
|
.PP
|
|
.I Cawf
|
|
has limited support for fonts special forms of bold and italic characters.
|
|
It is provided through the
|
|
.B \-c
|
|
.IR config ,
|
|
.BI \-d device
|
|
and
|
|
.BI \-f font
|
|
options.
|
|
See the
|
|
.B DEVICES
|
|
section for more information.
|
|
.PP
|
|
Note the distinction between the device and the output device configuration
|
|
files.
|
|
The device file typically defines characters and constant output parameters.
|
|
The output device configuration file defines font and type face codes.
|
|
It is usually not necessary to define a separate device file for each
|
|
device represented in the output device configuration file \- the
|
|
.I dumb.dev
|
|
device file will suffice for almost all representations.
|
|
.SH DEVICES
|
|
.I Cawf
|
|
supports primitive output device configuration for font and type face
|
|
control.
|
|
One font may be selected for the entire document by directing
|
|
.I cawf
|
|
to issue a font selection control character string at the beginning
|
|
of the document, and control character strings may be selected for
|
|
switching between the bold, italic and Roman type faces.
|
|
.PP
|
|
The
|
|
.B \-c
|
|
.IR config,
|
|
.BI \-d device
|
|
and
|
|
.BI \-f font
|
|
options direct the font and type face selections.
|
|
.PP
|
|
The
|
|
.BI \-d device
|
|
option specifies the name of the device.
|
|
.I Cawf
|
|
has three built\-in devices \- ANSI, NONE and NORMAL.
|
|
When the ANSI device is selected,
|
|
.I cawf
|
|
issues the ANSI shadow mode control codes, ``ESC [ 7 m'', to represent
|
|
the bold face;
|
|
the ANSI underscore control codes, ``ESC [ 4 m'', to represent the italic
|
|
face;
|
|
and the ANSI control codes, ``ESC [ 0 m'', to represent the ROMAN face.
|
|
No
|
|
.BI \-f font
|
|
specification is permitted with the ANSI device.
|
|
.PP
|
|
When the NONE device is selected,
|
|
.I cawf
|
|
uses no special output codes to represent the type faces.
|
|
No
|
|
.BI \-f font
|
|
specification is permitted with the ANSI device.
|
|
.PP
|
|
The NORMAL output device is the default.
|
|
When it's selected,
|
|
.I cawf
|
|
overprints each bold character two times, using three issuances of each
|
|
bold character, separated by backspace characters;
|
|
it issues an underscore and backspace before each italic character.
|
|
No
|
|
.BI \-f font
|
|
specification is permitted with the ANSI device.
|
|
The
|
|
.IR bsfilt (1)
|
|
filter may be used to further process the backspace codes output for
|
|
a NORMAL device.
|
|
.PP
|
|
All other devices named in the
|
|
.BI \-d device
|
|
option must be represented by a stanza in the device configuration file.
|
|
The device configuration file is usually contained in
|
|
.I device.cf
|
|
in
|
|
.IR cawf's
|
|
library directory (see the
|
|
.B FILES
|
|
section for more information).
|
|
An alternate device configuration file path may be specified with the
|
|
.BI \-c config
|
|
option.
|
|
.PP
|
|
The
|
|
.B DEVICE CONFIGURATION FILE
|
|
section describes the organization of the device configuration file.
|
|
It is easy to add devices to the
|
|
.I device.cf
|
|
supplied in the
|
|
.I cawf
|
|
distribution.
|
|
.PP
|
|
The
|
|
.BI \-f font
|
|
option may be used with the
|
|
.BI \-d device
|
|
option, when the appropriate stanza in the device configuration file
|
|
contains an entry for the named
|
|
.IR font .
|
|
The
|
|
.B DEVICE CONFIGURATION FILE
|
|
section describes how fonts are defined in device configuration file
|
|
stanzas.
|
|
.SH DEVICE CONFIGURATION FILE
|
|
The device configuration file defines the special character codes
|
|
necessary to direct output devices to select fonts and to produce
|
|
bold, italic and Roman type faces.
|
|
.PP
|
|
The configuration file is usually found in
|
|
.I device.cf
|
|
in
|
|
.IR cawf 's
|
|
library directory (see the
|
|
.B FILES
|
|
section for more information).
|
|
It is organized into two main parts \- comments and device stanzas.
|
|
Comments are any lines that begin with the pound sign (`#') character.
|
|
They are informational only and
|
|
.I cawf
|
|
ignores them.
|
|
.I Cawf
|
|
also ignores empty lines, so they may be used as vertical white space.
|
|
.PP
|
|
Stanzas name devices and define their font and type face control strings.
|
|
A stanza begins with the name of the device, starting at the beginning
|
|
of a line and occupying the entire line.
|
|
The body of the stanza, defining fonts and type faces, is formed of
|
|
lines beginning with white space (a TAB or space characters) that
|
|
directly follow the device name.
|
|
.PP
|
|
Individual lines of the stanza body contain a key character, followed
|
|
by a equal sign, followed by the font name (if a font key) and the
|
|
output device control codes.
|
|
.I Cawf
|
|
issues the font control codes once, at the beginning of output, so
|
|
only one font may be selected.
|
|
The type face control codes are issued at each change of type face.
|
|
.PP
|
|
The key characters are:
|
|
.ne 4
|
|
.PP
|
|
.RS
|
|
.nf
|
|
b for bold
|
|
f for font definition
|
|
i for italic
|
|
r for Roman
|
|
.fi
|
|
.RE
|
|
.PP
|
|
The `b', `i' and `r' key codes are followed by an equal sign (`=') and
|
|
their control code definition.
|
|
The `f' key code is followed by an equal sign (`='), the font name,
|
|
another equal sign and the font control code definition.
|
|
.PP
|
|
Control code definitions may contain any printable ASCII characters.
|
|
Non\-printable characters may be encoded in octal notation with the `\\nnn'
|
|
form or in hexadecimal with the `\\xnn' form.
|
|
The special code, `\\E' (or `\\e') represents the ESC control
|
|
character (\\033 or \\x1b).
|
|
.PP
|
|
Here's a sample showing the definition for the HP LaserJet III.
|
|
The stanza name is ``lj3''.
|
|
All its non\-printable characters are ESCs; the first is coded in
|
|
octal form; the second with '\\E'; the rest, in hexadecimal form.
|
|
TAB is used as the leading white space character for the stanza
|
|
body lines.
|
|
.PP
|
|
.RS
|
|
.nf
|
|
# HP LaserJet III
|
|
|
|
lj3
|
|
b=\\033(s7B
|
|
i=\\E(s1S
|
|
r=\\x1b(s0B\\x1b(s0S
|
|
f=c10=\\x1b&l0O\\x1b(8U\\x1b(s0p12h10v0s0b3T
|
|
f=c12ibm=\\x1b&l0O\\x1b(10U\\x1b(s0p10.00h12.0v0s0b3T
|
|
f=lg12=\\x1b&l0O\\x1b(8U\\x1b(s12h12v0s0b6T
|
|
.fi
|
|
.RE
|
|
.PP
|
|
The distribution
|
|
.I device.cf
|
|
file defines the following devices and fonts.
|
|
.LP
|
|
.ta \w'kxp1180'u+3n +\w'Italic:'u+3n +\w'bps10'u+6n
|
|
.nf
|
|
.ne 3
|
|
epson dot matrix printer in Epson FX-86e/FX-800 mode
|
|
Bold: Double-strike
|
|
Fonts: none
|
|
|
|
.ne 4
|
|
ibmppds IBM Personal Printer Data Stream (PPDS) protocol
|
|
Bold: Double-strike
|
|
Italic: Underline
|
|
Fonts: none
|
|
|
|
.ne 12
|
|
kxp1124 Panasonic KX\-P1124 dot matrix printer in PGM mode
|
|
Bold: Emphasized
|
|
Fonts: c10 10 Characters Per Inch (CPI) Courier
|
|
c12 12 CPI Courier
|
|
bps10 10 CPI Bold PS
|
|
bps12 12 CPI Bold PS
|
|
p10 10 CPI Prestige
|
|
p12 12 CPI Prestige
|
|
s10 10 CPI Script
|
|
s12 12 CPI Script
|
|
ss10 10 CPI Sans Serif
|
|
ss12 12 CPI Sans Serif
|
|
|
|
.ne 10
|
|
kxp1180 Panasonic KX\-P1180 dot matrix printer in PGM mode
|
|
Bold: Emphasized
|
|
Fonts: c10 10 Characters Per Inch (CPI) Courier
|
|
c12 12 CPI Courier
|
|
bps10 10 CPI Bold PS
|
|
bps12 12 CPI Bold PS
|
|
p10 10 CPI Prestige
|
|
p12 12 CPI Prestige
|
|
ss10 10 CPI Sans Serif
|
|
ss12 12 CPI Sans Serif
|
|
|
|
.ne 6
|
|
lj3 HP LaserJet III
|
|
Fonts: c10 10 point, 12 Characters Per Inch (CPI)
|
|
Courier
|
|
c12ibm 12 point, 10 CPI Courier, IBM\-PC
|
|
Symbol Set
|
|
lg12 12 point, 12 CPI Letter Gothic
|
|
|
|
.ne 4
|
|
vgamono VGA monochrome monitor for MS\-DOS
|
|
(ANSI.SYS driver required for MS\-DOS)
|
|
Italic: Reverse-video
|
|
Fonts: none
|
|
.SH FILES
|
|
.I Cawf
|
|
resource files are located in the
|
|
.I cawf
|
|
library directory \- \fI C:\\SYS\\LIB\\CAWF\fP, the MS\-DOS environment
|
|
default;
|
|
or
|
|
.IR /usr/lib/cawf ,
|
|
the UNIX environment default.
|
|
These defaults can be overridden by the CAWFLIB environment variable,
|
|
or changed in the cawflib.h header file.
|
|
|
|
.ta \w'device.cf'u+3n
|
|
.nf
|
|
common common device-independent initialization
|
|
device.cf output device configurations
|
|
*.dev device-specific initialization
|
|
m*.mac macro package files
|
|
.SH DIAGNOSTICS
|
|
Unlike
|
|
.IR nroff ,
|
|
.I cawf
|
|
complains whenever it sees unknown requests.
|
|
All diagnostics appear on the standard error file.
|
|
.ad
|
|
.SH HISTORY
|
|
Vic Abell of Purdue University <abe@cc.purdue.edu> derived
|
|
.I cawf
|
|
from
|
|
.IR awf ,
|
|
\&``the Amazingly Workable (text) Formatter,''
|
|
written by Henry Spencer of the University of Toronto.
|
|
The Toronto work was a supplement to the C News project.
|
|
The Purdue effort was aimed at producing a C language version that
|
|
would run on small systems, particularly MS\-DOS ones.
|
|
The adaptation of the
|
|
.B me
|
|
macros was done by Chet Creider <creider@csd.uwo.ca>.
|
|
Chet also contributed ideas for device, font and type face support.
|
|
.PP
|
|
The MS\-DOS version of
|
|
.I cawf
|
|
has been compiled with version 2.5 of Microsoft's Quick-C compiler.
|
|
It runs under the Mortis Kern Systems Toolkit KornShell,
|
|
.IR ksh (1),
|
|
and COMMAND.COM.
|
|
.SH BUGS
|
|
Nroff and troff mavens will have many complaints.
|
|
Some may even represent bugs and not deliberate omissions.
|
|
.PP
|
|
Watch out for scaling factors - especially on requests like
|
|
.BR \ew .
|
|
.PP
|
|
The overprinting required to create bold and italicized characters is
|
|
tiresome on a slow printer.
|
|
The
|
|
.IR bsfilt (1)
|
|
post\-filter from this distribution may be used to alleviate that
|
|
nuisance by managing the backspacing codes from
|
|
.IR cawf 's
|
|
NORMAL device output.
|
|
.PP
|
|
The printing of bold and italic characters is sometimes better handled by
|
|
special printer codes.
|
|
Use
|
|
.IR cawf 's
|
|
.B \-c
|
|
.IR config ,
|
|
.BI \-d device
|
|
and
|
|
.BI \-f font
|
|
options to produce special font and device output control codes.
|
|
.PP
|
|
.I Cawf
|
|
has a small amount of built-in code for the
|
|
.BR man ,
|
|
.B me
|
|
and
|
|
.B ms
|
|
macro packages, but none for any others.
|
|
.PP
|
|
The stacking for the
|
|
.B .so
|
|
request is limited.
|
|
.SH SEE ALSO
|
|
bsfilt(1),
|
|
colcrt(1),
|
|
man(7),
|
|
me(7),
|
|
ms(7)
|
|
and
|
|
nroff(1).
|