gv - a !PostScript and PDF previewer
gv [ filename?
[-monochrome? [-grayscale? [-color? [-[[no?safer] [-[[no?quiet] [-arguments <arguments>? [-page <label>? [-[[no?center] [-media <media>? [-portrait? [-landscape? [-upsidedown? [-seascape? [-scale <n>? [-scalebase <n>? [-swap? [-noswap? [-antialias? [-noantialias? [-dsc? [-nodsc? [-eof? [-noeof? [-pixmap? [-nopixmap? [-watch? [-nowatch? [-?? [-h? [-help? [-v? [-resize? [-noresize? [-geometry [[<width>?[x<height>?[{+-}<xoffset>{+-}<yoffset>? [-ad <resource file>? [-style <resource file>? [-spartan? [<other toolkit options>?
gv allows to view and navigate through PostScript and PDF documents on an X display by providing a user interface for the ghostscript interpreter.
Please note that gv is derived from Tim Theisen's ghostview 1.5.
In general gv does not depend on any external resource files. However, when starting gv, preferences are read from
The files "gv_user.ad" and "gv_system.ad" (located in the library directory of gv, which is most probably either "/usr/local/lib/gv/" or "/usr/lib/gv/" may serve as a basis for constructing the user and system specific resource files.
Note that the user and system specific resource files are not the only sources of preferences taken into account when gv is started. However, in practice these are the most important.
The following describes some of the resources of gv. The precise syntax of some of the resource values may be inferred from the appended default system specific resource file.
<filter> := [<filespecs>? [no <filespecs>? <filespecs> := <filespec> [<filespecs>? <filespec> := filename possibly including wildcards '*'
which match any character.
Example: The filter
GV*filter: .ps *.pdf no .
screens out all files with names starting with a dot and keeps of the remaining ones only those which end on ".ps" or ".pdf".
GV.pageMedia: automatic GV.orientation: automatic GV.fallbackOrientation: portrait GV.swapLandscape: False GV.autoCenter: True GV.antialias: False GV.respectDSC: True GV.ignoreEOF: True GV.confirmPrint: True GV.reverseScrolling: False GV.scrollingEyeGuide: True GV.autoResize: True GV.maximumWidth: screen-20 GV.maximumHeight: screen-44 GV.minimumWidth: 400 GV.minimumHeight: 430 GV.confirmQuit: 1 GV.watchFile: False GV.watchFileFrequency: 1000 GV.showTitle: True GV.miscMenuEntries: redisplay \n\
- update \n\
stop \n\ line \n\ toggle_current \n\ toggle_even \n\ toggle_odd \n\ unmark \n\ line \n\ print_all \n\ print_marked \n\ save_all \n\ save_marked
GV.scale: 0 GV.scaleBase: 1 GV.scales: Natural size, 1.000, screen \n\
Pixel based, 1.000, pixel \n\ 0.100, 0.100 \n\ 0.125, 0.125 \n\ 0.250, 0.250 \n\ 0.500, 0.500 \n\ 0.707, 0.707 \n\ 1.000, 1.000 \n\ 1.414, 1.414 \n\ 2.000, 2.000 \n\ 4.000, 4.000 \n\ 8.000, 8.000 \n\ 10.00, 10.00
GV.medias: Letter, 612 792 \n\
LetterSmall?, 612 792 \n\
Legal, 612 1008 \n\ Statement, 396 612 \n\ Tabloid, 792 1224 \n\ Ledger, 1224 792 \n\ Folio, 612 936 \n\ Quarto, 610 780 \n\
- 7x9, 504 648 \n\
- 9x11, 648 792 \n\
- 9x12, 648 864 \n\
- 10x13, 720 936 \n\
10x14, 720 1008 \n\ Executive, 540 720 \n\
- A0, 2384 3370 \n\
- A1, 1684 2384 \n\
- A2, 1191 1684 \n\
A3, 842 1191 \n\ A4, 595 842 \n\
- A4Small, 595 842 \n\
A5, 420 595 \n\
- A6, 297 420 \n\
- A7, 210 297 \n\
- A8, 148 210 \n\
- A9, 105 148 \n\
- A10, 73 105 \n\
- B0, 2920 4127 \n\
- B1, 2064 2920 \n\
- B2, 1460 2064 \n\
- B3, 1032 1460 \n\
B4, 729 1032 \n\ B5, 516 729 \n\
- B6, 363 516 \n\
- B7, 258 363 \n\
- B8, 181 258 \n\
- B9, 127 181 \n\
- B10, 91 127 \n\
- ISOB0, 2835 4008 \n\
- ISOB1, 2004 2835 \n\
- ISOB2, 1417 2004 \n\
- ISOB3, 1001 1417 \n\
- ISOB4, 709 1001 \n\
- ISOB5, 499 709 \n\
- ISOB6, 354 499 \n\
- ISOB7, 249 354 \n\
- ISOB8, 176 249 \n\
- ISOB9, 125 176 \n\
- ISOB10, 88 125 \n\
- C0, 2599 3676 \n\
- C1, 1837 2599 \n\
- C2, 1298 1837 \n\
- C3, 918 1296 \n\
- C4, 649 918 \n\
- C5, 459 649 \n\
- C6, 323 459 \n\
- C7, 230 323 \n\
- DL, 312 624
GV.magMenu: 2, 2 \n\
4, 4 \n\ 8, 8 \n\ 16, 16 \n\ 32, 32 \n\ 64, 64
GV*Ghostview.background: white GV*Ghostview.foreground: black GV.gsInterpreter: gs GV.gsCmdScanPDF: gs -dNODISPLAY -dQUIET -sPDFname=%s -sDSCname=%s pdf2dsc.ps -c quit GV.gsCmdConvPDF: gs -dNODISPLAY -dQUIET -dNOPAUSE -sPSFile=%s %s -c quit GV.gsX11Device: -sDEVICE=x11 GV.gsX11AlphaDevice: -dNOPLATFONTS -sDEVICE=x11alpha GV.gsSafer: True GV.gsQuiet: True GV.gsArguments: GV.uncompressCommand: gzip -d -c %s > %s GV.printCommand: lpr GV.scratchDir: /tmp/ GV.defaultSaveDir: / GV.fallbackPageMedia: a4 GV.useBackingPixmap: True GV*dirs: Home\n\
Tmp\n\ /usr/share/doc\n\ /usr/local/doc
GV*filter: no .* GV*filters: None\n\
- .*ps* .pdf no .*\n\
- .*ps* no .*\n\
.pdf no .*\n\ no .*
Mouse bindings in the Main and the Zoom window: The following mouse events are defined when the mouse pointer is either on the displayed page or on a zoomed area:
The following mouse events are defined when the mouse pointer is in this region:
=== Notation:
s-X means press "Shift" and key "X" c-X means press "Ctrl" and key "X" sc-X means press "Shift" or "Ctrl" and key "X"
=== Miscellaneous keys:
A Toggle antialiasing on and off O Open a new file Q Quit gv R Toggle gv's resizing behaviour I Respect/Ignore document structuring W Watch file / Don't watch file S Save the marked pages sc-S Save the current file P Print the marked pages sc-P Print the current file c-L Redisplay the current page . Redisplay the current page sc-. Reopen the current file M Mark the current page N Unmark the current page
=== Orientation:
7 Orientation portrait 8 Orientation landscape 9 Orientation upside-down 0 Orientation seascape
=== Magnification:
sc-6 Select the scale entry -6 relative to the scale 1.0 sc-5 Select the scale entry -5 relative to the scale 1.0 sc-4 Select the scale entry -4 relative to the scale 1.0 sc-3 Select the scale entry -3 relative to the scale 1.0 sc-2 Select the scale entry -2 relative to the scale 1.0 sc-1 Select the scale entry -1 relative to the scale 1.0 ^ Select the scale 1.0 (for german keyboard layout) ` Select the scale 1.0 1 Select the scale entry 1 relative to the scale 1.0 2 Select the scale entry 2 relative to the scale 1.0 3 Select the scale entry 3 relative to the scale 1.0 4 Select the scale entry 4 relative to the scale 1.0 5 Select the scale entry 5 relative to the scale 1.0 6 Select the scale entry 6 relative to the scale 1.0
- Select the next scale entry
= Select the next scale entry
- Select the previous scale entry
=== Navigating:
Arrow Scroll in the direction of the arrow s-Up Scroll columns up or jump -1 pages s-Down Scroll columns down or jump 1 pages s-Left Scroll rows left or jump -1 pages s-Right Scroll rows right or jump 1 pages c-Up Jump -1 pages (to top/left corner) c-Down Jump 1 pages (to top/left corner) c-Left Jump -5 pages (to top/left corner) c-Right Jump 5 pages (to top/left corner)
D,X,Z,Y,C Identical to arrow up,down,left,left,right V Center the page sc-Space Scroll columns up or jump -1 pages Space Scroll columns down or jump 1 pages
BackSpace? Scroll columns up or jump -1 pages
Insert Jump -5 pages Delete Jump 5 pages Home Go to the first page End Go to the last page Prior Jump -1 pages Next Jump 1 pages
Keypad 0-9 Highlight a page number Keypad - Highlight previous page number Keypad + Highlight next page number Keypad Enter Jump to the highlighted page
c-Enter Jump -1 pages s-Enter Jump -1 pages Enter Jump 1 pages B Jump -1 pages F Jump 1 pages
By default two scales bases are available, the "Natural size" and the "Pixel based" base. When choosing the "Pixel based" scale base a relative scale of 1.0 causes one postscript point to correspond to one pixel on the screen.
When viewing a document at a relative scale of 1.0 using the "Natural size" base the page should appear in its real size, as if printed on paper. For the "Natural size" base to work properly gv has to know the correct size of the root window. Automatic detection of this size unfortunately only provides approximate results, therefore it is best if it is provided by the user. To do so the resource
GV.screenSize: <width> x <height>
should be added to the "SCREEN_RESOURCES" property of the screen the document is viewed on, with <width> and <height> describing the width and height of the root window in units of millimeters. For instance by using the command
echo "GV.screenSize: 396 x 291" | xrdb -override -screen
a width of 346 mm and a height of 291 mm will be used for the "Natural size" scale base. Alternatively the resource
GV.screenSize_<machine>_<disp>_<scr>: <width> x <height>
may be added to a resource file read by gv. Here <machine> ,<disp> and ANGLED) describe the display on which gv displays the document. For instance, if the display is set to "tic.tac.toe.wo:0.1" the resource should be specified as
GV.screenSize_tic_0_1: 396 x 291
Note that this method doesn't work on VMS. As a last alternative the resource
GV.screenSize: <width> x <height>
may be added to one of the resource files. However, for obvious reasons this method should be used only on single user machines.
Instead, in all windows with obscured data, scrolling may be performed by pressing button1, moving the mouse, then releasing button1 directly in the window. This includes the displayed page, zoom popups, the table of contents and the file and directory lists displayed in the file selection popup.
Instead of explicitly loading it via the file selection popup the most recent version can be displayed by pressing the "Redisplay" button in the main window (VMS users should use the "Update File" entry in the "File" menu). Choosing the "Redisplay" entry in the menu that pops up when clicking with the third mouse button anywhere on the displayed page certainly has the same effect.
More comfortable is the "Watch File" feature which may be switched on by selecting the corresponding entry in the "State" menu. If activated gv will check every now and then if a new version of the displayed file exists. If so it will be displayed automatically. By default the file is checked about once every second.
Finally it may also be left to the document creating program to trigger gv to update its display. To do so the program should send the SIGHUP signal to gv. For instance at the end of a shell script generating a postscript file from latex sources the line
kill -SIGHUP <gv_pid>
may be added (here <gv_pid> is the process id of gv). Executing the script and thereby creating a new version of the document will then also cause the result to be displayed instantaneously. Please note that this feature is available only on X11 R6 based systems.
The source code of the most recent version of gv may be obtained from the following sources:
Johannes Plass plass @ thep. physik.uni-mainz.de
Department of Physics Johannes Gutenberg University Mainz, Germany
gv is derived from GhostView 1.5, created by
Tim Theisen Systems Programmer Internet: tim@ cs. wisc.edu Department of Computer Sciences
UUCP: uwvax!tim University of Wisconsin-Madison
Phone: (608)262-0438 1210 West Dayton Street
FAX: (608)262-9777 Madison, WI 53706
3 pages link to gv(1):