To install, do the following:
1. Read the ENVIRONMENT section of xdvi_man.sed to determine the correct
default values for the XDVIFONTS and XDVISIZES environment variables.
Edit the Imakefile or Makefile and change the values of the make
variables DEFAULT_FONT_PATH and DEFAULT_FONT_SIZES to these values.
If your site uses virtual fonts, do the same thing with the
DEFAULT_VF_PATH variable. Note that support of virtual fonts in xdvi
does not include support of built-in Postscript<tm> fonts.
(Note: for X10 compilation, use Makefile_10 instead of Makefile.)
You may also wish to change other compilation options; they are
described later in this file.
2. make xdvi and try it out. If the settings in step one are incorrect,
you can use the corresponding environment variables to quickly try out
different values. If the values set in step 1 were incorrect,
rm font_open.o and go back to step 1.
If you get the error that the #include file <stdlib.h> does not exist,
then you should include -DX_NOT_STDC_ENV in the DEFS variable in the
Makefile or Imakefile. In X11R5 or later this problem should not
3. make xdvi.man.
4. Install xdvi and xdvi.man.
The X10 flag only affects xdvi.c (and the flags MSBITFIRST, BMSHORT,
and BMLONG, see below).
Note in particular the compilation flags USE_PK, USE_GF, and USE_PXL,
which can be set to reflect which font formats are actually used at
Other compilation flags are:
SYSV (dvi_init.c font_open.c xdvi.c) Set for System V
VMS Set for VMS compilation.
MSBITFIRST (X11 only; xdvi.c dvi_draw.c gf.c pk.c pxl.c) Store
bitmaps internally with the most significant bit at
the left. For performance reasons, it would be best
to set this to coincide with what your server uses.
Use the keystroke '^P' to find information in this
regard. Generally, you should use MSBITFIRST if and
only if '^P' reports bitord = 1, and BMSHORT/BMLONG
(below) should be set to match whatever '^P' reports
under "Unit =". But, if bitord = byteord, then the
latter setting should not matter much.
BMSHORT (X11 only; xdvi.c dvi_draw.c gf.c pk.c pxl.c) Store
bitmaps in short integers instead of bytes. See
MSBITFIRST for other relevant comments. To check
performance, you can use:
time xdvi -d 8 file.dvi
BMLONG (X11 only; xdvi.c dvi_draw.c gf.c pk.c pxl.c) Store
bitmaps in long integers instead of bytes.
ALTFONT (xdvi.c) Default font to use if the font named in the
dvi file cannot be found. Can be set to NULL. By
default, it is "cmr10".
SEARCH_SUBDIRECTORIES (font_open.c) Enable recursive searching of
subdirectories for font files (* and ** specifiers).
This also enables the TEXFONTS_SUBDIR environment
variable and the DEFAULT_SUBDIR_PATH makefile variable.
XDVIFONTS_ONLY (font_open.c) Never check the TEXFONTS environment
variable. Normally xdvi checks TEXFONTS if the
XDVIFONTS variable is not set. This option is
recommended if the version of TeX in use requires
that the TEXFONTS variable be set. See the relevant
paragraph in xdvi_man.sed for more details. This
option turns off that paragraph.
NOTOOL (X11 only; xdvi.c) Compile using raw X calls.
BUTTONS (xdvi.c) Put radio buttons on the right side of the
window for commonly used commands.
A4 (xdvi.c) Use European size paper by default.
NOQUERY (xdvi.c) Set this if you have trouble compiling the
definition of drawingWidgetClass.
TEXXET (everything) Enables op-codes 250 and 251 (used for
BDPI (xdvi.c) Default number of pixels per inch to use.
GREY (everything) Use greyscale anti-aliasing for
displaying shrunken bitmaps.
MAKEPK (font_open.c) If a font is not found, then try to
call Metafont to create the font. When using this
option, remember to set the paths in MakeTeXPK
correctly for your site, and be sure that the
destination directory for MakeTeXPK appears in your
MAKEPKCMD=\"/usr/local/tex/bin/MakeTeXPK\" (font_open.c) Same as the
above, but this variant explicitly declares which
command to use to create the font.
All flags should be set in the appropriate Makefile via the variable ``DEFS''.
This program is the combined work of many people, including but not
Eric Cooper, CMU
Bob Scheifler, MIT LCS
Paal Kvamme, Norwegian Institute of Technology
H\aa vard Eidnes, Norwegian Institute of Technology
Mark Eichin, MIT SIPB
Paul Vojta, UC Berkeley
Jeffrey Lee, U of Toronto
Donald Richardson, Clarkson Univ.
At the present time, the person to send bug reports to is Paul Vojta,
In addition to the various comp.sources.x archives, current versions of this
program can also be obtained via anonymous ftp from the following location:
export.lcs.mit.edu [126.96.36.199] file contrib/xdvi.tar.Z
To ease the load on export, you may also check other X archives, for example:
gatekeeper.dec.com [188.8.131.52] file pub/X11/contrib/xdvi.tar.Z
Paul Vojta, 17 March 1992
Note for IBM RS6000 users: some of the libraries are in non-obvious places:
These should be moved to /usr/lib or some more reasonable place (or use
symlinks), and ditto for the include files, which are initially placed
Notes of historical nature follow. Most recent changes are listed at the end
of the file.
This directory contains a version of xdvi capable of reading GF, PXL
and PK font files. This version of xdvi is based on the source that
"came with" X v10r3. Xdvi was modified by Paal Kvamme at the Norwegian
Institute of Technology, based on the modifications I had made to
dviimp (a dvi to ImPress converter). This code was again more or less
directly translated from the web source of PKtoPX.
If you discover (and fix) any bugs in this code, please notify me, so
I can make the corresponding changes myself.
H}vard Eidnes (TeXish: H\aa vard Eidnes)
Division of Computer Science
Norwegian Institute of Technology
Also has path search added by Mark Eichin, looks in TEXFONTS
X11 version now works on the IBM PC/RT as well as VAX.
*MORE* fixes (for athena release locker) [eichin:19880722.2058EST]
narrow vertical and horizontal lines no longer disappear.
bogus underlining (which usually occured on even sample sizes
of odd sized characters) no longer occurs.
-S number (or typing number followed by S) will adjust the
sampling fraction; 0 is special cased to mean if anything in the
sampled zone is set, set the sample, else clear it. Interesting to
experiment with, though not useful for reading (the default value of 3
is just right.)
-display and -geometry arguments work (so do old style forms,
though they were broken before)
fixed one of the PK debugging messages to print the correct
font name instead of printing the pointer as text.
included Ken Raeburn <raeburn>'s changes to support multiple
1. Incorporated the bitmap under a viewport widget using the toolkit
2. Added an icon and icon geometry arguments (X11 only);
3. Supported window resizing;
4. Added a 'c' option to move whatever is currently under the cursor to
the center of the window;
5. Added an 'R' option to reread the .dvi file, and added logic to make
'R' happen automatically whenever any part of the window is exposed
and the dvi file changes (so that you can iconify xdvi, run tex,
deiconify xdvi, and voila!);
6. Added a 'magnifying glass': when you push a button, a window pops
up, showing the region of the page, unshrunk;
7. Added support for gf fonts;
8. Upgraded font searching (at our site we use /usr/custom/tex82/gf
for gf fonts, /usr/custom/tex82/pk for pk fonts, etc.);
9. Made numerous internal changes (removed all the lint I could,
made unshrunk bitmaps permanently resident, which speeds up size
changing, made table.h necessary only for pxl.h, split up the source
file into xdvi.c, dvi.c, gf.c, pxl.c, and pk.c, made shrinking occur
relative to the character's hot point, etc.)
10. The program reads SIGIO signals and processes incoming events
immediately, so that it can stop displaying things that would be
erased anyway. If these interrupts are not coming through, then
it also checks for incoming events every several dozen characters
11. Further split up dvi.c into dvi_init.c and dvi_draw.c; added
compilation options for various internal bitmap representations.
Fixed it so gcc won't give warnings, and so it works with R3 toolkit.
-- Patchlevel 2: --
12. Added MAXCHARS compilation option. Eliminated the nonsense with
-- Patchlevel 3: --
13. Added -altfont command line option and SYSV compilation option.
4/1989 Modified for System V boxes. -DSYSV compiler option.
Donald Richardson, email@example.com
-- Patchlevel 4: --
14. Removed MAXCHARS compilation option. It's automatic now. Made X10
scrolling smoother. Implemented the moving magnifying glass.
-- Patchlevel 5: --
15. Implemented compilation without the toolkit, as well as scrollbars
and tpic support in X10. Also this version should work with color
VAXstations, although overstrike characters will come out incorrectly.
16. Fixed a bug in gf reading routines: specials at the beginning of
a character def. were not being processed. Thanks to
firstname.lastname@example.org for a bug report and fix.
17. Added 'k' keystroke.
-- Patchlevel 6: --
18. Added buttons on the right side of the window.
19. Added -pagewidth and -pageheight command line options and A4
20. Added a yet more robust font finding algorithm.
-- Patchlevel 7: --
21. Replaced -pagewidth and -pageheight options with -paper.
-- Patchlevel 8: --
22. Added compatibility for X11R4 and VMS. Fixed up alignment of rules.
-- Patchlevel 9: --
23. Removed obsolete '#' and '=' options from the X11 version: they
interfere with emacs.
-- Patchlevel 10: --
24. Implemented arrow keys, expert mode, searching for the font's actual
size first, the -[xy]offset and -sw options, and numerous bug fixes.
-- Patchlevel 11: --
25. Implemented recursive searching for font files in subdirectories.
26. Changed +sw to -hushspecials and implemented -hush.
27. Modified mksedscript so that the man page comes out neater.
28. Added a -keep option and resource to match the `k' keystroke.
-- Patchlevel 12: --
29. Implemented virtual fonts (this does not include built-in
30. X11R5 support, and numerous bug fixes.
-- Patchlevel 13: --
31. Added support for TeXXeT.
-- Patchlevel 14: --
32. Added support for greyscale anti-aliasing.
-- Patchlevel 15: --
33. Added support for MakeTeXPK, as in dvips.
-- Patchlevel 16: --
34. In the code for greyscale anti-aliasing, try to allocate a colormap
so that GXor operations can be used for drawing. Also interpolate
between foreground and background colors.
Paul Vojta, email@example.com