Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dvijep(1L) — BSD/386 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dvitype(1)

latex(1)

tex(1)

tr2tex(1)



dvi(1L)                                                   dvi(1L)


NAME
       dvixxx - TeX DVI to device xxx translator family


SYNOPSIS
       dvixxx [-a] [-b] [-c#] [-d#] [-eVAR=value]...
            [-ffontsubfile] [-l] [-m#]
            [-o#]...  [-o#:#]...  [-o#:#:#]...
            [-p] [-q] [-r#] [-s#] [-v]
            [-x#units] [-y#units] [-z] dvifile1 [ dvifile2]...

       xxx = output device identifier suffix (see below)


DESCRIPTION
       Several  TeX  DVI  translators  are  available.   They all
       expect the name of the DVI file on the command  line,  and
       the  extension .dvi can always be omitted.  As illustrated
       below, they issue a one-line identifier message and, if no
       command  line arguments are given, type a Unix-style usage
       message.  Some of them may have additional help files.  On
       case-sensitive file systems, file names may be expected to
       be entirely in lower  case,  so  you  should  type  dvialw
       instead of DVIALW.

       For  all  except dvibit, which is intended for interactive
       display, the output file will be given  the  name  of  the
       .dvi  file,  but  with  suffix  .dvi-xxx, where xxx is the
       three-character mnemonic for the translator  program.   If
       long  filenames are not supported, then .xxx is used.  For
       dvibit, output is on stdout, which defaults to the  termi-
       nal;  it  may  be  redirected in the usual Unix fashion by
       >filename on the command line (e.g. dvibit foo  >foo.out).

       As  each  .dvi  file  is  processed,  a  list of errors is
       printed on the standard error unit, stderr; this  list  is
       also  saved  in  a  file with suffix .dvi-err (or .err, if
       long filenames are not supported). This file is  not  cre-
       ated if there are no errors.  As each page is printed, the
       physical page  number  and  the  TeX  page  number(s)  are
       printed  without  a  following character return; after the
       last page, the string ``[OK]'' is printed, followed  by  a
       newline.  This  gives  a convenient progress report to the
       terminal. If it is not wanted, then the error  output  can
       be redirected into a file (possibly the null device) (e.g.
       dvixxx foo &foo.err), or the  -q  (quiet)  option  can  be
       given to suppress it.


DEVICES SUPPORTED
       The available translators are as follows:

       dvialw             PostScript (Apple LaserWriter)




                         21 October 1987                        1




dvi(1L)                                                   dvi(1L)


       dvibit             Version 3.10 BBN BitGraph terminal

       dvican             Canon LBP-8 A2 laser printer

       dvigd              Golden Dawn Golden Laser 100 printer

       dviimp             Imagen  imPRESS-language  laser printer
                          family

       dvijep             Hewlett-Packard LaserJet Plus

       dvijet             Hewlett-Packard LaserJet

       dvil3p             DEC LN03 Plus laser printer

       dvil75             DEC LA75 144 dpi printer

       dvim72             Apple Imagewriter 72 dpi printer

       dvimac             Apple Imagewriter 144 dpi printer

       dvimpi             MPI Sprinter 72 dpi printer

       dvio72             OKIDATA Pacemark 2410 72 dpi printer

       dvioki             OKIDATA Pacemark 2410 144 dpi printer

       dviprx             Printronix 60h x 72v dpi printer

       dvitos             Toshiba P-1351 180 dpi printer

       dvityp or dvitype  DVI Translator for human-readable  out-
                          put


OPTIONS
       The  order  of  command  options and DVI file names is not
       significant; all switch values apply  to  all  DVI  files.
       DVI files are processed in order from left to right.

       Letter  case  is ignored in option switches: -A and -a are
       equivalent.

       -a     Implement virtual font caching, if possible.   When
              a  font  file  is  opened, a buffer is allocated to
              contain the entire file, and the file is then  read
              with  one system call.  This is important primarily
              on networked file systems, where the  many  random-
              access  calls in the font file for small amounts of
              data entail substantial network overhead.  With the
              entire  file  cached in local memory, this overhead
              is removed.   The additional  memory  required  for
              the font file buffers amounts to 100K to 200K bytes
              (assuming the compact .pk font file format),  which



                         21 October 1987                        2




dvi(1L)                                                   dvi(1L)


              is  not  excessive.   If memory cannot be allocated
              for a font file, then  normal  buffering  of  small
              blocks  is used.  A trace option (-d64) is provided
              to monitor the font caching; see below.

       -b     Backwards order printing  from  the  default.   For
              example,  laser  printers  using  the  Canon LBP-CX
              print  engine  normally receive  pages  in  reverse
              order  because  they  stack printed side  up.  Some
              have page handling  mechanisms that stack them face
              down,  and in such  a case -b will ensure that they
              come out in  order 1, 2, ...  instead  of  n,  n-1,
              n-2, ...

       -c#    Print  #  copies  of each output page.  Page copies
              are printed consecutively; this does not give  mul-
              tiple collated copies of the entire job.

       -d#    Produce  debugging  output  on stderr if a non-zero
              value is given.  Multiple -d switches may be speci-
              fied,  and one may also add values of the following
              possible options to obtain the switch value:

              1      (dvijet only) print page bitmap in hexadeci-
                     mal;

              2      display page coordinates and metrics of each
                     output character, and print  each  character
                     bitmap in hexadecimal;

              4      (dvijep  only)  display updated page coordi-
                     nate of each character after  each  call  to
                     fixpos();

              8      print  filename  and  open mode of each suc-
                     cessful file opening;

              16     print filename and open mode of each  unsuc-
                     cessful file opening;

              32     show discarded off-page text;

              64     trace virtual font caching;

              128    trace character setting (lots of output).

              For example, either -d8 -d16 or -d24 will trace all
              attempted file openings.

       -eVAR=value
              Define an environment variable on the command  line
              (see the later section ENVIRONMENT VARIABLES).  The
              acceptable values for VAR  are  DVIHELP,  FONTLIST,
              TEXFONTS,  and  TEXINPUTS.  Under normal use of the



                         21 October 1987                        3




dvi(1L)                                                   dvi(1L)


              translators, these can be set by  TOPS-20  and  VAX
              VMS  define  VAR:  value  commands,  or by Unix csh
              setenv VAR value or sh VAR=value  commands.    When
              the  translator is invoked by another program, such
              as a print spooler, on some systems it may  not  be
              possible  to  set a particular value of an environ-
              ment variable for the subprocess,  so  this  option
              gets around this limitation.  On most Unix systems,
              it  should  be  possible  to  use  the  call   sys-
              tem("VAR=value; dvixxx filename").

       -ffontsubfile
              Define an alternate font substitution file which is
              to be used instead of the default ones (see below).

       -l     Inhibit logging.

       -m#    Reset magnification to #.  The default for low res-
              olution printers is -m603, corresponding to 1/1.2^5
              magnification  of  300-dot/inch fonts.  By TeX con-
              ventions,  magnification  1000  corresponds  to   a
              200-dot/inch output device.  The default magnifica-
              tion is always adjusted  according  to  the  output
              device  resolution  in  order to give a normal page
              size, so this parameter should rarely be  required.
              Legal  values  are  int((1000  or  1440  or 1500) x
              1.2^(k/2) [k = -16 ... 16]; other  values  will  be
              set  to  the nearest in this family.  Not all fonts
              will be available in  this  wide  range,  and  most
              installations  will probably have only a half dozen
              or so magnifications.

              Magnification values less than 25 are taken to be a
              TeX magstep parameter which is applied to the stan-
              dard magnification for that device.   For  example,
              -m-0.5  selects  a  smaller size, and -m2 selects a
              size 1.44 times larger than normal.

       -o# or -o#:# or -o#:#:#
              Specify a page number, or range of page numbers, to
              be  selected  for  output.   In the third form, the
              last number is the page number  step  size;  it  is
              normally  1.  This option may be specified any num-
              ber of times.  If it is  not  specified,  then  all
              pages will be printed.  Pages are numbered in order
              1, 2, 3, ... in  the  file,  but  any  page  number
              recorded by TeX on the printed page will in general
              be different.  Negative page  numbers  count  back-
              ward;  -1  is the last page in the document, -2 the
              second last page, and so on.

              As pages are selected for printing, [#{#}  will  be
              printed on stderr, where the first # is the sequen-
              tial page number in the file, and the second # is a



                         21 October 1987                        4




dvi(1L)                                                   dvi(1L)


              string  of  values  of  the  TeX  counters, \count0
              through \count9, separated by dots,  with  trailing
              zero  counters dropped. \count0 usually records the
              printed page number.  When the page  is  completely
              output,  a closing ] will be printed on stderr. Any
              error messages from processing of  that  page  will
              therefore  occur  between the square brackets.  For
              example, -o1:3 -o12 -o17:23  -o-3:-1  would  select
              pages  1, 2, 3, 12, 17, 18, 19, 20, 21, 22, and 23,
              plus the last three pages.

              Pages are processed in the order found in  the  DVI
              file;  there  is  intentionally  no attempt made to
              sort them according to the  \count0  values,  since
              different  macro  packages may use this counter for
              different purposes, and in  the  case  of  floating
              tables  and  figures, the pages may not be in order
              anyway.

              Pages will always be printed in an order  appropri-
              ate  for the device so that the first document page
              occurs first face up in the document stack; the  -b
              option  can  be  used  to  reverse this order.  For
              example, some Hewlett-Packard LaserJet Plus  print-
              ers  are  equipped with a page flipper which stacks
              output face down; for these,  the  -b  option  will
              ensure  that  the  pages  come  out in the expected
              order.

              Specification of a page number step size is  useful
              for  producing  duplex  (two-sided)  printing.  For
              example, with laser printers using the Canon LBP-CX
              engine,  the  first  run  could specify -o1:9999:2,
              which would stack output face  up,  beginning  with
              the  last page, and ending with page 1 on top.  The
              printed pages can then be reinserted in  the  input
              tray  face  up,  page 1 on the top, exactly as they
              were found in the output tray, with the top of  the
              page  in  the  tray  closest  to  the  end which is
              inserted first into the printer.  A second run with
              -b  -o2:9999:2 would then print pages 2, 4, ..., on
              the backs of pages 1, 3, ...; note the -b option to
              get backwards order on the second run.

              There is a bug in Microsoft C's sscanf() on the IBM
              PC; it does not correctly parse input on the format
              "%d:%d:%d"  in option() for the page number switch.
              It correctly returns the numbers,  but  instead  of
              returning  the  number  of  such  items  parsed, it
              returns -1, which should only happen  if  none  are
              parsed.   A  work  around  seems  to be to supply a
              trailing colon on the switch,  so  that  you  write
              -o17: instead of -o17.




                         21 October 1987                        5




dvi(1L)                                                   dvi(1L)


       -p     Inhibit font preloading.  This may produce output a
              few seconds earlier when all pages are output,  but
              should  have  negligible  effect  on  the execution
              time, and  consequently,  should  normally  not  be
              specified.  When individual pages are being printed
              with the -o# option, preloading is  necessary  (and
              will  be  forced)  to  ensure  that  all  fonts are
              defined before they are referenced.

       -q     Quiet mode.  Status displays  to  stderr  are  sup-
              pressed,  unless  warning  or  error  messages  are
              issued.  For interactive devices (dvibit),  warning
              messages are suppressed.

       -r#    (Device = HP LaserJet only).  Specify the Laser Jet
              output resolution in dots per inch.  # must be  one
              of  75,  100, 150, or 300.  The actual plot file is
              identical in each case; only the size on the output
              page  is  changed, because the resolution change is
              effected by printing 1 x 1, 2 x 2, 3 x 3, or 4 x  4
              pixel blocks.

       -r     (Device  =  Golden  Laser  100  only).  Select run-
              length encoding of the output file.   This  reduces
              disk  space  typically by 10% to 40%, but increases
              host CPU time for the  preparation  of  the  output
              file.

       -r     (Device   = Apple ImageWriter only).   Select  run-
              length encoding of the output file.

       -r     (Device = Toshiba P-1351 only).  Select  run-length
              encoding  of  the  output  file.  This reduces disk
              space typically by 10% to 40%, but  increases  host
              CPU  time  for  the preparation of the output file,
              and because of poor logic in the printer, may  dou-
              ble the print time!  The print quality is also sub-
              stantially worse, so this option is  generally  not
              recommended.

       -s#    (Device  =  Apple LaserWriter only).  Force charac-
              ters larger than  #  pixels  wide  or  high  to  be
              reloaded  each time they are required.  The Version
              23.0 PostScript interpreter has a bug  which  mani-
              fests  itself in fatal VM error messages when large
              characters are sent.  A  reasonable  default  value
              has  been  set for this which should normally avoid
              the problem.  Specifying -s0 will  cause  reloading
              of every character each time it is used.

       -v     (Device  = Apple LaserWriter  only).  Force reload-
              ing  of all required fonts at start of each page.





                         21 October 1987                        6




dvi(1L)                                                   dvi(1L)


       -x#units
              The  -x options specify the left margin of the  TeX
              page  on  the  output  page in any of the indicated
              units.  Letter case is not significant in the units
              field,  which must not be separated from the number
              by any space. # may be  fractional.   For  example,
              -x1.0in,  -x2.54cm,  -x72.27pt,  and -x6.0225pc all
              specify a one-inch left margin. Negative values are
              permissible,  and  may  be used to shift the output
              page left (possibly truncating it on the  left)  in
              order to display a wide TeX page.

              The units field is mandatory, and may be one of

              bp     big point (1in = 72bp)

              cc     cicero (1cc = 12dd)

              cm     centimeter (1in = 2.54cm)

              dd     didot point (1157dd = 1238pt)

              in     inch

              mm     millimeter (10mm = 1cm)

              pc     pica (1pc = 12pt)

              pt     point (72.27pt = 1in)

              sp     scaled point (65536sp = 1pt)

       -y#units
              The  -y  options  specify the top margin of the TeX
              page on the output page.  Letter case is  not  sig-
              nificant in the units field, which must not be sep-
              arated from the number by  any  space.   #  may  be
              fractional.    For   example,   -y1.0in,  -y2.54cm,
              -y72.27pt, and -y6.0225pc all  specify  a  one-inch
              top  margin.   Negative values are permissible, and
              may be used to shift the output page  up  (possibly
              truncating  it  on  the  top) in order to display a
              long TeX page.

              By decree of the Stanford TeX Project, the  default
              TeX page origin is always 1 inch over and down from
              the top-left page corner,  even  when  non-American
              paper  sizes  are  used.   This  corresponds to the
              switch  settings  -x1in  -y1in;  these  values  are
              assumed unless overridden.

       -z     (TOPS-20  or  4.xBSD Unix only).  For each DVI file
              processed, type in an EXEC command  DVISPOOL:  dvi-
              filename  (on  Unix, DVISPOOL dvifilename) followed



                         21 October 1987                        7




dvi(1L)                                                   dvi(1L)


              by a newline.  The user should have  defined  DVIS-
              POOL: (or DVISPOOL) to be a program or shell script
              which sends the translation of the DVI file to  the
              appropriate output spooler.


SAMPLE EXECUTION
       Here  is  a sample execution of LaTeX and DVIALW extracted
       from a TOPS-20 PHOTO log:

       @latex biblio.ltx
       This is TeX, Tops-20 Version 1.1 (preloaded format=lplain 84.9.29)
       (APS:<BEEBE.PLOT79.DOCUMENTATION>BIBLIO.LTX.28
       LaTeX Version 2.06a - Release 7 July 84
       (APS:<TEX.LATEX>REPORT.STY.2
       Document Style 'report'. Version 0.91 - released 25 June 1984
       (APS:<TEX.LATEX>REP11.STY.2))
       (APS:<BEEBE.PLOT79.DOCUMENTATION>MYBIBLIO.STY.1 Mybibliography
       environment style - Version 0.0 - 15-May-86)
       (APS:<BEEBE.PLOT79.DOCUMENTATION>BIBLIO.AUX.12) [0]
       (APS:<BEEBE.PLOT79.DOCUMENTATION>BIBLIO1.LTX.3 [1] [2] [3] [4]
       [5]) [6]
       (APS:<BEEBE.PLOT79.DOCUMENTATION>BIBLIO.AUX.13)
       (see the transcript file for additional information)
       Output written on APS:<BEEBE.PLOT79.DOCUMENTATION>BIBLIO.DVI.1
       (7 pages, 13960 bytes).
       Transcript written on APS:<BEEBE.PLOT79.DOCUMENTATION>BIBLIO.LST.1.

       @dvialw -x0.3in -y0.2in biblio bt:example
       [TeX82 DVI Translator Version 2.0 for PostScript [Apple LaserWriter
       laser printer]]
       [Input from DVI file biblio.dvi]
       [Output on file biblio.dvi-alw]
       [7 pages]
       [1500 magnification]
       [7{6}] [6{5}] [5{4}] [4{3}] [3{2}] [2{1}] [1{0}]  [OK]
       [Input from DVI file bt:example.dvi]
       [Output on file bt:example.dvi-alw]
       [1 pages]
       [1500 magnification]
       [1{1}]  [OK]


       When the TOPS-20 version of  TeX  finishes  execution,  it
       normally simulates terminal input of a line of the form

       TeXspool: dvifile

       without  supplying  a  final carriage return.  The default
       value of the logical name TeXspool: points to a dummy pro-
       gram  which  does  nothing, so if you just type a carriage
       return yourself, the line is effectively ignored.  This is
       reasonable  in that it usually takes several trips through
       TeX before you have a .dvi file worth  printing.   If  you



                         21 October 1987                        8




dvi(1L)                                                   dvi(1L)


       like, you can redefine TeXspool: to point to your favorite
       DVI translator, for example,

       define TeXspool: sys:dvialw.exe

       Then when you type a carriage return when TeX finishes, it
       will  run the translator immediately, saving you a line of
       typing.  If you do not want the translator  to  run,  just
       cancel the line by typing Ctl-U or Ctl-C.

       A sample invocation of DVITYPE is as follows:

       @dvitype
       DVIFILE    : story.dvi
       OUTPUT     : tty:
       This is DVItype, Tops-20 Version 2.8
       Output level (default=3, ? for help):
       Starting page (default=*):
       Maximum number of pages (default=1000000):
       Assumed device resolution in pixels per inch (default=300/1):
       New magnification (default=0 to keep the old one):
       Options selected:
         Starting page = *
         Maximum number of pages = 1000000
         Output level = 3 (the works)
         Resolution =  300.00000000 pixels per inch
       numerator/denominator=25400000/473628672
       magnification=1000;       0.00006334 pixels per DVI unit
       Postamble starts at byte 569.
       maxv=43725786, maxh=30785863, maxstackdepth=3, totalpages=1
       Font 33: amsl10---loaded at size 655360 DVI units
       Font 23: ambx10---loaded at size 655360 DVI units
        ...and so on...


FONT SUBSTITUTION
       If no -ffontsubfile option is given, and font substitution
       is required, if the current DVI file is foo.dvi, then  the
       files  foo.sub,  texfonts.sub,  and texinputs:texfonts.sub
       will be tried in order.  The first two will  be  found  on
       the current directory, and the last is the system default.
       This gives the option of document-specific, user-specific,
       and  system-specific  substitutions,  and  the  -f  option
       allows all of these to be overridden.

       Font substitution lines have the form:

       % comment
       oldname.oldmag  ->  subname.submag  % comment
       oldname oldmag  ->  subname submag  % comment
       oldname         ->  subname         % comment

       Examples are:




                         21 October 1987                        9




dvi(1L)                                                   dvi(1L)


       % These provide replacements for some LaTeX invisible fonts:
       iamr10 1500     ->  amr10 1500      % comment
       iamr10.1500     ->  amr10.1500      % comment
       iamssb8         ->  amssb8          % comment

       The first  two  forms request  substitution  of a  partic-
       ular   font   and  magnification.  The third  form substi-
       tutes an  entire font family;  the closest available  mag-
       nification  to  the  required one will be used.   Any dots
       in  the  non-comment   portion   will  be   converted   to
       spaces,  and therefore, cannot be part of a name field.

       The  first matching substitution will be selected, so mag-
       nification-specific substitutions should be  given  first,
       before family substitutions.

       Comments are introduced by percent and continue to end-of-
       line, just as for TeX.  One whitespace character is equiv-
       alent  to  any  amount of whitespace.  Whitespace and com-
       ments are optional.


SCREEN CONTROL
       At present, dvibit is the only family  member  which  sup-
       ports  interactive viewing of the TeX output.  The follow-
       ing description therefore applies  only  to  it,  but  the
       functionality  should be adhered to in any new interactive
       device drivers.

       All switches, including the page selection (-o)  and  page
       origin  (-x  and -y) switches, work normally.  In order to
       avoid unnecessary waste of screen space, you probably will
       want to specify -x0in and -y0in to remove the default one-
       inch left and top margins.  The -q option is probably also
       advisable  to  avoid  warning  messages, such as from font
       substitutions.

       At beginning of page, a command and status  menu  is  dis-
       played  at  the  top  of the screen.  When the end-of-page
       command is reached in the DVI file, or as soon as keyboard
       input  is available, the driver will enter the end-of-page
       routine.  Any keyboard input  command  is  then  read  and
       acted upon; unrecognized input is discarded with a warning
       beep.  The advantage of checking for keyboard input during
       the  main DVI reading loop is that unwanted display can be
       avoided.  This is valuable if you  are  repositioning  the
       page,  or skimming a document.  The EMACS text editor uses
       much the same display algorithm---do nothing more  to  the
       screen  if a user command will probably invalidate it any-
       way.

       The input can select

              o  redisplay of the current page, possibly shifting



                         21 October 1987                       10




dvi(1L)                                                   dvi(1L)


                 it  up, down, left, or right, to see more of it,
                 or to restore a display trashed by an unexpected
                 system message or transmission line error;

              o  continuation  to  the next page in the page list
                 selected by default or by the -o option;

              o  backing up to the previous page (useful  if  you
                 overshoot);

              o  display  of  an  arbitrary  page  by  typing its
                 sequence number;

              o  termination of execution.

       Although the menu  on the top line displays only a  subset
       of  the  possible  commands, a number of synonyms are pro-
       vided for user convenience.  In particular, arrow keys  in
       VT52 and VT100 modes are recognized, as are EMACS control-
       character commands to move the  cursor  or  page  display.
       Commands are provided for  both coarse and fine adjustment
       of page position.

       Here is the current command list.  Input is immediate;  no
       terminating  carriage  return is necessary.  Consequently,
       typing error correction is supported only  for  the  digit
       string command; it ends at the first non-digit typed.


              D      Move the display down by 1/8 of screen size.

              U      Move the display up by 1/8 of screen size.

              L      Move the display left by 1/8 of screen size.

              R      Move  the  display  right  by  1/8 of screen
                     size.

              d or Ctl-N or down-arrow
                     Move the display  down  by  1/64  of  screen
                     size.

              u or Ctl-P or up-arrow
                     Move  the display up by 1/64 of screen size.

              l or Ctl-B or left-arrow
                     Move the display  left  by  1/64  of  screen
                     size.

              r or Ctl-F or right-arrow
                     Move  the  display  right  by 1/64 of screen
                     size.





                         21 October 1987                       11




dvi(1L)                                                   dvi(1L)


              . or Ctl-L
                     Redisplay current page.

              @      Redisplay current  page  with  startup  page
                     positioning.

              CARET or BACKSPACE
                     Redisplay previous page.

              nnn    nnn  is  a  digit  string; DELETE/RUBOUT and
                     BACKSPACE keys correct typing errors in  it.
                     Move  to  nnn-th  page, where document pages
                     are numbered 1, 2, ....  The TeX  page  num-
                     bers  are  displayed  in  the status window.
                     This is a recursive display; if you  respond
                     at  end-of-page  with  a  next-page command,
                     display will revert to the page sequence you
                     were  viewing  when you first issued the nnn
                     command.

              SPACE or RETURN or Ctl-V
                     Display next page.

              Q or q or X or x
                     Quit or exit.  The screen  will  be  cleared
                     and the terminal restored to its normal font
                     and emulation mode.

              Z      Zoom up one magstep (1.2 times larger)  from
                     current size.

              z      Zoom  down  one  magstep (1.2 times smaller)
                     from current size.

                     It is likely that some  font  magnifications
                     will  be  unavailable for zooming, so do not
                     be alarmed if some characters are  displayed
                     as blanks when you do this.  You can use the
                     font  substitution  mechanism   (-f   option
                     above)  to  work around this, or you can ask
                     your  font  administrator  to  generate  the
                     required  magnifications.  When font substi-
                     tution happens  because  of  an  unavailable
                     magnification,  characters  of  an incorrect
                     size are used with the spacing required  for
                     the font which TeX used, so output is likely
                     to look peculiar.

                     To avoid exhausting the terminal's font mem-
                     ory,  larger  characters  as  sent as raster
                     bitmaps each time they are used, rather than
                     as  downloaded fonts, making the screen dis-
                     play much slower.  The size limit  is  large
                     enough  that  this  should  not be necessary



                         21 October 1987                       12




dvi(1L)                                                   dvi(1L)


                     except at large magnifications.


SPECIALS
       The TeX \special{} command is intended to allow the speci-
       fication  in  a  .tex file of a request to the DVI driver,
       usually for the insertion of graphical  material  at  that
       point  in  the document.  It is currently implemented only
       for dvialw; other drivers will simply issue a warning mes-
       sage.

       The TeX \special{} command is expected to look like one of
       the following:

           \special{overlay filename}          % absolute positioning
           \special{include filename}          % relative positioning
           \special{insert filename}           % relative positioning

       In the first case, the PostScript file to be included will
       be  mapped  onto  the page at precisely the coordinates it
       specifies.  In the other two cases, the upper-left  corner
       of  the  bounding box will be placed at the current point.
       The PostScript file must then contain  (usually  near  the
       start) a comment of the form

       %%BoundingBox: llx lly urx ury

       specifying  the  bounding  box lower-left and  upper-right
       coordinates  in standard  PostScript  units  (1/72  inch).
       Alternatively, if the comment

       %%BoundingBox: (atend)

       is  found in  the file,  the last  1000 characters  of the
       file will  be searched to find a comment of the form:

       %%BoundingBox: llx lly urx ury

       If the PostScript file cannot be opened, or the \special{}
       command string cannot be recognized, or for relative posi-
       tioning, the bounding box cannot be determined, a  warning
       message is issued and the \special command is ignored.

       Otherwise,  the section of the PostScript file between the
       comment lines

       %begin(plot)
       %end(plot)

       is copied to the output file surrounded by

       save
       300 72 div 300 72 div scale % revert to standard 1/72 inch units
       % if relative positioning, then



                         21 October 1987                       13




dvi(1L)                                                   dvi(1L)


       % (xcp(in 1/72in)-llx) (ycp(in 1/72in)-ury) translate
        ...PostScript file contents...
       restore

       Plot files produced by PLOT79 have all the  expected  com-
       mands  in  them  to allow their use in TeX \special{} com-
       mands.  The two PLOT79 parameters which influence the size
       of the plot are


              o  the   device  size  specified  in  the  call  to
                 SETSZ(); it defaults to 11in if SETSZ()  is  not
                 called.

              o  the  device  space  specified  in  the  call  to
                 SETDS2() or SETDS3(); it defaults  in  the  CORE
                 system  to  the  unit  square, but if the PLOT79
                 framing routines are called, they will reset the
                 device  space  to a horizontal or vertical frame
                 in proportions of the local standard paper  size
                 (1 : 8.5/11 in the USA).

       For  example,  if  a device size of 5in is specified for a
       standard  horizontal  frame,  the  bounding  box  will  be
       declared  to be 5in wide and (8.5/11)*5in = 3.8636in high,
       so a TeX manuscript requiring the plot could have the fol-
       lowing commands at the start of a new paragraph:

       \special{include plotfilename}
       \vspace*{3.9in}


ENVIRONMENT VARIABLES
       The  behavior  of the DVI translators can be influenced by
       definition of logical names on TOPS-20  and  VAX  VMS,  or
       environment  variables  in  Unix  and PC DOS.  Compiled-in
       internal defaults will be provided for any of these  which
       are  not  defined.    They must be entirely in upper-case,
       since that is conventional on  Unix  systems.   The  names
       currently recognized are as follows:

       DVIHELP    This  variable defines an alternate help string
                  which  is typed when the  user makes  an  input
                  error.  It  should direct  the  user  to  addi-
                  tional   documentation.     For   example,   on
                  TOPS-20,  it  might  be ``try HELP DVI or XINFO
                  DVI''.

       FONTLIST   Normally, the drivers are  prepared  to  search
                  first  for .pk, then .gf, then .pxl font files.
                  This variable can be used to change this search
                  order,  or remove one or more of the possibili-
                  ties.  It is expected to contain at  least  one
                  of  the  strings  ``PK'',  ``GF'',  or ``PXL'',



                         21 October 1987                       14




dvi(1L)                                                   dvi(1L)


                  possibly separated by arbitrary punctuation and
                  other  text.   This  flexibility  is  necessary
                  because some operating systems expect  environ-
                  ment  variables to conform to some syntax, such
                  as that of a file name.   Letter  case  is  not
                  significant.     Some  acceptable  strings  are
                  ``PXL-then-PK-then-GF'', ``pk.gf'', ``use-only-
                  PXL-fonts'', and ``PXL/GF/PK''.

       TERM       This  variable  is  used only for dvibit; if it
                  does not evaluate  to  either  ``bitgraph''  or
                  ``bg'',  dvibit  will  refuse to run.  On Unix,
                  this is the conventional way of defining termi-
                  nal types with the termcap or terminfo systems.
                  This variable is ignored on VAX VMS, since  the
                  VMS  C  library  sets  it  to a value which can
                  never be ``bitgraph'' or ``bg''.

       TEXFONTS   This defines the  directory  path  for  finding
                  font  files. Its value is prepended to the name
                  of a TeX font to  get a  full  file  specifica-
                  tion.   A  typical  value  in Unix for TEXFONTS
                  would   be    /usr/local/lib/tex/fonts/.     On
                  TOPS-20,  font  cmr10  on a 300-dot/inch device
                  might   correspond   to    the    files    tex-
                  fonts:cmr10.300gf,   texfonts:cmr10.300pk,   or
                  texfonts:cmr10.1500pxl.

       TEXINPUTS  This defines the  directory  path  for  finding
                  files   which  are  not  in the current working
                  directory.  It is prepended to file  names.   A
                  typical     value     in    Unix    would    be
                  /usr/local/lib/tex/macros/.


IBM PC CAVEATS
       The latest version of the drivers has been  compiled  with
       Microsoft  C  Version  4.0.   With  Version 3.0, some .dvi
       files experienced a fatal  floating-point  stack  overflow
       error  both with and without a floating-point coprocessor;
       this can only be due to code  generation  errors,  and  it
       disappeared with Version 4.0.

       PC  DOS  by  default  has only a small number of available
       open files, and  this  number  is  not  adequate  for  the
       drivers  with  the  value  of  five  for  MAXOPEN  set  in
       machdefs.h.  You need to increase the limits  by  entering
       the lines

       FILES=10
       BUFFERS=10

       in  the config.sys file in the boot directory, then reboot
       the system to have the new  values  take  effect.   Larger



                         21 October 1987                       15




dvi(1L)                                                   dvi(1L)


       values  are  of  course  possible,  though FILES=20 is the
       limit with current versions of PC DOS.   Run-time  perfor-
       mance can be quite sensitive to these settings, so you may
       wish to experiment.

       If there is no config.sys file, or the settings  of  FILES
       and BUFFERS are too small, you will find the disk whirring
       madly while the driver attempts to open  font  files  with
       neighboring  magnifications,  and then it will finally die
       with a message unable to open .err file.  Use of the  -d24
       option  may  be useful in tracking how many files can suc-
       cessfully be opened.

       The drivers have been loaded with  the  default  Microsoft
       floating-point  library;  the  compiler generates calls to
       library routines which test a flag initialized at  startup
       time which indicates the presence or absence of the float-
       ing-point coprocessor  chip.   If  it  is  available,  the
       library routines will automatically use it.  You can force
       the chip to be ignored by defining an arbitrary  non-empty
       string  value for the environment variable NO87, for exam-
       ple

       set NO87=no-8087-available

       When the DVI translator runs, the value of  this  variable
       should  be  typed  on the screen as the first output line.
       On a Leading Edge PC, this typeout does  not  appear,  for
       unknown  reasons.  On a 4.77MHz IBM PC XT, the translators
       run twice (!) as slowly when NO87 is defined.

       The reason that you might need to know this  is  that  the
       method  employed by the library routines for detecting the
       presence or absence of an 8087  (or  80287)  chip  is  not
       infallible, thanks to design flaws of some PC's and possi-
       bly also the Intel chips.   It  is  conceivable  that  the
       library might think a coprocessor chip is present, when in
       fact it is not, and the first  floating-point  instruction
       executed would hang the machine.


FILES
       The  values  of texinputs: and texfonts: below are system-
       dependent.   On   Unix   systems,   typical   values   are
       /usr/local/lib/tex/macros/  and /usr/local/lib/tex/fonts/.


       *.dvi                   TeX DeVice Independent output file

       *.dvi-err               TeX DVIxxx translator error log

       *.err                   TeX  DVIxxx  translator  error log
                               when  long  extensions   are   not
                               available



                         21 October 1987                       16




dvi(1L)                                                   dvi(1L)


       *.dvi-xxx               TeX DVIxxx translator output file

       *.xxx                   TeX  DVIxxx translator output file
                               when  long  extensions   are   not
                               available

       *.sub                   DVI  file-specific  font substitu-
                               tion file

       DVISPOOL                Environment variable (4.xBSD  Unix
                               only)  defining  program  or shell
                               script which sends translation  of
                               DVI file to the appropriate output
                               spooler.

       DVISPOOL:               Logical name (TOPS-20 only) defin-
                               ing  program  which sends transla-
                               tion of DVI file to the  appropri-
                               ate output spooler.

       texfonts.sub            Job-wide font substitution file

       texfonts:*.*pxl         TeX default font rasters

       texfonts:*.*gf          TeX default font rasters

       texfonts:*.*pk          TeX default font rasters

       texinputs:dvialw.ps     PostScript  header file containing
                               standard  macro  definitions  pre-
                               fixed  to  PostScript  output from
                               dvialw

       texinputs:texfonts.sub  System-wide font substitution file


SEE ALSO
       dvitype(1),   latex(1),  tex(1),  tr2tex(1),  Local  LaTeX
       Guide, A TeX DVI Driver Family.


BUGS
       Bugs in either the software or its documentation should be
       reported by electronic or postal mail to

       Nelson H.F. Beebe
       Center for Scientific Computation
       220 South Physics Building
       University of Utah
       Salt Lake City, UT 84112
       USA

       Tel: (801) 581-5254
       EMAIL: Beebe@Science.Utah.Edu (Internet)



                         21 October 1987                       17




dvi(1L)                                                   dvi(1L)


       An  active  electronic mailing list for news about the DVI
       driver family development is maintained by the  author  at
       the above net address.  Send requests there if you wish to
       be on it.


AUTHORS
       David Fuchs at Stanford University wrote  dvitype  in  web
       and defined the DVI file format.

       Mark Senn at Purdue University wrote a preliminary version
       of the BBN BitGraph driver in C, using dvitype as a model.
       Stephan  v.   Bechtolsheim and Bob Brown at Purdue, Robert
       Wells at BBN, and Jim Schaad and  Richard  Furuta  at  the
       University of Washington, improved it.

       Contributions  for PostScript devices came from Neal Holtz
       at Carleton University.  Simon Barnes of Schlumberger Cam-
       bridge  Research  Ltd., and Robin Rohlicek at BBN provided
       useful additions to the BBN  BitGraph  driver  which  have
       been generalized and incorporated in Version 2.07.

       The  transformation to about a dozen other device drivers,
       the massive code rearrangement for many new  features  and
       easy  identification  of  host-  and device-dependent sec-
       tions, plus support for .pk and .gf  compact  font  files,
       was  carried  out at the University of Utah by Nelson H.F.
       Beebe.  He also wrote the documents A TeX DVI Driver  Fam-
       ily  and  Using LaTeX at the University of Utah College of
       Science DEC-20.  The first describes all of these  drivers
       in detail, and the second is the Local LaTeX Guide.

       Lon  Willett at Utah adapted dvijep to make dviimp for the
       Imagen laser printer family.

       John Sauter adapted  one  of  the  low-resolution  printer
       drivers  to  produce  dvil75 for the DEC LA75 printer, and
       dvil3p for the DEC LN03 Plus laser printer.

       Norman Naugle and colleagues at Texas A&M implemented  the
       family on several new systems.
















                         21 October 1987                       18


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026