home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / FM25.ZIP / README < prev   
Text File  |  1993-04-12  |  5KB  |  81 lines

  1.  
  2. "Fm" formats text into paragraphs for tty screen display.  It is similar to
  3.     UCB "fmt" and in fact can mimic that program, but it is somewhat more
  4.     flexible, and it does English hyphenation (the routines and data for hy-
  5.     phenation are taken from TeX).  Even if you don't care for "fm", if you
  6.     write formatting utilities, you might be interested in the hyphenation
  7.     routine in file hyphenate.c.
  8.  
  9. Installation.  You need flex to compile "fm".  A stock unix compiler ought
  10.     to work, or gcc.  Also, you need termcap to use the Makefile as sup-
  11.     plied.  (See the note in the Makefile if you're on sys5r3.) As an alter-
  12.     native to using termcap, you can add "-DANSI" to CFLAGS, which substi-
  13.     tutes some built-in routines for color display on a suitable ANSI-type
  14.     console.  If you don't actually have an ANSI color display device, you
  15.     won't be able to use the "-u" option of "fm".
  16.  
  17. Usage.  "fm" is a filter.  Send it input on standard input, or give on the
  18.     command line a list of files with text to process.  The formatted result
  19.     appears on the standard output.  There are a bunch of options, or the
  20.     program can be called by different names to vary the type of formatting
  21.     done.  Screen attributes indicate different intended fonts, for files
  22.     with nroff -man or TeX formatting commands.  See below and the files
  23.     fm.1, cmds.tex and the source code for details.
  24.  
  25.     History & acknowledgments.  The first version of this program was
  26.     written by Bill Gray (bgray@marque.mu.edu) and appeared in
  27.     comp.sources.misc, v02i102 (Apr. 1988) as "fmt".  A second ver-
  28.     sion, called "xfmt" and modified by me was in comp.sources.unix,
  29.     v16i071 (Nov. 1988).  My thanks to Ken Yap
  30.     (ken@cs.rochester.edu) and Dave Yearke, Sigma Systems Technol-
  31.     ogy, Inc.  for fixes to some problems with that version.
  32.  
  33. Summary of modes.  You can call "fm" by that name, or call it "fmt" or
  34.     "nroff" or "tex".  Called by one of the first two names, it understands
  35.     no embedded formatting commands.  Called "fmt" it emulates the UCB pro-
  36.     gram "fmt" and tries to preserve indentation and spacing from the origi-
  37.     nal input text.  Called "nroff", it interprets -man page formatting com-
  38.     mands.  Called "tex", it interprets a small subset of TeX commands.
  39.  
  40.     Instead of giving it different names, instead you can use option flags
  41.     to the same effect:  "fm -b" is the same as giving the program the name
  42.     "fmt" (b is for Berkeley); "fm -jmo" is the same as "nroff" (or "nroff
  43.     -man"); "fm -jx" is the same as "tex".  With the name "tex", the suffix
  44.     .tex is added to a file name on the command name if a file by the name
  45.     given is not found.
  46.  
  47.     Aside from embedded formatting commands, formatters differ in how to in-
  48.     terpret natural features of input text and what sort of formatting to do
  49.     by default.  For instance, does blank space at the beginning of a line
  50.     start a new paragraph?  Is the indentation carried over into the format-
  51.     ted output?  The chart below outlines "fm"s four conventions about this.
  52.  
  53.                              fm      fmt     nroff   tex
  54.                                      fm -b   fm -jmo fm -jx
  55.      blank line starts par.  yes     yes     yes     yes
  56.      indent starts par.      no*     yes     yes     no*
  57.      keep paragraph indent   no*     yes     no      no*
  58.      add paragraph indent    no      no      no      yes(5)
  59.      keep word spacing       no      yes     no      no
  60.      keep blank lines        yes     yes     yes     no*
  61.      keep offset             no      yes     no      no
  62.      justification           no      no      yes     yes
  63.      hyphenation             yes     no      yes     yes
  64.      left offset             no      no      yes(5)  yes(4)
  65.      file suffix             no      no      no      yes(.tex)
  66.              Note: "no*" is "yes" with -i option.
  67.  
  68.  
  69. What is it good for?  (1) Making narrow columns for feeding to "pr"; e.g.,
  70.     "fm -40 -p2 textfile | pr -3 -w132 -l23 | more".  (2) Displaying man
  71.     pages without a long wait or using disk space for preformatted versions;
  72.     e.g., "fm -jmo fm.1 | more" or (with program named "nroff") "nroff -man
  73.     fm.1 | more".  (3) Format simple documents which may later be printed
  74.     using TeX; e.g., "fm -x README.tex >README" (which creates this file).
  75.     (4) Displaying C-code with reserved words highlighted; e.g., "fm -C fm.l
  76.     | more".
  77.  
  78.                                  -- Greg Lee
  79.                           lee@uhunix.uhcc.Hawaii.edu
  80.                                       5/5/92
  81.