# GNU Enscript Frequently Asked Questions (FAQ)

For GNU Enscript version 1.6.0

This FAQ assumes that you are using the latest version of GNU Enscript, there are many old bugs and misfeatures but many of them have been fixed for the latest version. For on-line information about the latest version, bugs, features, etc. please, check the GNU Enscript WWW home at URL: http://www.iki.fi/~mtr/genscript/.

## Contents

- Misc
- Character Sets
- Printing, Output Media

## Misc

- Does enscript read PPD files?
  No. PPD file support is on my TODO list, I will implement in the near future.

- What's missing / what's different in the Adobe enscript emulation?
  - Enscript's option `-o' has been changed. In enscript `-o' lists missing characters. In GNU enscript `-o' is an alias for `-p' and missing characters are listed with an option `-O'.
- Make install installs with the current umask. I use 077 for root, which gives all the installed directories rwx------. No good for general use...
  Makefile is just doing what it was told. Change your umask for the installation time or override INSTALL_DATA and INSTALL_PROGRAM Makefile variables.

## Character Sets

- How can I use ibmpc's line drawing characters?

  First, you will need a PostScript font (.pfa or .pfb) which has those line drawing characters. This is the trickiest task since these fonts are really rare. Once you find one, you must make it available for enscript (see file README for details) so it can be downloaded to the printer.

  Since these suitable fonts are so rare, the ibmpc encoding do not contain mappings for those line drawing characters, this means they won't print if you use the ibmpc encoding. You must rely on the font's build-in encoding and print your files with option `-X ps' or `--encoding=ps'.

- How can I use the ISO-8859-7 input encoding?

  Manolis Lourakis (lourakis@csd.uch.gr) has written a document that describes how this can be done. It can be found from URL:

  > http://www.csd.uch.gr/~lourakis/genscript/

- I tried the iso8859/2 input encoding but enscript says that 44 characters were missing and I get '?' on paper instead of latin2 characters. Did I missed something? (This answer holds also for other input encodings).

  No, everything is ok but the problem is that Adobe's default Courier font does not have characters named: Aogonek, Lcaron, Sacute, Tcaron, Zacute, ... (those 44 missing characters) so enscript can't print them. You can solve this if you have a courier (or whatever) font that has those missing characters. One good canditate is courier font distributed with the X distribution, it is called cour.pf{a,b} and should be found from all good FTP sites.

  To solve this problem, you must:

  1. find a nice font to do the job.
  2. copy this font and its AFM file to some appropriate directory, let's say `$HOME/fonts/':

         $ ls fonts/cour*
         fonts/cour.afm  fonts/cour.pfa

  3. create a font map for this new font directory (mkafmmap program comes with the enscript distribution):

         $ cd fonts
         $ mkafmmap *.afm
         file=font.map
         BrushScript.afm...
         Hobo.afm...
         Stencil.afm...
         cour.afm...
         uaqrrc.afm...
         ugqb.afm...
         unmr.afm...
         unmrs.afm...

  4. edit enscript's personal (or the global) configuration file to use this new font:

         $ cat ~/.enscriptrc
         #
         # My enscript init file.
         #

         DefaultFancyHeader: emacs

         #PageLabelFormat: long

         Clean7Bit: 0

         AFMPath: /home/mtr/fonts:/usr/local/share/enscript

  5. now it should work:

         $ cd myprogs/enscript/
         $ enscript -v -G2r -pfoo.ps latin2.txt
         AFM: scanning path...
         AFM: reading font map "/home/mtr/fonts/font.map"
         AFM: reading font map "/usr/local/share/enscript/font.map"
         reading AFM info for font "Courier"
         processing file "latin2.txt"...
         [ 3 pages * 1 copy ] left in foo.ps

  Now enscript uses this new courier font that has those missing characters. Since the font file `.pfa' is found from the font path, enscript automatically includes that font file to your PostScript output. This means that it can be printed with any PostScript printer; now file really contains that font so it does not depend on printer's fonts.

## Printing, Output Media

- I printed some documents with options `-G2r', everything goes just fine but there are no page numbers in the upper right corner. What goes wrong?
  You are probably using wrong output media; your printer uses different output media than enscript. Check what is your default output media in the enscript.cfg (and $HOME/.enscriptrc) file and change it if needed. For example, to change enscript's default media A4 to Letter, you must to do the following change:

      # Default output media.
      DefaultMedia: A4
      =>
      DefaultMedia: Letter

  You can also set the default output media during the configuration step, just give configure script option

  --with-media[=media]

  If no media is given, it defaults to `Letter`.

- How can I change margins under enscript?
  You have to define a new output media which has better margins. This is quite easy, just define the new media in enscript's configuration file. For example, below is a new `A4BigMargin' media with bigger margins:

      # Media definitions:
      #	name		width	height	llx	lly	urx	ury
      Media:	A3		839	1190	18	17	821	1173
      Media:	A4		595	839	18	17	581	822
      Media:	A5		420	595	18	17	406	578
      Media:  Letter		612	792	18	17	597	776
      Media:	Legal		612	1008	18	17	597	992

      Media:   A4BigMargin	595	839	36	34	563	805

  You can select this media by giving enscript option `-M A4BigMargin' or by setting it to be your default output media by editing enscript.cfg:

      # Default output media.
      DefaultMedia: A4
      =>
      DefaultMedia: A4BigMargin

- Ghostscript does not show enscript's outputs correctly, what's the problem?
  There is one minor problem in enscript / ghostscript co-operation. Enscript's default output media is A4 (because I live in Europe) and GhostScript's default output media is Letter. There are three solutions for this problem:

  1. Tell Enscript that it should use the Letter media:

         $ enscript -MLetter other options and files

  2. Fix Enscript
     Add / edit following line to file enscript.cfg:

         # Default output media.
         DefaultMedia: A4

         =>

         # Default output media.
         DefaultMedia: Letter

  3. Fix GhostScript
     edit following line to file gs_init.ps:

         % Optionally choose a default paper size other than U.S. letter.
         % (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse

         =>

         % Optionally choose a default paper size other than U.S. letter.
         (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse

     or give ghostscript option `-sPAPERSIZE=a4`

- My PostScript printer supports only level 1 PostScript. How can I setup enscript to work with it?

  The level 2 features are protected by an if-else block in the generated output file. So, basicly everything should work smoothly. But, there is a but. As a default, enscript generates the page size selection code, and it might cause a syntax error on level 1 PostScript engines. This problem is fixed by disabling the page size generation. Just edit your .enscriptrc or enscript.cfg files and add the following line:

      GeneratePageSize: 0

Please send comments on these web pages to mtr@iki.fi.

Copyright © 1998 Markku Rossi

Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.