packages icon

			     GNU Enscript


    Enscript's default output media (paper size) is A4.  It is *not*
    Letter.  To change the default, give the configure script the
    option `--with-media=Letter'.  It goes like this:

      $ ./configure --with-media=Letter

GNU Enscript is a drop-in replacement for the enscript program.
Enscript converts ASCII files to PostScript and stores generated
output to a file or sends it directly to the printer.

Enscript is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Enscript is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Enscript.  If not, see <>.

* Configuring Enscript for your system

There are some options in enscript you might want to modify to meet
your system's needs.  You can change them all after the compilation by
editing the global configuration file `enscript.cfg' at the directory
`PREFIX/etc/'.  You can also change some of the during the `configure'
step by giving the configure script appropriate options.  Please,
check the following things before reporting bugs; for the most cases
these help:

** Paper size

  As a default enscript uses A4 paper.  To change default paper to be
  for example `Letter', edit following line in the config file:

    # Default output media.
    DefaultMedia: A4

    => DefaultMedia: Letter

  You can also select the default paper size during the configuration
  by giving the configure script option --with-media=MEDIA, where
  media is one of the media listed in the `lib/' file:
  A3, A4, A5, Legal, Letter, A4dj or Letterdj.

** Default output device

  As a default (without any explicit options) enscript spools its
  output to the printer.  If you want to send outputs to stdout, edit
  following line:

    # Where output goes as a default.
    DefaultOutputMethod: printer

    => DefaultOutputMethod: stdout

** Printer command

  Enscript's default printer command is `lpr'.  To change it to be for
  example `lp', edit following line:

    # Printer spooler command name.
    Spooler: lpr

    => Spooler: lp

  You can also set the spooler command during the configuration by
  giving the configure script option `--with-spooler=SPOOLER'.

  On SystemV machines, you might also want to change the printer queue
  name switch from `-P' to `-d':

    # The spooler command switch to select the printer queue.
    QueueParam: -P

    => QueueParam: -d

** PostScript language level

  The PostScript language level that enscript uses for its output.
  The default values is 2 (PostScript 2).  If your printer supports
  only level 1 PostScript, you can set it to default by giving the
  configure script option `--with-ps-level=1'.  You can also set the
  level by editing the enscript.cfg file:

    # The PostScript language level that enscript should use.
    PostScriptLevel: 2

    => PostScriptLevel: 1

  Or, you can select it at the print time with the `--ps-level=LEVEL'

    $ enscript --ps-level=1 ...

* Supported Character Sets

Enscript supports following character sets:

  - ISO-8859-1		ISO Latin1 (default)
  - ISO-8859-2		ISO Latin2
  - ISO-8859-3		ISO Latin3
  - ISO-8859-4		ISO Latin4
  - ISO-8859-5		ISO Cyrillic
  - ISO-8859-7		ISO Greek
  - ascii		7 bit ascii
  - ascii fi se		7 bit ascii with following encodings:
			  '{'  =  (adieresis)
			  '|'  =  (odieresis)
			  '}'  =  (aring)
			  '['  =  (Adieresis)
			  '\\' =  (Odieresis)
			  ']'  =  (Aring)
  - ascii dk no		7 bit ascii with following encodings:
			  '{'  =  (ae)
			  '|'  =  (oslash)
			  '}'  =  (aring)
			  '['  =  (AE)
			  '\\' =  (Oslash)
			  ']'  =  (Aring)
  - IBM/PC		standard PC/DOS character set
  - Mac			Macintosh character set
  - VMS			VMS multinational charset
  - hp8			HP Roman-8 charset
  - koi8		Adobe Standard Cyrillic Font KOI8 charset
  - ps			PostScript font's default encoding
  - pslatin1		PostScript interpreter's `ISOLatin1Encoding'

* Special Escapes

Enscript supports special escapes sequences that can be used to add
simple page formatting commands to ASCII documents.  User can inline
EPS files, change font on-the-fly insert comments and shade regions of
text.  See file README.ESCAPES for details.

* Language sensitive highlighting

Enscript supports language sensitive code highlighting.  Highlighting
is implemented by a special `states' program which processes the input
files and annotates them with enscript's special escapes.  The states
definition file `' is a machine independent ASCII file and
it can be updated without re-compilation of the enscript program.  The
most recent version of this file can be downloaded from the GNU
enscript WWW home page: <>.

New highlighting definitions for different languages are welcome,
please send them to: <>

* PostScript font support

** AFM files

Enscript supports AFM (Adobe Font Metrics) files.  AFM files contain
font metrics information (character widths, etc); if there is an AFM
file for the current font, enscript can count line widths and tab
stops correctly.  Enscript distribution contains AFM files for the
most common PostScript fonts.  These AFM files are installed to the
directory <prefix>/share/enscript/.

** Fonts (.pfa or .pfb)

Enscript supports also additional PostScript fonts which are defined
in the `.pfa' or `.pfb' font files.  Enscript automatically
down-loads font's description to your PostScript document whenever you
use an external disk font.  Font down-loading requires that you have
both the `.afm' and `.pf{a,b}' files for you extra fonts and you have
created a font mapping file called `' to your font directory.

These are the steps that are needed to make your extra fonts usable in

1) Install the `.afm' and `.pf{a,b}' files to some appropriate
   directory.  Note! for a single font, both the .afm and .pf{a,b}
   files must have  the same prefix, filenames can differ only from
   the suffix part.  For example, if font `FooFont' is defined in the
   file `foo.pfa', then the AFM file must be named `foo.afm'.

2) Create a font map file for the font directory.  Enscript's
   distribution has an utility called `mkafmmap' which does the job;
   just give command:

	mkafmmap *.afm

   in your font directory.  This command creates a file called
   `' to your font directory.  File contains one row for each
   .afm file, each row has two columns: font's PostScript name and
   the prefix for the corresponding .afm file.

3) Notify enscript that it has new fonts to play with.  This is done
   by editing the global configuration file `enscript.cfg' or the
   personal configuration file `$HOME/.enscriptrc'.  Global
   configuration file has an entry called 'AFMPath' which contains the
   current font search path.  Add your new font directory to this

	AFMPath: /usr/local/share/enscript/afm:/usr/local/lib/ps:/usr/lib/ps:/fonts/myfontdir

  where `/fonts/myfontdir' is the new font directory.

So how does the font down-loading work?  Enscript automatically
down-loads font files for header and body fonts, if it can find the
corresponding `.pfa' or `.pfb' files from the AFMPath.  Enscript do
*not* down-load fonts that are specified in `^@font' escapes, however
you can down-load these font by specifying command line option
`--download-font=name' for each font.  You can also specify
down-loadable fonts in the global configuration file `enscript.cfg'
or in your personal configuration file `$HOME/.enscriptrc' by giving
option `DownloadFont: name'.

* What's different as compared to the Adobe's Enscript application?

- Adobe enscript's option `-o' has been changed.  In Adobe enscript
  option `-o' lists missing characters.  In GNU enscript `-o' is an
  alias for `-p' and missing characters are listed with an option `-O'.