TKDVI, A DVI PREVIEWER BASED ON TCL/TK ====================================== This is TkDVI, a DVI previewer built with the Tcl/Tk toolkit. The previewer is built around a Tk extension, `dvi', which implements an `image type' for displaying pages from DVI files (or DVI code in general). This README file corresponds to TkDVI 0.3, an alpha release. Features -------- Here are the basic features of the `dvi' Tk extension: * Implements re-usable Tk `image type'. DVI material can occur wherever Tk allows images, e.g., on a canvas (which is the most sensible place), but also in labels, buttons etc. * Supports multiple windows displaying multiple pages from multiple DVI files simultaneously. * All DVI files share the same fonts (if resolution etc. allows). * Supports fonts in PK format. (Virtual font support is forthcoming; in the meantime dvicopy can be used to de-reference virtual fonts in DVI files.) The standard Kpathsea library is used to locate (and make) fonts. * Supports arbitrary (integer-factor) image shrinking as in xdvi. * Supports anti-aliasing as in xdvi. * Supports simple uses of colour. * Comes with an (incomplete) self-test suite. Here are the basic features of the TkDVI previewer: * Multiple DVI files. * Multiple DVI file windows. * Each DVI file window supports various display modes: - `Single Page' as in xdvi - `Two-page spread': Two facing pages, like a book. - `16-page overview': Sixteen reduced pages at the same time, great for looking at page breaks and floats. - Full-screen mode for presentations. * `Magnification glass' as in xdvi. * `gv'-style page selector. * PDF-style document info (experimental). * PDF-style bookmarks when used with `hyperref' LaTeX extension (experimental) * `Layering' of DVI material for presentations, fill-in-the-blanks etc. (experimental) * Automatic reload of changed DVI files on Expose events as in xdvi. This updates all windows that the DVI file is displayed in (regardless of whether they are currently being exposed or not). * Can be easily adapted, reconfigured or extended in Tcl. The most notable omissions to date are: * No support for EPS graphics inclusions. As of now there is little or no documentation for most of the experimental features. Most of the \special commands supported by TkDVI are explained in doc/README.specials. See the testdvi/ subdirectory for some examples of TeX input and output. Use and Distribution -------------------- TkDVI is copyrighted © by Anselm Lingnau . TkDVI is NOT in the public domain but released as `free software' under the same license as Tcl/Tk, meaning that you can use it for whatever you want and also give away (possibly modified) copies to all your relations, friends, and enemies (depending on how you like the program). See the file COPYING for details. If you do make modifications or extensions of general interest, I would appreciate hearing about this. I'd be happy to include your contributions in the general distribution as long as their licensing doesn't interfere with the rest of the distribution (e.g., I can't integrate GPL patches into the main code base because that would `infect' the rest of TkDVI with the GPL -- I'd be happy to include such patches in a `DIY' corner of the distribution, though.). TkDVI uses the Kpathsea library by Karl Berry, which is licensed unter the LGPL. Due to its size, Kpathsea is not distributed with TkDVI but can be obtained separately. Documentation and Other Resources --------------------------------- There is some documentation in the `doc' subdirectory of the distribution. As usual, this could be vastly improved. TkDVI is available from ftp://ftp.tm.informatik.uni-frankfurt.de/pub/dist/tkdvi/ The current version is always available as `tkdvi-current.tar.gz', which is a symbolic link to the real file, which will be called something like `tkdvi-0.3.tar.gz'. There is a World-Wide Web page dedicated to TkDVI at http://www.tm.informatik.uni-frankfurt.de/~lingnau/tkdvi/ There are two mailing lists about TkDVI: tkdvi-announce@tm.informatik.uni-frankfurt.de This low-volume mailing list carries announcements of general interest to TkDVI users, such as announcements of new releases or significant patches. (This list is moderated by me.) tkdvi-users@tm.informatik.uni-frankfurt.de This is a mailing list for general discussion about TkDVI, its use, its advantages and disadvantages, bugs, features etc. Everybody can post to this list. Traffic from tkdvi-announce also appears here. You can subscribe to either of these lists by sending a message with a `Subject:' header of `subscribe' to tkdvi-announce-request@tm.informatik.uni-frankfurt.de or tkdvi-users-request@tm.informatik.uni-frankfurt.de , respectively. You will be asked to confirm your subscription; just follow the directions and everything should be fine and dandy. Bugs can also be reported to tkdvi-bugs@tm.informatik.uni-frankfurt.de Users of Debian GNU/Linux may feel free to use the Debian bug tracking system. Supported Platforms ------------------- TkDVI has been tested on the following platforms: Debian GNU/Linux 2.2 (Tcl/Tk 8.2.3, gcc 2.9) - Should run on other comparable Linuxes as well Success stories, failure reports, patches etc. for other environments are most welcome. Installation ------------ Installation is described in the file INSTALL in the same directory. History ------- I have been working on this program off and on since early 1994, even to the extent of giving talks on the software at DANTE conferences (in Münster 1994 and Oldenburg 1998). The 1994 version was based on Tk 3.6 and implemented a full-blown DVI widget. Some code was released for this, but it was too incomplete and buggy to be generally useful. After Tk 4.0 came out, featuring the new image subsystem, I decided to re-implement my DVI stuff as an image type instead of a widget, in order to be able to use Tk canvas features in conjunction with DVI material rather than having to reimplement the canvas from scratch for the purposes of the DVI widget. Due to other distractions, I didn't have much time for this but finished a working version in time for the DANTE conference in February 1998. Since then, the code has matured somewhat, and the current code base seems solid enough to release as an alpha version.