home *** CD-ROM | disk | FTP | other *** search
-
-
- CAWF(1) Unix Programmer's Manual CAWF(1)
-
-
- NAME
- cawf - C version of the nroff-like, Amazingly Workable (text) Formatter
-
- SYNOPSIS
- cawf [ -fb|e|i ] [ -macros ] [ file ... ]
-
- DESCRIPTION
- Cawf formats the text from the input file(s) (standard input if none) in
- an approximation of nroff. It comes closest to duplicating nroff's man
- or ms macro package styles.
-
- OPTIONS
- Options must precede file names.
-
- -fb specifies that backspace and underline sequences are to be used to
- emulate bold and italic characters. This is cawf's default mode.
-
- -fe specifies that ESC, followed by `B' is to be used to precede each
- bold character; and ESC, followed by `I', each italic character.
-
- This option is normally used with a post-filter that converts the
- ESC sequences into device-specific controls - e. g., fontfilt(1).
-
- -fn specifies that no special character sequences are to be used to
- represent bold or italic characters.
-
- -macro
- specifies the macro file to be used. The standard cawf distribution
- supplies macro files to support `-man' or `-ms'. Cawf finds a macro
- file by constructing its name from `m', acro and .mac - e. g., -man
- is converted to man.mac. The default directory for macro files is
- defined when cawf is compiled; it's c:\sys\lib\cawf in the cawf
- MS-DOS distribution.
-
- file ...
- are the names of files containing nroff source text.
-
- NROFF COMPATIBILITY
- Cawf accepts the following raw nroff requests:
-
- .\" .ad .bp .br .ce .de .di .ds
- .el .fi .ft .i0 .ie .if .in .it
- .lg .li .ll .ls .na .ne .nf .nr
- .ns .pl .po .ps .rm .rr .rs .so
- .sp .ta .ti .tm .tr
-
- and the following in-text codes:
-
- \$ \% \* \c \f \h \k \n \s \w
-
- plus the full list of nroff/troff special characters in the original V7
- troff manual.
-
- Many restrictions are present; the behavior in general is a subset of
- nroff's. Of particular note are the following:
-
-
-
- Purdue University February, 1991 1
-
-
-
- CAWF(1) Unix Programmer's Manual CAWF(1)
-
-
- +o Point sizes do not exist; .ps is ignored.
-
- +o Special vertical spacing - the .vs command included - is ignored.
-
- +o Conditionals cover only numeric comparisons on \n(.$, string compar-
- isons between a macro parameter and a literal, and n (always true) and
- t (always false).
-
- +o The handling of strings is generally primitive.
-
- +o Horizontal motion via \h must be supplied with a number register
- interpolation and must be positive - e. g., \w\n(NN, where the value in
- NN is >= 0.
-
- +o The \k function is reliable only after TAB characters, so it is useful
- only for measuring table positions.
-
- +o The .di command only turns output on and off - any macro name is
- ignored.
-
- +o Expressions - e. g., .sp - are reasonably general, but the |, &, and :
- operators do not exist, there must be white space between the end of
- the nroff command and the beginning of the expression, and \w requires
- that quote (') be used as the delimiters. \w counts the characters
- inside the quotes and scales the result in ens, so that, for example,
- \w'\(bu' equals 4n, and \w'\(bu'/1n equals 4.
-
- +o The only acceptable count for the .it command is one, and it is
- effective only with man or ms macros.
-
- +o The default scaling factor is `v' for the .ne, .sp, and .pl raw nroff
- requests; it is `u' for .nr; and `n' for .in, .ll, .ls, .po, .ta and
- .ti. (A different scaling factor may be specified with a trailing
- character.)
-
- +o Some obsolete or meaningless commands - .i0, .lg and .li - are silently
- ignored.
-
- 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
- nroff discretionary hyphens. Bolding and italicization are done with
- backspacing and overprinting.
-
- MAN MACROS
- The man macro set replicates the full V7 manual macros, plus a few semi-
- random oddballs. The full list is:
-
- .AT .B .BI .BR .BY .DE .DS .DT .HP .I
- .IB .IP .IR .IX .LP .NB .P .PD .PP .RB
- .RE .RI .RS .SH .SM .TH .TP .UC
-
-
-
-
-
- Purdue University February, 1991 2
-
-
-
- CAWF(1) Unix Programmer's Manual CAWF(1)
-
-
- .BY and .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. .AT and .IX do nothing.
-
- MS MACROS
- The ms macro set is a substantial subset of the V7 manuscript macros.
- The macros are:
-
- .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
-
- Size changes are recognized but ignored, as are .RP and .ND. .UL just
- prints its argument in italics. .DS/.DE does not do a keep, nor do any
- of the other macros that normally imply keeps.
-
- The DY string variable is available. The PD, PI, and LL number registers
- exist and can be changed.
-
- HEADERS AND FOOTERS
- Cawf allows the placement of text into the five line header and footer
- sections from the LH, CH, RF, LF, CF, and RF string variables, via the
- control of the .^b command:
-
- .^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
-
- There are appropriate .^b commands in the distribution man and ms macro
- files. (The ms macro file uses another .^b command, .^b NH, to enable
- numbered header processing.)
-
- OUTPUT
- The default output format supported by cawf, in its distributed form, is
- that appropriate to a dumb terminal, using overprinting for italics (via
- underlining) and bold. The nroff special characters are printed as some
- vague approximation (it's sometimes extremely vague) to their correct
- appearance.
-
- Cawf's knowledge of the output device is established by a device file,
- which is read before the user's input. The search for it begins in
- cawf's library directory, under the name term.dev (where term is the
- value of the TERM environment variable). Failing to find that, cawf
- searches for dumb.dev. The device file uses special internal commands to
- set up resolution, special characters, fonts, etc., and more normal nroff
- commands to set up page length, etc.
-
- Cawf has limited support for special forms of bold and italic characters.
- It is provided through the -fe option and post-filters - e. g.,
- fontfilt(1). The -fe option causes cawf to precede each bold character
- with ESC and `B'; each italic character, ESC and `I'. The fontfilt
- post-filter converts these escape sequences into appropriate device
- control codes. (Fontfilt will also select a font (once).)
-
-
-
- Purdue University February, 1991 3
-
-
-
- CAWF(1) Unix Programmer's Manual CAWF(1)
-
-
- FILES
- All files are located in c:/sys/lib/cawf (the author's MS-DOS environment
- default). This default can be overridden by the CAWFLIB environment
- variable, or changed in the source code.
-
- common common device-independent initialization
- *.dev device-specific initialization
- m*.mac macro package files
-
- SEE ALSO
- bsfilt(1), colcrt(1), fontfilt(1), man(7), ms(7) and nroff(1).
-
- DIAGNOSTICS
- Unlike nroff, cawf complains whenever it sees unknown commands and
- macros. All diagnostics appear on the standard error file.
-
- HISTORY
- Vic Abell of Purdue University <abe@mace.cc.purdue.edu> derived cawf from
- awf, ``the Amazingly Workable (text) Formatter'' that was 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 MS-DOS version of cawf has been compiled with version 2.5 of
- Microsoft's Quick-C compiler. It runs under the Mortis Kern Systems
- Toolkit KornShell, ksh(1), and COMMAND.COM.
-
- BUGS
- Nroff and troff mavens will have many complaints. Some may even
- represent bugs and not deliberate omissions.
-
- Watch out for scaling factors - especially on commands like \w.
-
- The overprinting required to create bold and italicized characters is
- tiresome on a slow printer. Use cawf's -fn option or the bsfilt(1)
- post-filter from this distribution to manage backspacing.
-
- The printing of bold and italic characters is sometimes better handled by
- special printer codes. Use cawf's -fe option to produce output that can
- be easily filtered, and a post-filter, such as fontfilt(1), from this
- distribution to filter it.
-
- Cawf has a small amount of built-in code for the man and ms macro
- packages, but none for any others.
-
- The stacking for the .so command is limited.
-
-
-
-
-
-
-
-
-
-
-
- Purdue University February, 1991 4
-
-