1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
|
NAME
----
XDVI - DVI Previewer for VAX VMS systems running the DECWindows software.
SYNOPSIS
--------
XDVI [+[<page>]] [-s <shrink>] [-density <density>] [-nogrey]
[-gamma <g>] [-p <pixels>] [-margins <dimen>] [-sidemargin <dimen>]
[-topmargin <dimen>] [-offsets <dimen>] [-xoffset <dimen>]
[-yoffset <dimen>] [-paper <papertype>] [-altfont <font>] [-l] [-rv]
[-mgs[n] <size>] [-hush] [-hushspecials] [-hushchars] [-hushchecksums]
[-fg <color>] [-bg <color>] [-hl <color>] [-bd <color>] [-cr <color>]
[-bw <width>] [-display <host::display>] [-geometry <geometry>]
[-icongeometry <geometry>] [-iconic] [-keep] [-copy] [-thorough]
[-version] dvi_file
DESCRIPTION
-----------
XDVI is a program which runs under the DECWindows system. It is used to
preview DVI files, such as those produced by TeX and LaTeX.
XDVI has the capability of displaying the file reduced by various (integer)
factors, and also has a "magnifying glass" which allows one to see a small
part of the unshrunk image momentarily.
Before displaying any page or part thereof, XDVI checks to see if the DVI
file has changed since the last time it was displayed. If this is the case,
XDVI will reinitialize itself for the new DVI file. For this reason,
exposing parts of the XDVI window while TeX is running should be avoided.
This feature allows you to preview many versions of the same file while
running XDVI only once.
OPTIONS
-------
In addition to specifying the DVI file (with or without the .DVI extension),
XDVI supports the following command line options. If the option begins with
a "+" instead of a "-", the option is restored to its default value. By
default, these options can be set via the resource names given in parentheses
in the description of each option.
+<page> Specifies the first page to show. If + is given
without a number, the last page is assumed; the first
page is the default.
-altfont <font> (.altFont) Declares a default font to use when the
font in the DVI file cannot be found. This is useful,
for example, with PostScript fonts.
-background <color> (.background) Determines the color of the background.
Same as -bg.
-bd <color> (.borderColor) Determines the color of the window
border.
-bg <color> (.background) Determines the color of the background.
-bordercolor <color> Same as -bd.
-borderwidth <width> (.borderWidth) Specifies the width of the border of
the window. Same as -bw.
-bw <width> (.borderWidth) Specifies the width of the border of
the window.
-copy (.copy) Always use the copy operation when writing
characters to the display. This option may be
necessary for correct operation on a color display, but
overstrike characters will be incorrect. If greyscale
anti-aliasing is in use, the -copy operation will
disable the use of colorplanes and make overstrikes
come out incorrectly. See also -thorough.
-cr <color> (.cursorColor) Determines the color of the cursor.
The default is the color of the page border.
-density <density> (.densityPercent) Determines the density used when
shrinking bitmaps for fonts. A higher value produces a
lighter font. The default value is 40.
-display <display> Specifies the host, display, and screen to be used for
displaying the DVI file. The display must be specified
in the form node::display.screen. The default is
obtained from the logical name "DECW$DISPLAY", which
may be defined using the SET DISPLAY command.
-fg <color> (.foreground) Determines the color of the text
(foreground).
-foreground <color> Same as -fg.
-gamma <gamma> (.gamma) Controls the interpolation of colors in the
greyscale anti-aliasing color palette. The default
value is 1.0. For 0 < gamma < 1, the fonts will be
lighter (more like the background), and for gamma > 1,
the fonts will be darker (more like the foreground).
Negative values behave the same way, but use a slightly
different algorithm.
-geometry <geometry> (*geometry) Specifies the initial geometry of the
window.
-hl <color> (.highlight) Determines the color of the page border.
The default is the foreground color.
-hush (.Hush) Causes XDVI to suppress all suppressible
warnings.
-hushchars (.hushLostChars) Causes XDVI to suppress warnings
about references to characters which are not defined in
the font.
-hushchecksums (.hushChecksums) Causes XDVI to suppress warnings
about checksum mismatches between the DVI file and the
font file.
-hushspecials (.hushSpecials) Causes XDVI to suppress warnings about
\special strings which it cannot process.
-icongeometry <geometry> (.iconGeometry) Specifies the initial position for
the icon.
-iconic (.iconic) Causes the XDVI window to start in the
iconic state. The default is to start with the window
open.
-keep (.keepPosition) Sets a flag to indicate that XDVI
should not move to the home position when moving to a
new page. See also the `k' keystroke.
-l (.listFonts) Causes the names of the fonts used to be
listed.
-margins <dimen> (.Margin) Specifies the size of both the top and side
margins. This should be a decimal number optionally
followed by "cm", e.g., 1.5 or 3cm, giving a
measurement in inches or centimeters. XDVI determines
the "home" position of the page within the window as
follows. If the entire page fits in the window, then
the margin settings are ignored. If, even after
removing the margins from the left, right, top, and
bottom, the page still cannot fit in the window, then
the page is put in the window such that the top and
left margins are hidden, and presumably the upper
left-hand corner of the text on the page will be in the
upper left-hand corner of the window. Otherwise, the
text is centered in the window. See also -sidemargin,
-topmargin, and the keystroke `M'.
-mgs <size> Same as -mgs1.
-mgs[n] <size> (.magnifierSize[n]) Specifies the size of the window
to be used for the "magnifying glass" for Button n.
The size may be given as an integer (indicating that
the magnifying glass is to be square), or it may be
given in the form WxH. See the MOUSE ACTIONS section.
Defaults are 200x150, 400x250, 700x500, 1000x800, and
1200x1200.
-nogrey (.grey) Turns off the use of greyscale anti-aliasing
when printing shrunken bitmaps. In this case, the
logic of the corresponding resource is the reverse:
-nogrey corresponds to grey:off; +nogrey to grey:on.
See also the 'G' keystroke.
-offsets <dimen> (.Offset) Specifies the size of both the horizontal
and vertical offsets of the output on the page. This
should be a decimal number optionally followed by "cm",
e.g., 1.5 or 3cm, giving a measurement in inches or
centimeters. 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. Therefore, the
default offsets are 1.0 inch. See also -xoffset and
-yoffset.
-p <pixels> (.pixelsPerInch) Defines the size of the fonts to use,
in pixels per inch. The default value is 300.
-paper <papertype> (.paper) Specifies the size of the printed page. This
may be of the form WxH (or WxHcm), where W is the width
in inches (or cm) and H is the height in inches (or
cm), respectively. There are also synonyms which may
be used: us (8.5x11), usr (11x8.5), legal (8.5x14),
foolscap (13.5x17), as well as the ISO sizes a1-a7,
b1-b7, c1-c7, a1r-a7r (a1-a7 rotated), etc. The
default size is 8.5 x 11 inches.
-rv (.reverseVideo) Causes the page to be displayed with
white characters on a black background, instead of vice
versa.
-s <shrink> (.shrinkFactor) Defines the initial shrink factor.
The default value is 3.
-sidemargin <dimen> (.sideMargin) Specifies the side margin (see
-margins).
-thorough (.thorough) XDVI will usually try to ensure that
overstrike characters (e.g., \notin) are printed
correctly. On monochrome displays, this is always
possible with one logical operation, either AND or OR.
On color displays, however, this may take two
operations, one to set the appropriate bits and one to
clear other bits. If this is the case, then by default
XDVI will instead use the copy operation, which does
not handle overstriking correctly. The -thorough
option chooses the slower but more correct choice. See
also -copy.
-topmargin <dimen> (.topMargin) Specifies the top and bottom margins (see
-margins).
-version Print information on the version of XDVI.
-xoffset <dimen> (.xOffset) Specifies the size of the horizontal
offset of the output on the page. See -offsets.
-yoffset <dimen> (.yOffset) Specifies the size of the vertical offset
of the output on the page. See -offsets.
KEYSTROKES
----------
XDVI recognizes the following keystrokes when typed in its window. Each may
optionally be preceded by a (positive or negative) number, whose
interpretation will depend on the particular keystroke. Note that the
keystrokes are case sensitive.
q Quits the program. Control-C, control-D, and control-Z will do this,
too.
n Moves to the next page (or to the nth next page if a number is given).
Synonyms are `f', Space, Return, Line Feed, and <Next Screen>.
p Moves to the previous page (or back n pages). Synonyms are `b',
control-H, Delete, and <Prev Screen>.
g Moves to the page with the given number. Initially, the first page is
assumed to be page number 1, but this can be changed with the `P'
keystroke, below. If no page number is given, then it goes to the last
page.
P "This is page number n." This can be used to make the `g' keystroke
refer to actual page numbers instead of absolute page numbers.
Control-L Redisplays the current page.
^ Move to the "home" position of the page. This is normally the upper
left-hand corner of the page, depending on the margins as described in
the -margins option, above.
u Moves up two thirds of a window-full. The <Up Arrow> key is a synonym
for this keystroke.
d Moves down two thirds of a window-full. The <Down Arrow> key is a
synonym for this keystroke.
l Moves left two thirds of a window-full. The <Left Arrow> key is a
synonym for this keystroke.
r Moves right two thirds of a window-full. The <Right Arrow> key is a
synonym for this keystroke.
c Moves the page so that the point currently beneath the cursor is moved
to the middle of the window. It also (gasp!) warps the cursor to the
same place.
M Sets the margins so that the point currently under the cursor is the
upper left-hand corner of the text in the page. Note that this command
itself does not move the image at all. For details on how the margins
are used, see the -margins option.
s Changes the shrink factor to the given number. If no number is given,
the smallest factor that makes the entire page fit in the window will be
used. (Margins are ignored in this computation.)
S Sets the density factor to be used when shrinking bitmaps. This should
be a number between 0 and 100; higher numbers produce lighter
characters.
R Forces the DVI file to be reread. This allows you to preview many
versions of the same file while running XDVI only once.
k Normally when XDVI switches pages, it moves to the home position as
well. The `k' keystroke toggles a `keep-position' flag which, when set,
will keep the same position when moving between pages. Also `0k' and
`1k' clear and set this flag, respectively. See also the -keep option.
G This key toggles the use of greyscale anti-aliasing for displaying
shrunken bitmaps. In addition, the key sequences `0G' and `1G' clear and
set this flag, respectively. See also the -nogrey option.
MOUSE ACTIONS
-------------
If the shrink factor is set to any number other than one, then clicking any
mouse button will pop up a "magnifying glass" which shows the unshrunk image
in the vicinity of the mouse click. This subwindow disappears when the mouse
button is released. Different mouse buttons produce different sized windows,
as indicated by the -mgs option. Moving the cursor while holding the button
down will move the magnifying glass.
Also, the scrollbars (if present) behave in the standard X Window way:
pushing Button 2 in a scrollbar moves the top or left edge of the scrollbar
to that point and optionally drags it; pushing Button 1 moves the image up
or right by an amount equal to the distance from the button press to the
upper left-hand corner of the window; pushing Button 3 moves the image down
or left by the same amount. Note that this is different than the way
DECWindows normally defines the actions of the mouse buttons in scrollbars.
LOGICAL NAMES
-------------
Unless the -display option is used on the command line, XDVI uses the logical
name "DECW$DISPLAY" to specify which bit map display terminal to use. This
logical name may be defined with the SET DISPLAY command.
The logical name "XDVIFONTS" determines the directory path(s) searched for
fonts in the following manner. The string consists of one or more strings
separated by slashes. In each such string, the substring "%f" is changed to
the font name; "%d" is changed to the magnification; and "%p" is changed to
the font file format ("pk" or "gf"). If no "%f" appears in the string, then
the string ":%f.%d%p" is added on the end. For example, if the string is
"TEX_FONTS" and the font is cmr10 at 300 dots per inch, then XDVI searches
for TEX_FONTS:CMR10.300PK and TEX_FONTS:CMR10.300GF, in that order. An extra
slash anywhere in the "XDVIFONTS" logical name causes the system default
directories to be tried at that point. If the font is not found in the
desired size, then XDVI will try to find the nearest size. If the font
cannot be found at all, then XDVI will try to vary the point size of the font
(within a certain range), and if this fails, then it will use the font
specified as the alternate font (cf. -altfont).
In addition, a "%F" specifier is available; it is a synonym for "%f", but it
does not inhibit putting the string ":%f.%d%p" at the end. Finally, a "%b"
specifier is available; it is converted to the current resolution being used
(i.e., the value of the -p parameter or the .pixelsperinch resource).
For compatibility with some versions of TeX, you may also use the logical
name "TEXFONTS" in place of "XDVIFONTS", although in that case the string
should not include any "%" specifiers. The reason for recognizing "TEXFONTS"
is that certain versions of TeX also support the convention regarding an
extra slash in the font path; therefore, users who create their own fonts can
put both their .TFM and raster files in the same directory and do
$ DEFINE TEXFONTS "/MFDIR"
or
$ DEFINE TEXFONTS "MFDIR/"
in order to get both TeX and XDVI to search their directory in addition to
the system standard directories. The "XDVIFONTS" logical name overrides the
"TEXFONTS" logical name, so that on those sites where "TEXFONTS" must be set
explicitly, and therefore this feature is not useful, the "XDVIFONTS" logical
name may be set to an empty string to cause XDVI to ignore "TEXFONTS".
XDVI also recognizes the "PKFONTS" and "TEXPKS" logical names, which are
checked after "XDVIFONTS" but before "TEXFONTS".
The logical name "XDVISIZES" may be set to indicate which sizes of fonts are
available. It should consist of a list of numbers separated by slashes. If
the list begins with a slash, the system default sizes are used, as well.
Sizes are expressed in dots per inch and must be integers. The current
default set of sizes is 300/329/360/432/518/622/746. XDVI will also try the
actual size of the font before trying any of the given sizes.
Virtual fonts are also supported, although XDVI does not have any built-in
fonts to which they can refer. The search path for .VF files can be
specified with the "XDVIVFS" logical name in a similar manner to that for the
"XDVIFONTS" logical name. XDVI will also check the "VFFONTS" logical name if
the "XDVIFONTS" logical name is not defined. Virtual fonts are searched for
immediately after looking for the font as a normal font in the exact size
specified.
FILES
-----
TEX_FONTS System default directory for font pixel files.
RESOURCE NAMES
--------------
All of the command line options may be set via the resource names given in
parentheses in the descriptions of the options. This may be used to define a
specific set of options as the default each time you run XDVI. To make use
of this feature, create a file named DECW$XDEFAULTS.DAT in the same directory
as the rest of your DECW*.DAT files. Include in this file the resource names
and arguments of each of the options you wish to specify. For example:
XDvi.copy: off
XDvi.thorough: on
XDvi.shrinkFactor: 2
XDvi.Margin: 0.95
XDvi*geometry: 1015x750+3+25
When XDVI is invoked, it would behave as if it had been invoked with the
following command:
XDVI +copy -thorough -s 2 -margins 0.95 -geometry 1015x750+3+25 dvifile
Specifying options on the command line will override any options specified
via resource names in the DECW$XDEFAULTS.DAT file.
INSTALLATION
------------
The installation of XDVI on a VMS system is relatively easy. If you have a
source-only distribution, you will need to have access to the VAX C compiler
to build an executable image. The following steps should get you started:
1) Gather all of the distribution files into one directory, and then create
the executable image by executing the MAKE-VMS.COM file:
$ @MAKE-VMS
2) Create a help file for XDVI using the supplied XDVI.RNH file:
$ RUNOFF XDVI.RNH
3) Insert the resulting XDVI.HLP file into one of your local help libraries:
$ LIBRARY /INSERT HELPLIB.HLB XDVI.HLP
4) Modify the command file you use to set up the TEX commands so that it
defines the foreign symbol XDVI, and the logical names "XDVIFONTS",
"XDVIVFS", and "XDVISIZES". For more information on the expected contents
of the logical names, see the LOGICAL NAMES section of this document. The
following lines are what I use locally:
$ PROC = F$ENVIRONMENT ("PROCEDURE")
$ TEXDIR = F$PARSE (PROC, , , "DEVICE", "NO_CONCEAL") + -
F$PARSE (PROC, , , "DIRECTORY", "NO_CONCEAL")
$ TEXDIR = TEXDIR - "][" - "][" - "][" - "]"
$ TEXDISK = TEXDIR + ".]"
$ PIXELS = TEXDIR + ".GF.CANON300.]"
$ LPIXELS = TEXDIR + ".LOCAL.PIXELS.CANON300.]"
$!
$! Define the virtual disk devices.
$!
$ DEFINE /PROCESS /TRANSLATE = (CONCEAL, TERMINAL) TEX_DISK 'TEXDISK'
$ DEFINE /PROCESS /TRANSLATE = (CONCEAL, TERMINAL) PIXELS$ 'PIXELS'
$ DEFINE /PROCESS /TRANSLATE = (CONCEAL, TERMINAL) LPIXELS$ 'LPIXELS'
$!
$! Define the directories for TeX and its related TeXware.
$!
$ DEFINE TEX_EXE TEX_DISK:[LOCAL.PROGRAMS]
$ DEFINE TEX_PIXELS PIXELS$, LPIXELS$
$!
$! Define the information necessary to run XDVI.
$!
$ XDVI :== "$TEX_EXE:XDVI"
$ DEFINE XDVIFONTS "TEX_PIXELS:[DPI%d]%f.%p"
$ DEFINE XDVIVFS XDVIFONTS
$ DEFINE XDVISIZES -
"300/329/360/432/518/600/622/746/896/1075/1200/1290/1548"
$ EXIT
5) If you wish, you may create a DECW$XDEFAULTS.DAT file that specifies a
default set of command line options. See the RESOURCE NAMES section for
more information and an example of what I use locally.
If you have any comments about XDVI, or find any bugs in the program, please
contact me at the address below. Enjoy!
Scott Allendorf
Department of Physics and Astronomy
The University of Iowa
Iowa City, IA 52242
Email: scott-allendorf@uiowa.edu
AUTHORS
-------
Eric Cooper, CMU, did a version for direct output to a QVSS.
Modified for X by Bob Scheifler, MIT Laboratory for Computer Science.
Modified for X11 by Mark Eichin, MIT SIPB.
Modified for VMS and DECWindows by Scott Allendorf, University of Iowa.
Additional enhancements by many others.
|