home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / figlet21.zip / FIGLET.MAN < prev    next >
Text File  |  1995-09-10  |  38KB  |  988 lines

  1.  
  2.  
  3.  
  4.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  5.  
  6.  
  7.  
  8.      NAME
  9.           figlet - print in large characters made up of ordinary
  10.           screen characters
  11.  
  12.  
  13.      SYNOPSIS
  14.           figlet [ -clnprtvxDELNRX ] [ -d fontdirectory ]
  15.                [ -f fontfile ] [ -m smushmode ] [ -w outputwidth ]
  16.                [ -C controlfile ] [ -I infocode ]
  17.  
  18.  
  19.      DESCRIPTION
  20.           figlet prints its input using large characters made up of
  21.           ordinary screen characters.  figlet output is generally
  22.           reminiscent of the sort of ``signatures'' many people like
  23.           to put at the end of e-mail and UseNet messages.  It is also
  24.           reminiscent of the output of some banner programs, although
  25.           it is oriented normally, not sideways.
  26.  
  27.           figlet can print in a variety of fonts, both left-to-right
  28.           and right-to-left, with adjacent characters kerned and
  29.           ``smushed'' together in various ways.  figlet fonts are
  30.           stored in separate files, which can be identified by the
  31.           suffix ``.flf''.  Most figlet font files will be stored in
  32.           figlet's default font directory.
  33.  
  34.           figlet can also use ``control files'', which tell it to map
  35.           certain input characters to certain other characters,
  36.           similar to the Unix tr command.  Control files can be
  37.           identified by the suffix ``.flc''.  Most figlet control
  38.           files will be stored in figlet's default font directory.
  39.  
  40.  
  41.      OTHER FONTS & MAILING LIST
  42.           As of this writing you can get many fonts which are not in
  43.           the basic figlet package by anonymous FTP from
  44.           ftp.nicoh.com:pub/figlet/fonts.  ftp.nicoh.com:pub/figlet
  45.           should also contain the latest version of figlet and other
  46.           utilities related to figlet.  Of special interest are non-
  47.           Roman fonts.  As of this writing, there are Hebrew and
  48.           Cyrillic (Russian) fonts; more are expected.
  49.  
  50.           We run an e-mail list dedicated to figlet software and font
  51.           announcements, as well as general discussion about figlet.
  52.           If you would like to be on this list, send e-mail to
  53.           listserv@vmd.cso.uiuc.edu with the message body
  54.  
  55.                subscribe figlet-l YOUR NAME
  56.  
  57.           where YOUR NAME should be replaced with your name.  For
  58.           those who don't want to be bothered with the discussions,
  59.           the list can be configured so that you only see software
  60.  
  61.  
  62.  
  63.      Page 1                                           (printed 9/9/95)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  71.  
  72.  
  73.  
  74.           update notices, or only software and font announcements.
  75.  
  76.  
  77.      USAGE
  78.           Just start up figlet (type ``figlet'') and then type
  79.           whatever you want.  Alternatively, pipe a file or the output
  80.           of another command through figlet.  See EXAMPLES for other
  81.           things to do.
  82.  
  83.  
  84.      OPTIONS
  85.           figlet reads command line options from left to right, and
  86.           only the last option that affects a parameter has any
  87.           effect.  Every option has an inverse, so that, for example,
  88.           if figlet is customized with a C-shell alias, all the
  89.           options are still available.
  90.  
  91.           Commonly-used options are -f, -c, -m0, -t, -p and -v.
  92.  
  93.  
  94.           -f fontfile
  95.                Select the font.  The .flf suffix may be left off of
  96.                fontfile, in which case figlet automatically appends
  97.                it.  figlet looks for the file first in the default
  98.                font directory and then in the current directory, or,
  99.                if fontfile was given as a full pathname, in the given
  100.                directory.  If the -f option is not specified, figlet
  101.                uses the font that was specified when it was compiled.
  102.                To find out which font this is, use the -I3 option.
  103.  
  104.  
  105.           -d fontdirectory
  106.                Change the default font directory.  figlet looks for
  107.                fonts first in the default directory and then in the
  108.                current directory.  If the -d option is not specified,
  109.                figlet uses the directory that was specified when it
  110.                was compiled.  To find out which directory this is, use
  111.                the -I2 option.
  112.  
  113.  
  114.           -c
  115.           -l
  116.           -r
  117.           -x   These options handle the justification of figlet
  118.                output.  -c centers the output horizontally.  -l makes
  119.                the output flush-left.  -r makes it flush-right.  -x
  120.                (default) sets the justification according to whether
  121.                left-to-right or right-to-left text is selected.
  122.                Left-to-right text will be flush-left, while right-to-
  123.                left text will be flush-right.  (Left-to-right versus
  124.                right-to-left text is controlled by -L, -R and -X.)
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                                           (printed 9/9/95)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  137.  
  138.  
  139.  
  140.           -t
  141.           -w outputwidth
  142.                These options control the outputwidth, or the screen
  143.                width figlet assumes when formatting its output.
  144.                figlet uses the outputwidth to determine when to break
  145.                lines and how to center the output.  Normally, figlet
  146.                assumes 80 columns so that people with wide terminals
  147.                won't annoy the people they e-mail figlet output to.
  148.                -t sets the outputwidth to the terminal width.  If the
  149.                terminal width cannot be determined, the previous
  150.                outputwidth is retained.  -w sets the outputwidth to
  151.                the given integer.  An outputwidth of 1 is a special
  152.                value that tells figlet to print each non-space
  153.                character, in its entirety, on a separate line, no
  154.                matter how wide it is.
  155.  
  156.  
  157.           -p
  158.           -n   These options control how figlet handles newlines.  -p
  159.                puts figlet into ``paragraph mode'', which eliminates
  160.                some unnecessary line breaks when piping a multi-line
  161.                file through figlet.  In paragraph mode, figlet treats
  162.                line breaks within a paragraph as if they were merely
  163.                blanks between words.  (Specifically, -p causes figlet
  164.                to convert any newline which is not preceded by a
  165.                newline and not followed by a space character into a
  166.                blank.)  -n puts figlet back to normal (default), in
  167.                which every newline figlet reads causes it to produce a
  168.                line break.
  169.  
  170.  
  171.           -D
  172.           -E   -D switches to the German (Deutsch) character set.
  173.                Turns `[', `\' and `]' into umlauted A, O and U,
  174.                respectively.  `{', `|' and `}' turn into the
  175.                respective lower case versions of these.  `~' turns
  176.                into s-z.  (Of course, all this assumes the font author
  177.                has placed German characters in these positions in the
  178.                font file.  Many font authors do not.)  -E switches
  179.                back to English (default), i.e., the standard ASCII
  180.                character set.
  181.  
  182.  
  183.           -C controlfile
  184.           -N   These options deal with figlet controlfiles.  A
  185.                controlfile is a file containing a list of commands
  186.                that figlet executes each time it reads a character.
  187.                These commands can map certain input characters to
  188.                other characters, similar to the Unix tr command or the
  189.                figlet -D option.  figlet maintains a list of
  190.                controlfiles, which is empty when figlet starts up.  -C
  191.                adds the given controlfile to the list.  -N clears the
  192.  
  193.  
  194.  
  195.      Page 3                                           (printed 9/9/95)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  203.  
  204.  
  205.  
  206.                controlfile list, cancelling the effect of any previous
  207.                -C.  figlet executes the commands in all controlfiles
  208.                in the list.  See CONTROLFILE FORMAT for details on how
  209.                to write a controlfile.
  210.  
  211.  
  212.           -m smushmode
  213.                Specifies how figlet should ``smush'' and kern
  214.                consecutive characters together.  On the command line,
  215.                -m0 can be useful, as it tells figlet to kern
  216.                characters without smushing them together.  Otherwise,
  217.                this option is rarely needed, as a figlet font file
  218.                specifies the best smushmode to use with the font.  -m
  219.                is, therefore, most useful to font designers testing
  220.                the various smushmodes with their font.  smushmode can
  221.                be -2 through 63.
  222.  
  223.                -2 Get mode from font file (default).
  224.                     Every figlet font file specifies the best
  225.                     smushmode to use with the font.  This will be one
  226.                     of the smushmodes (-1 through 63) described in the
  227.                     following paragraphs.
  228.  
  229.                -1 No smushing or kerning.
  230.                     Characters are simply concatenated together.
  231.  
  232.                0 Kern only.
  233.                     Characters are pushed together until they touch.
  234.  
  235.                     In any non-negative smushmode figlet kerns
  236.                     adjacent font characters, i.e., it pushes adjacent
  237.                     font characters together until their non-blank
  238.                     portions touch.  At that point, it may or may not
  239.                     push the two font characters 1 screen character
  240.                     closer, depending on the smushmode.  Pushing font
  241.                     characters one step closer requires ``smushing''
  242.                     two non-blank screen characters into a single
  243.                     screen character.  figlet has 6 ways of doing
  244.                     this, represented by 1, 2, 4, 8, 16 and 32.  The
  245.                     various non-negative smushmodes (0-63) are
  246.                     obtained by adding up the numbers corresponding to
  247.                     the sort of smushing figlet should do.  In
  248.                     particular smushmode 0 kerns characters without
  249.                     smushing them into each other.
  250.  
  251.                1 Smush equal characters.
  252.                     Two screen characters are smushed into a single
  253.                     character if they are the same.  The resulting
  254.                     character is the same as both of the original
  255.                     characters.  This mode does not smush the
  256.                     character known as a hardblank, which is a
  257.                     character that prints as a blank, but is not
  258.  
  259.  
  260.  
  261.      Page 4                                           (printed 9/9/95)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  269.  
  270.  
  271.  
  272.                     smushed (except in mode 32).  See FONT FILE FORMAT
  273.                     for more information on hardblanks.
  274.  
  275.                2 Smush underscores.
  276.                     An underscore will be smushed into (and replaced
  277.                     by) any of ``|/\[]{}()<>''.
  278.  
  279.                4 Hierarchy smushing.
  280.                     Smushes certain characters together according to a
  281.                     hierarchy containing 6 classes: ``|'', ``/\'',
  282.                     ``[]'', ``{}'', ``()'', ``<>''.  A member of any
  283.                     class can be smushed into and replaced by a member
  284.                     of any later class.
  285.  
  286.                8 Opposite pair smushing, type I.
  287.                     Smushes opposing brackets (``[]''), braces
  288.                     (``{}'') and parentheses (``()'') together,
  289.                     replacing them with a vertical bar (`|').
  290.  
  291.                16 Opposite pair smushing, type II.
  292.                     Smushes opposing slashes (``/\'') and greater-
  293.                     than/less-than (``><'') together, replacing them
  294.                     with an upper-case `X'.  ``><'' are only smushed
  295.                     together when they are in that order, i.e., ``<>''
  296.                     will not be smushed.
  297.  
  298.                32 Hardblank smushing.
  299.                     Smushes two hardblanks together, replacing them
  300.                     with a single hardblank.  See FONT FILE FORMAT for
  301.                     more information on hardblanks.
  302.  
  303.  
  304.           -v
  305.           -I infocode
  306.                These options print various information about figlet,
  307.                then exit.  If several of these options are given on
  308.                the command line, only the last is executed, and only
  309.                after all other command-line options have been dealt
  310.                with.
  311.  
  312.                -v prints version and copyright information, as well as
  313.                a ``Usage: ...''  line.  -I prints the information
  314.                corresponding to the given infocode in a consistent,
  315.                reliable (i.e., guaranteed to be the same in future
  316.                releases) format.  -I is primarily intended to be used
  317.                by programs that use figlet.  infocode can be any of
  318.                the following.
  319.  
  320.                -1 Normal operation (default).
  321.                     This infocode indicates that figlet should operate
  322.                     normally, not giving any informational printout,
  323.                     printing its input in the selected font.
  324.  
  325.  
  326.  
  327.      Page 5                                           (printed 9/9/95)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  335.  
  336.  
  337.  
  338.                0 Version and copyright.
  339.                     This is identical to -v.
  340.  
  341.                1 Version (integer).
  342.                     This will print the version of your copy of figlet
  343.                     as a decimal integer.  The main version number is
  344.                     multiplied by 10000, the sub-version number is
  345.                     multiplied by 100, and the sub-sub-version number
  346.                     is multiplied by 1.  These are added together, and
  347.                     the result is printed out.  For example, figlet
  348.                     2.1 will print ``20100''.  If there is ever a
  349.                     version 2.1.1, it will print ``20101''.
  350.                     Similarly, version 3.7.2 would print ``30702''.
  351.                     These numbers are guaranteed to be ascending, with
  352.                     later versions having higher numbers.  Note that
  353.                     the first major release of figlet, version 2.0,
  354.                     did not have the -I option.
  355.  
  356.                2 Default font directory.
  357.                     This will print the default font directory.  It is
  358.                     affected by the -d option.
  359.  
  360.                3 Font.
  361.                     This will print the name of the font figlet would
  362.                     use.  It is affected by the -f option.  This is
  363.                     not a filename; the ``.flf'' suffix is not
  364.                     printed.
  365.  
  366.                4 Output width.
  367.                     This will print the value figlet would use for
  368.                     outputwidth, the number of columns wide figlet
  369.                     assumes the screen is.  It is affected by the -w
  370.                     and -t options.
  371.  
  372.                If infocode is any other positive value, figlet will
  373.                simply exit without printing anything.
  374.  
  375.  
  376.           -L
  377.           -R
  378.           -X   These options control whether figlet prints left-to-
  379.                right or right-to-left.  -L selects left-to-right
  380.                printing.  -R selects right-to-left printing.  -X
  381.                (default) makes figlet use whichever is specified in
  382.                the font file.
  383.  
  384.  
  385.      EXAMPLES
  386.           To use figlet with its default settings, simply type
  387.  
  388.                example% figlet
  389.  
  390.  
  391.  
  392.  
  393.      Page 6                                           (printed 9/9/95)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  401.  
  402.  
  403.  
  404.           and then type whatever you like.
  405.  
  406.           To change the font, use the -f option, for example,
  407.  
  408.                example% figlet -f script
  409.  
  410.  
  411.           Use the -c option if you would prefer centered output:
  412.  
  413.                example% figlet -c
  414.  
  415.  
  416.           We have found that the most common use of figlet is making
  417.           up large text to be placed in e-mail messages.  For this
  418.           reason, figlet defaults to 80 column output.  If you are
  419.           using a wider terminal, and would like figlet to use the
  420.           full width of your terminal, use the -t option:
  421.  
  422.                example% figlet -t
  423.  
  424.  
  425.           If you don't want figlet to smush font characters into each
  426.           other, use the -m0 option:
  427.  
  428.                example% figlet -m0
  429.  
  430.  
  431.           If figlet gets its input from a file, it is often a good
  432.           idea to use -p:
  433.  
  434.                example% figlet -p < myfile
  435.  
  436.  
  437.           Of course, the above can be combined:
  438.  
  439.                example% figlet -ptm0 -f shadow < anotherfile
  440.                example% figlet -cf slant
  441.  
  442.  
  443.  
  444.         Other Things to Try
  445.           On many systems nice effects can be obtained from the lean
  446.           font by piping it through tr.  Some you might want to try
  447.           are the following:
  448.  
  449.                example% figlet -f lean | tr ' _/' ' ()'
  450.                example% figlet -f lean | tr ' _/' './\\'
  451.                example% figlet -f lean | tr ' _/' ' //'
  452.                example% figlet -f lean | tr ' _/' '/  '
  453.  
  454.           Similar things can be done with the block font and many of
  455.           the other figlet fonts.
  456.  
  457.  
  458.  
  459.      Page 7                                           (printed 9/9/95)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  467.  
  468.  
  469.  
  470.      FONT FILE FORMAT
  471.           If you would like to design a figlet font, it is usually
  472.           best to begin with an already-existing font.  Except for the
  473.           first line of a font file, most of the file format should be
  474.           obvious.  If you design a font, please let us know about it!
  475.           (See AUTHORS for e-mail addresses.)
  476.  
  477.           A figlet font filename must have the suffix ``.flf''.
  478.  
  479.           A figlet font file begins with a header.  The header
  480.           consists of one line giving information about the font,
  481.           followed by zero or more comment lines, which figlet
  482.           ignores.  Following the header is the font data.
  483.  
  484.  
  485.         The Header
  486.           The first line of a figlet font file is of the following
  487.           form:
  488.  
  489.                flf2ahardblank height up_ht maxlen smushmode cmt_count rtol
  490.  
  491.           where hardblank is a character, and the remaining values are
  492.           integers, for example:
  493.  
  494.                flf2a$ 6 5 20 15 3 0
  495.  
  496.           The last value, rtol, may be omitted, in which case it is
  497.           assumed to be 0.
  498.  
  499.                flf2a$ 6 5 20 15 3
  500.  
  501.  
  502.           For those desiring a quick explanation, the above line
  503.           indicates that this font has characters which are 6 lines
  504.           tall, 5 of which are above the baseline, no line in the font
  505.           data is more than 20 characters long, the default smushmode
  506.           is 15 (kern and smush in various ways), there are 3 comment
  507.           lines, and this font is to be printed left-to-right.  More
  508.           in-depth explanations follow.
  509.  
  510.           The first five characters of a font file should be
  511.           ``flf2a''.  ``flf2'' is the magic number of a figlet 2 font
  512.           file.  The next character (`a') is currently ignored.  It
  513.           may mean something in future versions of figlet.  If it
  514.           does, you can be sure your fonts will still work if this
  515.           character is `a'.
  516.  
  517.           Immediately following this is the hardblank (character).
  518.           Note that there are no blanks between ``flf2a'' and the
  519.           hardblank.  figlet can smush together consecutive characters
  520.           in various ways.  Normally, any character can be smushed
  521.           into a blank.  A hardblank prints as a blank, but cannot be
  522.  
  523.  
  524.  
  525.      Page 8                                           (printed 9/9/95)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  533.  
  534.  
  535.  
  536.           smushed into any character except a blank, and, if smushmode
  537.           32 is enabled, another hardblank.  (For example, the `r' in
  538.           script.flf contains a hardblank, `$' in that font.  To see
  539.           why this is necessary, create a copy of script.flf with this
  540.           hardblank replaced by a blank.  In this new font, the ``tr''
  541.           combination looks awful.)
  542.  
  543.           By convention, the hardblank is a `$', but it can be any
  544.           character besides blank, newline and null.  If you want the
  545.           entire printing ASCII set available to use, make the
  546.           hardblank a <delete> character.
  547.  
  548.           Then comes the height (integer).  This is the number of
  549.           screen lines high that each character in the font is.
  550.  
  551.           up_ht (integer) is the number of lines from the baseline of
  552.           a character to the top of the character, i.e., it is the
  553.           height of a character, ignoring any descenders.  This number
  554.           is currently ignored by figlet, but future versions may use
  555.           it.
  556.  
  557.           maxlen (integer) is the maximum length of a line in the font
  558.           file (excluding the first line and the comments lines, which
  559.           can be as long as you want).  You may want to make this a
  560.           little too large as a safety measure.
  561.  
  562.           smushmode (integer) determines how much figlet smushes the
  563.           font.  Possible smushmodes are -1 through 63.  Typically,
  564.           you'll want to use 0 (kern font characters without smushing
  565.           them together), -1 (no kerning or smushing) or 15 (smush
  566.           various pairs of characters together into single
  567.           characters).  To try out different smushmodes with your
  568.           font, use the -m command-line option.  See OPTIONS for a
  569.           more detailed explanation of these smushmodes.  (Note that a
  570.           smushmode of -2 can be given on the command line, but not in
  571.           a font file.)
  572.  
  573.           Between the first line and the actual characters of the font
  574.           are the comment lines.  Cmt_count specifies how many lines
  575.           there are.  These lines are optional, may be as long as you
  576.           want, and are ignored by figlet.
  577.  
  578.           rtol (integer) tells which direction the font is to be
  579.           printed.  0 means left-to-right, and 1 means right-to-left.
  580.           Left-to-right text is printed flush-left by default, while
  581.           right-to-left text is printed flush-right by default.  rtol
  582.           may be omitted, in which case 0 (left-to-right) is assumed.
  583.           Earlier versions of figlet (i.e., version 2.0) ignore rtol.
  584.  
  585.           Thus, a complete figlet font file header will look something
  586.           like the following:
  587.  
  588.  
  589.  
  590.  
  591.      Page 9                                           (printed 9/9/95)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  599.  
  600.  
  601.  
  602.                flf2a$ 6 5 20 15 3
  603.                Example by Glenn Chappell <ggc@uiuc.edu> 8/94
  604.                Permission is hereby given to modify this font, as long as the
  605.                modifier's name is placed on a comment line.
  606.  
  607.  
  608.         The Font Data
  609.           The font data begins on the next line after the comments and
  610.           continues to the end of the file.  The characters from ` '
  611.           to `~' are given in standard ASCII order, followed by the
  612.           extra German characters: umlauted `A', `O', `U', `a', `o'
  613.           and `u' and s-z.  Following these are the optional code-
  614.           tagged characters.  Each character uses height lines, where
  615.           height was given on the first line of the font file.  Each
  616.           code-tagged character is preceeded by an extra line with the
  617.           character's code (a number) on it.  The characters in the
  618.           file are given exactly as they should be printed out, with
  619.           two exceptions: (1) hardblanks should be the hardblank
  620.           character, not a blank, and (2) every line has an endmark
  621.           character.
  622.  
  623.           In most figlet fonts, the endmark is either `@' or '#'.
  624.           figlet eliminates the last block of consecutive equal
  625.           characters from each line (other than the header lines) when
  626.           the file is read in.  By convention, the last line of a font
  627.           character has 2 endmarks, while all the rest have one.  This
  628.           makes it easy to see where characters begin and end.  No
  629.           line should have more than 2 endmarks.
  630.  
  631.           The code-tagged characters are optional, and are ignored by
  632.           earier versions of figlet (i.e., version 2.0).  The code-
  633.           tagged characters begin just after the German characters.
  634.           There can be as many or as few of these as you like.  The
  635.           first line of a code-tagged character has a single number on
  636.           it, the character's code, which is the number by which
  637.           figlet will refer to it.  This number can be in decimal,
  638.           octal or hexadecimal, using the standard scanf conventions
  639.           for such numbers.  On the next line the character itself
  640.           begins, in the same format as the un-tagged characters.
  641.  
  642.           If two or more font characters have the same tag, the last
  643.           one in the font is the one used.  For this purpose, the
  644.           normal ASCII characters are considered to have tags equal to
  645.           their ASCII value, while the German characters are given
  646.           tags -255 through -249.
  647.  
  648.           There is no required encoding for the code-tagged
  649.           characters.  figlet simply prints the character with the
  650.           given code when it is told to.  However, in most of the
  651.           fonts, we have used ISO Latin-1 for characters 160-255,
  652.           following a suggestion of Zhahai Stewart.  Stewart has
  653.           suggested using Unicode for other characters.
  654.  
  655.  
  656.  
  657.      Page 10                                          (printed 9/9/95)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  665.  
  666.  
  667.  
  668.           The zero tag is treated specially.  It is figlet's ``missing
  669.           character''.  Whenever figlet is told to print a character
  670.           which doesn't exist in the current font, it will print
  671.           character zero.  If character zero doesn't exist, nothing
  672.           will be printed.
  673.  
  674.  
  675.         Notes
  676.           It is very important that every character in a font has the
  677.           same height, and, once the endmarks are removed, that all
  678.           the lines constituting a single font character have the same
  679.           length.  Be careful also that no lines in the font file have
  680.           trailing blanks, as figlet will take these to be the
  681.           endmarks.  Many problems like these can be found easily
  682.           using chkfont, part of the standard figlet package, and also
  683.           available, as of this writing, by anonymous FTP from
  684.           ftp.nicoh.com:pub/figlet/util.
  685.  
  686.           If you don't want to define all the characters, make the
  687.           undefined characters empty, i.e., each line of the character
  688.           should consist only of one or two endmarks.
  689.  
  690.           The blank character should usually be made entirely of
  691.           hardblanks.  (Most slanted fonts are an exception to this.)
  692.  
  693.           If you design a font, it is helpful if you put your name and
  694.           an e-mail address on a comment line.  If you will allow
  695.           others to modify your font, you may want to say so on a
  696.           comment line.
  697.  
  698.           If a font contains a non-Roman alphabet stored in locations
  699.           normally taken by ASCII, we have found it helpful to include
  700.           a ``translation'' table as one of the characters of the
  701.           font.  Typically, the ``~'' character contains a list of all
  702.           the special characters in the font, along with the ASCII
  703.           characters they correspond to.  It is a good idea to keep
  704.           this table no more than 79 columns wide.  (Thanks to
  705.           Gedaliah Friedenberg for this idea.)
  706.  
  707.           Again, if you design a font, please let us know!
  708.  
  709.  
  710.      CONTROLFILE FORMAT
  711.           (Note: This section isn't terribly well-written.  I really
  712.           don't have time right now to do much with it.  If you want
  713.           to write a controlfile, just look at the existing files and
  714.           ignore the f command, and you'll probably do pretty well.
  715.           Anyone needing extra help can write us at <figlet@uiuc.edu>.
  716.           Also, anyone willing to revise this section or the FONT FILE
  717.           FORMAT section is welcome to do so.  Please let us know
  718.           about your efforts if you give it a try.  -GGC-)
  719.  
  720.  
  721.  
  722.  
  723.      Page 11                                          (printed 9/9/95)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  731.  
  732.  
  733.  
  734.           Controlfiles are files containing lists of commands that
  735.           figlet executes each time it reads a character.  A
  736.           controlfile is specified to figlet using the -C command line
  737.           option (see OPTIONS).  In the file itself the first line
  738.           identifies the file as a figlet controlfile, and the
  739.           remaining lines are the commands, one per line.  Currently,
  740.           the only recognized commands tell figlet to translate one
  741.           character to another (similar to the Unix tr command).  In
  742.           future versions of figlet, more commands may be added.  As
  743.           with font files, when writing a controlfile, it is usually
  744.           best to begin with an existing file.
  745.  
  746.           The filename of a figlet controlfile must have the suffix
  747.           ``.flc''.
  748.  
  749.           The first five characters of a controlfile should be
  750.           ``flc2a''.  ``flc2'' is the magic number of a figlet
  751.           controlfile.  The next character (`a') is currently ignored.
  752.           It may mean something in future versions of figlet.  If it
  753.           does, you can be sure your files will still work if this
  754.           character is `a'.
  755.  
  756.           Each of the following lines of the file consists of a one-
  757.           character command followed by whatever parameters the
  758.           command requires, excepting blank lines, which are ignored.
  759.           There are currently three recognized commands: #, t and f.
  760.  
  761.  
  762.           # comment
  763.                Any line beginning with # is ignored.
  764.  
  765.  
  766.           t translate
  767.                This is similar to the Unix tr command.  It directs
  768.                figlet to ``translate'' one character to another.
  769.                ``t'' is followed by one or more blanks, then by a
  770.                character (or range of characters, e.g., ``A-Z'') then
  771.                one or more blanks, then another character (or range).
  772.  
  773.                For example,
  774.  
  775.                     t # $
  776.  
  777.                will convert `#' to `$', while
  778.  
  779.                     t A-Z a-z
  780.  
  781.                will convert upper-case ASCII to lower-case ASCII.  A
  782.                range should always be followed by another range of the
  783.                same size.
  784.  
  785.                A number of backslash (`\') options are available for
  786.  
  787.  
  788.  
  789.      Page 12                                          (printed 9/9/95)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  797.  
  798.  
  799.  
  800.                specifying characters.  Any of the standard ``C''
  801.                language backslash-character conventions are legal,
  802.                e.g., ``\n'' for newline, etc.  Also, backslash-blank
  803.                can be used to specify a blank character.  Backslash
  804.                followed by a number in any of the standard scanf
  805.                formats (decimal, octal or hexadecimal) specifies the
  806.                character with the given code.  For example,
  807.  
  808.                     t \n-\  \65-W
  809.  
  810.                will convert all characters from newline to blank into
  811.                the corresponding characters from `A' to `W' (`A' has
  812.                code 65).
  813.  
  814.                If a number of consecutive t commands are given, then
  815.                for each character input, only the first applicable
  816.                command, if any, will be executed.  As a result,
  817.  
  818.                     t A B
  819.                     t B A
  820.  
  821.                will swap the characters `A' and `B'.  If figlet reads
  822.                an `A' the first command will change `A' to `B', in
  823.                which case the second will not be executed.  In the
  824.                following list,
  825.  
  826.                     t A B
  827.                     t A C
  828.  
  829.                the second command is never executed.  In short, a
  830.                sequence of t commands ``does what it ought to''.
  831.  
  832.  
  833.           f freeze
  834.                More complex files, in which a single character is
  835.                acted upon by several t commands, can be set up using
  836.                the f command.  f ``freezes'' the current character,
  837.                executing the remaining commands in the controlfile as
  838.                if they were in a separate file.  The f command has no
  839.                parameters, and anything following it on the same line
  840.                is ignored.  (Note: If you, along with so many others,
  841.                cannot figure out what the f command does, or why
  842.                anyone would use it, feel free to ignore it.)  After
  843.                figlet executes a t command, it skips to the end of the
  844.                file or to the next f command.  If any t commands
  845.                follow, the first applicable one will be executed.  The
  846.                result is that f acts as a ``freeze'', executing the
  847.                remaining commands as if they were in a separate file.
  848.  
  849.  
  850.  
  851.      FILES
  852.  
  853.  
  854.  
  855.      Page 13                                          (printed 9/9/95)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  863.  
  864.  
  865.  
  866.           file.flf            figlet font file
  867.           file.flc            figlet control file
  868.  
  869.  
  870.      DIAGNOSTICS
  871.           figlet's diagnostics are intended to be self-explanatory.
  872.           Possible messages are
  873.  
  874.                Usage: ...
  875.                Out of memory
  876.                Unable to open font file
  877.                Not a figlet 2 font file
  878.                Unable to open control file
  879.                Not a figlet 2 control file
  880.                "-t" is disabled, since ioctl is not fully implemented.
  881.  
  882.           This last message is printed when the -t option is given,
  883.           but the operating system in use does not include the system
  884.           call figlet uses to determine the terminal width.
  885.  
  886.           figlet also prints an explanatory message if the -F option
  887.           is given on the command line.  The earlier version of
  888.           figlet, version 2.0, listed the available fonts when the -F
  889.           option was given.  This option has been removed from figlet
  890.           2.1.  It has been replaced by the figlist script, which is
  891.           part of the standard figlet package.
  892.  
  893.  
  894.      ORIGIN
  895.           ``figlet'' stands for ``Frank, Ian and Glenn's LETters''.
  896.           Inspired by Frank's .sig, Glenn wrote (most of) it, and Ian
  897.           helped.
  898.  
  899.           Most of the standard figlet fonts were inspired by
  900.           signatures on various UseNet articles.  Since typically
  901.           hundreds of people use the same style of letters in their
  902.           signatures, it was often not deemed necessary to give credit
  903.           to any one font designer.
  904.  
  905.  
  906.      BUGS
  907.           Very little error checking is done on font and control
  908.           files.  While figlet tries to be forgiving of errors, and
  909.           should (hopefully) never actually crash, using an
  910.           improperly-formatted file with figlet will produce
  911.           unpredictable output.
  912.  
  913.           figlet does not handle formatting characters in a very
  914.           intelligent way.  A tab character is converted to a blank,
  915.           and vertical-tab, form-feed and carriage-return are each
  916.           converted to a newline.  On many systems, tabs can be
  917.           handled better by piping files through expand before piping
  918.  
  919.  
  920.  
  921.      Page 14                                          (printed 9/9/95)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      FIGLET(6)              v2.1 (12 Aug 1994)               FIGLET(6)
  929.  
  930.  
  931.  
  932.           through figlet.
  933.  
  934.           figlet output is quite ugly if it is displayed in a
  935.           proportionally-spaced font.  I suppose this is to be
  936.           expected.
  937.  
  938.  
  939.      AUTHORS
  940.           Glenn Chappell <ggc@uiuc.edu> did most of the work. You can
  941.           e-mail him but he is not an e-mail fanatic; people who e-
  942.           mail Glenn will probably get answers, but if you e-mail his
  943.           best friend:
  944.  
  945.           Ian Chai <chai@uiuc.edu>, who is an e-mail fanatic, you'll
  946.           get answers, endless conversation about the mysteries of
  947.           life, invitations to join some 473 mailing lists and a free
  948.           toaster.  (Well, ok, maybe not the free toaster.)
  949.  
  950.           Frank inspired this whole project with his .sig, but don't
  951.           e-mail him; he's decidedly an un-e-mail-fanatic.
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.      Page 15                                          (printed 9/9/95)
  988.