\documentstyle[a4]{article}
\newcommand{\DVIview}{{\tt DVIview}}
\newcommand{\TeXFonts}{{\tt \TeX Fonts}}
\newcommand{\version}{1.02}
\newcommand{\dvi}{{\tt dvi}}
\newcommand{\vf}{{\tt vf}}
\newcommand{\vp}{{\tt vp}}
\newcommand{\tfm}{{\tt tfm}}
\newcommand{\pk}{{\tt pk}}
\newcommand{\menuitem}{\bf}
\newcommand{\button}{\bf}
\newcommand{\fname}{\tt}
\newcommand{\fnt}{\tt}

% Usage: \diagram{width}{height}{filename [options]}
% Loads diagram from 'Diagrams' directory
\newcommand{\diagram}[3]{\makebox[#1][l]{\rule[-#2]{0mm}{#2}\special{DVIview_diagram @.Diagrams.#3}}}


\title{\DVIview}
\author{by\\
\\
Paul Field\\
\\
Documentation for\\
\DVIview\ version \version}

\begin{document}
\maketitle


\noindent
\DVIview\ allows you to view and print \dvi\ files such as those
generated by \TeX\ and \LaTeX. It allows the inclusion of Draw, sprite and
JPEG files in \TeX\ and \LaTeX\ documents.

\DVIview\ supports interactive help (via Acorn's !Help application) so
you should be able to use it without reading this manual. However,
the interactive help window is so small and I like to waffle :-)

Despite incorporating a vast array of complicated features, \DVIview\ is
completely free.



\section{Loading a file}
A \dvi\ file can be loaded by double-clicking on it or by dragging it or the
directory in which it resides onto the \DVIview\ icon on the icon bar. If
you drag a directory, the \dvi\ file inside it {\em must\/} be called \dvi.

\DVIview\ scans the document (which may take a few seconds for large documents)
and then loads and displays the first page. \DVIview 's virtual
memory system ensures that pages are only loaded into memory when
they are being viewed on screen and so you can preview
very large documents without needing that
256Mb Risc PC you had your eye on.


\section{Viewing a document}
\begin{figure}
\begin{center}
\diagram{18.5mm}{26.4mm}{ViewMenu scale 50 50}
\end{center}
\caption{The view menu}
\label{fig:viewmenu}
\end{figure}

Once loaded, the first page of the document is displayed in a window.
You can move to different pages using the {\menuitem Next}, {\menuitem Previous}
and, for larger jumps, {\menuitem Goto page} items from the window's menu (see
figure \ref{fig:viewmenu}).

The scale at which the document is displayed can be altered
by choosing {\menuitem Scale} and using the standard `scale view' dialogue box.

The other items in the menu are {\menuitem New view},
which, unsurprising, spawns a new view on the document, and {\menuitem
Save page}, which saves as a Draw file the page being viewed.

\begin{figure}
\begin{center}
\diagram{16.7mm}{24.7mm}{DocMenu scale 50 50}
\end{center}
\caption{The document submenu}
\label{fig:docmenu}
\end{figure}

At the top of the menu is the {\menuitem Document} item, which leads to
a submenu whose items concern the document as a whole rather than the page
currently being viewed (see figure \ref{fig:docmenu}).
{\menuitem File info} leads to the standard file information dialogue
box. {\menuitem Save} allows a range of pages to be saved as separate
Draw files in a directory. It will come as a great shock to discover
that {\menuitem Print} allows pages to be printed\footnote{I was being
sarcastic but it {\em will\/} be a shock to long-time users who had
probably given up hope of ever seeing a working print option in \DVIview.}.
{\menuitem Paper size} allows you to choose the size of the paper for your
document (more on this in sections \ref{sec:papersizes} and \ref{sec:printing})
and choosing {\menuitem Landscape} toggles the orientation of the paper.
Finally, {\menuitem Page offsets} allows you to alter the position of
the document pages on the paper; negative values are allowed. Try spawning
several new views of a document and then changing the page offsets --- whee!


\section{Keyboard shortcuts}
There are various keyboard shortcuts available:

\begin{tabular}{rl}
$\wedge\uparrow$   & Move to the start of the document   \\
Home               & Move to the start of the document   \\
$\wedge\downarrow$ & Move to the end of the document     \\
Page Up            & Move to previous page               \\
Page Down          & Move to next page                   \\
$\leftarrow \rightarrow \uparrow \downarrow $ & Scroll around current page \\
%$\wedge$Q         & Zoom out  \\
%$\wedge$W         & Zoom in   \\
Print              & Guess :-)                             \\
F3                 & Save the page as a Draw file          \\
$\Uparrow$F3       & Save a range of pages as Draw files   \\
F11                & Scale the page                        \\
F5                 & Goto page                             \\
$\wedge$M          & Open the magnifier
\end{tabular}

\noindent If you would like other keyboard shortcuts then please ask.



\section{The log window}
When you load your document, \DVIview's log window will open if there
are any warnings or non-serious errors.

\DVIview\ could (and used to) report problems using the RISC OS error
reporting system but this means you have to click on {\button OK} for
every message. To make your previewing experience as smooth and pleasurable
as possible :-), \DVIview\ quietly gathers the warnings and errors up for you
as you preview your document.

Messages are automatically ordered by document and page number so you can
preview the document pages in any order you like but have a sorted list of
problems at the end.

The log window primarily gathers problems to do with fonts and {\tt special}
commands and also lists font substitutions.

When you close the log window all messages are discarded; the window will
re-open whenever a new problem arises.



\section{The magnifier}
The magnifier shows a magnified view of a page. You can open the magnifier
by clicking on \DVIview's icon bar icon or choosing {\menuitem Magnifier...}
from the page view's menu.

The magnifier shows the part of the page underneath the pointer (it's blank
if there is no page underneath the pointer). The magnifier's menu allows 
you can change the scale at which the page is displayed and its
{\menuitem Save choices} option saves the scale and the position and size
of the magnifier for use in future sessions with \DVIview.



\section{Printing\label{sec:printing}}

\subsection{TOYWWSLOSO printing --- the hype :-)}

From version 1.00, \DVIview\ has real TOYWWSLOSO printing (get ready for
the hype :-) ).

Fed up with setting loads of stupid options when you want
to print a pamphlet or use a paper size that's different to your document's?
Fear not! Unlike lesser programs (i.e.\ everyone else's :-) ) \DVIview\ features
the amazing TOYWWSLOSO printing system. All the complicated printing options
you could want without setting up loads of stupid options!!!!!!\footnote{All
the best features have at least six exclamation marks.}. Look at how it works:

\begin{itemize}
\item {\bf Printing A4 pages on A4 paper}\\
Simply click on {\button Print}.
\item {\bf Printing A5 pages on A4 paper}\\
Simply click on {\button Print}.
\item {\bf Printing A4 pages on A4 paper as an A5 booklet}\\
Click on {\button Two-up} then click on {\button Print}.
\item {\bf Printing landscape A5 pages on upright A4 paper as a
          landscape A5 booklet}\\
Click on {\button Two-up} then click on {\button Print}.
\item {\bf Printing four landscape A5 pages on each upright A4 paper
          to form a landscape A6 booklet}\\
Click on {\button Four-up} then click on {\button Print}.
\end{itemize}

Whatever your document paper size, your printer paper size and your printing
requirements, TOYWWSLOSO printing automatically works out how you
want your output to look without you having to set loads of stupid options.


\subsection{Printing from \DVIview\ --- the fine print}

Printing from \DVIview\ has several advantages over other \TeX\ printing
systems. Firstly, \DVIview\ prints via the !Printers application so
it can print to a very wide range of printers. Secondly, you can include
Draw files, sprites and JPEGs in your documents. Finally, \DVIview\ has a number
of printing options so you can print documents just as you want them: double
sided, as a pamphlet (2-up or 4-up) or as a `thumbnail' print to get an
overview. You can also print multiple copies and have them collated if you wish.

\DVIview\ uses sophisticated techniques to provide advanced print facilities
with an extremely easy-to-use user interface. The printing interface doesn't
include scaling or orientation options because \DVIview\ chooses the most
sensible choices for these based on the printer's paper size, the document
paper size and the other options you have selected. There is no `reverse'
option because \DVIview\ will intelligently order the paper for you.


\subsubsection{Getting started\label{sec:print_start}}

When you first use \DVIview, you should set the options in the
{\button Printer characteristics} group and then click on {\button Save} to
permanently store this choice.

Choose {\button Printer prints face up} if paper leaves your printer
with its printed side facing up.

Choose {\button Straight paper path} if paper travels through your
printer along a straight(ish) route. It should enter the printer
on one side and leave on the other. Many printers have a U-shaped
path where the paper leaves the printer on the same side that it enters;
often the out-tray is immediately above the in-tray. Don't choose
the {\button Straight paper path} option if your printer has a U-shaped
path.

These choices allow \DVIview\ to print sheets in a sensible order
(something that, otherwise, can be difficult to get right with
double-sided printing).


\subsubsection{The print dialogue box}

\begin{figure}
\begin{center}
\diagram{5.9cm}{5.4cm}{Print scale 50 50}
\end{center}
\caption{The print dialogue box}
\label{fig:printdbox}
\end{figure}


Figure \ref{fig:printdbox} shows the print dialogue box. The various options
are:
\begin{description}
\item[All pages] Specifies that all pages in the document will be printed.

\item[From page] This specifies the range of pages to print.
\DVIview\ will print all the sheets of paper that contain the pages in the
range. For example, if you're printing 2 pages per side and you specify
the range 2 to 3, \DVIview\ will print the sheet with pages 1 and 2 on and the
sheet with pages 3 and 4 on. This is particularly useful if you need to re-print
one sheet from a pamphlet print: just pick one page on the sheet to put in the
range and \DVIview\ will print the sheet you want (including the second side, if
you've chosen to print on both sides).

\item[Copies] Guess :-)


\item[Print on both sides] Tick this if you want to print double-sided.
\DVIview\ will print one side of the paper and then prompt you to replace the
paper in the in-tray.

\item[Collate] Select this if you're printing multiple copies but think
twice if you're using a Postscript printer. When selected, pages are printed in
the order 1,2,3\ldots\ 1,2,3\ldots, which is usually what you want. Without it
selected, pages are printed in the order 1,1,1,1\ldots\ 2,2,2,2\ldots, which
might seem silly but it's much faster for a Postscript printer to print like
this.

\item[Pause between sheets] Left as an exercise for the reader :-)

\item[Print types] There are three main styles of printing:

\begin{description}
\item[1 page/sheet] This is the usual print type.

\item[$n$ pages/sheet] These are `thumbnail' prints and give you an overview
of your document. They simply fit a number of pages on each sheet. So, you might
get pages 1,2,3,4 on the first sheet and 5,6,7,8 on the next.

\item[Pamphlet] These print types print pages in such a way that the
paper can be folded up to produce a booklet. Two-up printing puts 2 pages on
each sheet so, by folding the sheet in half, you can make, say, A4 sheets
into an A5 booklet. Two-up printing would normally be used with {\button Print
on both sides} ticked.
Four-up printing puts 4 pages on each sheet. Sheets are folded into
quarters to make a booklet (and it's great fun working out how to fold the
sheets :-) ).

\end{description}

\item[Printer prints face up] Explained in section \ref{sec:print_start}

\item[Straight paper path] Explained in section \ref{sec:print_start}

\end{description}




\subsection{Hints and tips for printing}

This section has a few hints and tips for successful printing using \DVIview.

\subsubsection{How can I print an A5 page on A4 paper without it being scaled?}
\DVIview\ automatically scales your document pages to fit on the paper
size you're actually using in your printer. If you don't want scaling then
select the same paper size for your document as is selected for the printer
and use the page offset dialogue to position your pages on that paper.
When you print, \DVIview\ will see that the pages and the printer paper
are the same size and so won't scale.

\subsubsection{I'm losing the edges of my pages when I print pamphlets}
Some printers (especially inkjets) have quite large paper margins and
pamphlet printing tends to bring pages close to the edge of the paper.
In four-up printing you can avoid losing the tops of your pages by moving the
pages down using the page offsets dialogue. However, losing page edges 
with other print types cannot be solved like this\footnote{I
may add an automatic system for positioning pages in order to avoid the paper
margins --- please pester me if you'd like this feature.}.

The alternative way to avoid the problem is to reduce the scale of the pages
slightly. To alter the scaling, create a new paper size that is slightly
larger than the printer paper you're using and select that paper size for
your document, positioning the pages using the page offset dialogue.
\DVIview\ will scale the pages to fit the printer paper and so will scale
them down (hopefully enough to avoid the margins).



\subsection{Turbodrivers :-(}
Computer Concepts' Turbodriver software does not like the \TeX\ outline fonts.
It is very slow at rendering the fonts (slower than the Acorn font manager)
and it tends to miss out small characters.

Computer Concepts didn't seem to care when I informed them of the problem so
it probably won't be fixed in future releases unless large numbers of people
pester them. Fortunately, there is a fix. You can disable the CC font system
(and use the Acorn system instead) by turning off text halftoning. Do this by
opening the printer configuration window (Shift-Select on the printer icon),
clicking on the {\button Set} button next to the halftone field, then
un-ticking the `Halftone: text' option and clicking on {\button OK}.



\section{Including diagrams in your documents}
\DVIview\ can include draw files, sprites and JPEGs\footnote{JPEGs are only
supported if you have the SpriteExtend module v0.99 or later (this module is
provided in ROM with RISC OS 3.6 or later).}
in your \TeX\ and \LaTeX\ documents.
To include a diagram simply put the line\\
\verb+\special{DVIview_diagram +{\em filename\/}\verb+}+\\
at the point where you want the top-left of the diagram to appear.
You can use the symbol `@' to represent the directory that the \dvi\ file is in
i.e.\\
{\tt \verb+\special{DVIview_diagram @.Diagrams.Picture}+}\\
in the file {\fname \$.Report.dvi} would include the file
{\fname \$.Report.Diagrams.Picture}.

\DVIview\ allows you to scale and crop your diagrams. To do so, simply add one
or both of these commands after the file name in the {\tt special} command
above:
\begin{description}
\item[crop {\it left right top bottom}]
This crops an amount from each edge of the diagram. The amounts are specified
in draw units (there are 46080 draw units in an inch, 18142 in a centimetre)
and may be negative in which case extra white space is added to the edge of
the diagram.
\item[scale {\it x-scale y-scale}]
This scales the diagram in the x and y directions. The scales are numbers
representing percentages.
\end{description}

For example:\\
\verb+\special{DVIview_diagram @.Picture scale 50 50}+

Note that scaling is performed before cropping, so if you crop 2cm from the
left-hand edge of a diagram scaled to 50\%, it will remove 2cm from the
diagram you see on screen rather than 1cm.

Also, for compatibility with TechWriter, a border of 512 draw units is placed
around each diagram. You'll need to take this into account for precise
cropping.


In {\fname DVIview.tex}, there is a macro
\verb+\diagram{+{\em width\/}\verb+}{+{\em height\/}\verb+}{+{\em
filename [optional commands]\/}\verb+}+
that will make space for and include a diagram in a
\LaTeX\ document if you give it the size of the diagram. As an example
see figure \ref{fig:author}.

\begin{figure}
\begin{center}
\diagram{3cm}{3.6cm}{Me-Honest! scale 75 75}
\end{center}
\caption{The author --- A self portrait}
\label{fig:author}
\end{figure}

It would make life much easier if this macro could read
the bounding box of the diagram. Unfortunately, I don't
know if this is possible so if there are any wizards out
there who can help me then please get in contact.


\subsection{Diagrams --- hints, tips and limitations}

If you'd like to use the \TeX\ fonts in your Draw diagrams then you can but
you'll have to use !Chars to input the characters. The characters in the
current set of outline fonts are not laid out according to the ASCII
character set.

Currently, there is only tentative support for text areas in Draw diagrams.
They should be drawn correctly but they will not save correctly and they may
not print correctly on Postscript printers. Please let me know if you'd like
text areas to be better supported.

The Draw file format has no provisions for cropping objects so
saving a \dvi\ page as a Draw file is difficult if the page includes cropped
diagrams. \DVIview\ attempts cropping by obscuring the diagrams with white
rectangles, however, this cannot deal with all cases. \DVIview\ will never
obscure part of a diagram that it should be possible to see but it may allow
cropped parts of the diagram to be visible (and these may obscure other
diagrams). In general, this is not likely to be a problem unless you crop off
large areas and have several diagrams to a page. Remember, this is only a
problem for saving pages: on-screen viewing and printing will be fine.


\section{Choices}

\begin{figure}
\begin{center}
\diagram{44mm}{24.2mm}{Choices scale 50 50}
\end{center}
\caption{The choices dialogue box}
\label{fig:choices}
\end{figure}

The choices dialogue box (see figure \ref{fig:choices}) is available from
the icon bar menu. It allows you to set the default page magnification
and positioning applied to documents when they are loaded.

There are four action buttons: {\button Set} implements the choices for
the current session, {\button Save} implements the choices for this and
future sessions, {\button Cancel} resets the choices displayed to those
currently in use and {\button Default} sets the choices displayed to the
last saved set of choices.

The choices are saved in a file called {\fname Choices} in the \DVIview\
directory. However, this is not particularly useful for those of you wanting
to use \DVIview\ on a network or from a read-only medium such as CD. So,
\DVIview\ can read a choices file from elsewhere. To enable this feature,
simply define the environmental variable \verb+DVIview$OptionsFile+ to
contain the filename of the choices file you want to use, before you
run \DVIview.


\section{Editing paper sizes\label{sec:papersizes}}

\begin{figure}
\begin{center}
\diagram{62mm}{22mm}{EditPaper scale 50 50}
\end{center}
\caption{Editing paper sizes}
\label{fig:editpaper}
\end{figure}

Choosing {\menuitem Edit paper sizes\ldots} from the icon bar menu
opens a dialogue box that allows you to define paper sizes for your
documents (see figure \ref{fig:editpaper}).

To create a new paper size, enter the name in the icon at the top of the
window, set the width and height and click on {\button Set} or {\button Save}.

To edit a paper size, either type its name into the icon at the top of the
window or choose the size from the pop-up menu, then alter the width and height and click on {\button Set} or {\button Save}.

To delete a paper size, enter its name (or use the pop-up menu) and then click
on {\button Delete paper size}. If {\button Delete paper size} is greyed out
it is either because a document is currently using that paper size or else it
is the only paper size defined.

The difference between {\button Set} and {\button Save} is that {\button Set}
stores the paper size for the current session whereas {\button Save} stores
the paper size (and all the others currently defined) for use in future
sessions. 

\dvi\ files do not contain page size information and so \DVIview\ has to guess
the page size and orientation of a document when it loads it. If you define
similarly sized paper sizes then \DVIview\ may pick the wrong one for your
documents. Obviously, you can change a document's paper size but it can be
annoying to do so on a regular basis so it's best to only define the paper
sizes that you regularly use.


\section{Fonts}
The \TeX\ and \LaTeX\ fonts are automatically installed when the
\TeXFonts\ application is seen by the Filer.
This means that other applications will have these fonts available to them,
which is handy if you are exporting pages as Draw files and want them to be
displayed properly. Note that the \TeX\ fonts have letters in different places
to standard fonts and so you'll have to use !Chars to select characters if
you want to use \TeX\ fonts in, say, Impression or TechWriter.

If \DVIview\ cannot find RISC OS outlines for a particular font then it will
try to substitute the font with another font from the same family (it
intelligently adjusts the font so that it looks as much like
the font it substitutes as possible). If that fails, \DVIview\ will 
lookup the font in \TeXFonts's {\fname RO\_Render} files to see if
a RISC OS outline font is specified to render the \TeX\ font.
Finally, if that fails, \DVIview\ will use a default font
({\fnt cmr10}).

\DVIview\ will use its log window to tell you about font subsititutions.

Note that font substitution will only work well with \TeXFonts\ version
3.00 or later.


\subsection{Virtual fonts}
\DVIview\ might support virtual fonts :-) It's supposed to support them
but I only have very simple virtual fonts so I can't thoroughly test
the facility.

The virtual font system is an ingenious system of font substitution
that allows \TeX\ (and \LaTeX) to typeset non-\TeX\ fonts. For example,
users can typeset the PostScript font Helvetica by using the virtual font
{\fnt rphvr}. The font has a \tfm\ file, so \TeX\ is happy, and it has
a \vf\ file that tells the previewer or device driver how to go about
typesetting the \TeX\ characters (this may involve re-mapping characters,
combining characters, drawing rules and even combining characters from
several different fonts).

Theoretically, virtual font support in \DVIview\ means that you can
typeset RISC OS fonts using \TeX\ and \LaTeX. Unfortunately, you can't
actually do this because the appropriate virtual fonts do not exist.

I suspect that the \vf\ and \tfm\ files could be created automatically from
the RISC OS {\tt IntMetrics} files but this would require someone to write
the conversion program. I can provide details of the file formats
if anyone is interested.

As a stop-gap solution, it may be possible to modify the PostScript virtual
fonts for the ``standard'' RISC OS font families Trinity, Corpus and
Homerton. If you want to do this you'll need the the {\tt vftovp}
and {\tt vptovf} programs, which are supplied in Robin Watts' \TeX\
distribution; these convert \vf\ and \tfm\ files into human-readable \vp\
files and vice-versa. I can provide details of the \vp\ format for
anyone who's interested.

You'll note that the PostScript virtual fonts are not of much use as they stand
because the glyphs and/or character layouts seem to be different in RISC OS
fonts: ligatures and characters with accents do not work (see the
example document {\fname Virtual} for a demonstration).


By the way, there's one current limitation of the virtual font
implementation: if you create a virtual font that uses \DVIview's
diagram inclusion command, the diagrams will not be scaled if the
virtual font is. It would not be a big hardship to add this
functionality but it seemed unlikely that anyone would need it and I have
more important features to add.


\subsection{Will \DVIview\ support \pk\ fonts?}
\DVIview's reliance on outline fonts is a pain, mainly because you're
limited to the fonts that are supplied. \TeX\ previewers on other platforms
use bitmapped versions of the \TeX\ fonts stored in \pk\ files. It would be
possible to add support for these files to \DVIview.

The advantages of \pk\ file support are that you'd be able to use any \TeX\
font and the output quality of documents (both on screen and printed) would
be better. The disadvantages would be disc space (\pk\ files take a lot of
space) and speed of loading and scaling new documents (\pk\ files need to be
created if they don't already exist). In particular, \DVIview\ supports
arbitrary scaling factors, which could cause large numbers of
different-resolution \pk\ files to be produced over time. \DVIview\ would
also support anti-aliased \pk\ fonts, which would mean that the \pk\ files
need to be generated at higher resolutions, which means more disc space :-( ).
Postscript output via !Printers would be horrendous (and probably unusable)
because it wouldn't be possible to declare \pk\ fonts in the Postscript
header. Finally, Draw file output would be horrible because characters would
have to be represented by sprites: printing or scaling the diagram would
give a poor-quality result and the diagram would be extremely large.

Given this list of disadvantages and the effort that implementation would
involve, I'm inclined not to bother with \pk\ support. However, if there were
enough demand I might reconsider.



\section{Remarks}
A few things are worth noting about version \version\ of \DVIview:
\begin{itemize}
 \item \TeX\ uses a different font for each font size because
       fonts should look different at different sizes; they shouldn't just
       be scaled up. This is why there are so many fonts in the \TeXFonts
       directory. Remember to set a large font cache to speed up screen
       redraws.
 \item \DVIview\ uses RISC OS outline fonts to draw characters. The advantage
       of using outlines is that they only take about 20\% of the disc space
       needed to store a full set of \pk\ files and they can be plotted at
       any point size. The disadvantage is that you are limited to the fonts
       provided (although for most people that won't be a problem). There is
       (currently) no automated way of generating outline fonts from metafont
       files.       
 \item When viewing a document, \DVIview\ keeps the \dvi\ file open. If you
       need to re-create the \dvi\ file then you must first close all the
       windows displaying that document otherwise \TeX\ will not be able
       to write to the \dvi\ file. I have some ideas about doing this 
       automatically but the implementation will have to wait for a future
       release.
\end{itemize}


\section{Version 1.00?}
This brief section is intended to satisfy the curiosity of those
who are upgrading from version 0.94 (or earlier) and are wondering
where versions 0.95-0.99 went.

In the beginning, \DVIview\ was rather hacked together. The code it used
to load the \dvi\ files came from a command-line based program and various
parts of \DVIview\ had to be designed with this code's limitations in mind.
For example, error recovery tended to mean program termination --- not
an acceptable approach for a Wimp program --- and some features were very
unfriendly: page offsets needed to be specified before a file
was loaded and a `start page' facility was the only way to handle
large documents. This old \dvi\ loading code also had rather unfortunate
implications for loading speed and memory requirements.

These problems, combined with limitations of the outline fonts at
the time, led me to number the first \DVIview\ as version 0.90 i.e.\ not
really up to a version 1.00 :-) The idea was that version 1.00 would
be the program that I actually wanted to write and would be proud to
release. At the time, I never really expected to reach version 1.00 but
here we are.

Version 1.00 of \DVIview\ was completely rewritten around new \dvi\ loading
code that included a virtual memory system. It's the first version
of \DVIview\ that I'm really proud of.


\section{Versions (from 1.00)}
\begin{description}
\item[1.00]
 \begin{itemize}
   \item Complete re-write.
 \end{itemize}

\item[1.01]
 \begin{itemize}
   \item Improved printing facilities:
   \begin{itemize}
     \item Infamous "Out of memory" error when printing bug removed.
     \item Range selection is now by page number rather than sheet number.
     \item Double-sided printing now supported.
     \item Improved layout when printing landscape documents on upright paper
           (or vice-versa).
   \end{itemize}
   \item Support for `deep' sprites added (RISC OS 3.5+ only).
   \item Support for JPEGs added (RISC OS 3.6+ only).
   \item Page number now appears in the page display's title bar.
   \item New error system should catch all errors (including Address
         Exceptions and the like). Of course, whether it successfully
         recovers from those errors is another matter :-)
   \item Error messages are more detailed.
   \item Errors in {\tt special} commands (e.g.\ for including diagrams)
         no longer stop you from viewing the page.
   \item Added keyboard shortcuts for moving to the start and end of the
         document ($\wedge\uparrow$, Home, $\wedge\downarrow$).
   \item Now only responds to files dragged to the icon bar icon. Previously,
         dragging a file to any \DVIview\ window worked.
 \end{itemize}

\item[1.02]
 \begin{itemize}
   \item Added the Magnifier.
   \item Missing fonts are now substituted by a different-sized font of the same
         family (or a default font if no fonts in the family are available).
   \item Added support for specifying the RISC OS font to use when rendering
         a \TeX\ font.
   \item Virtual fonts are now supported.
   \item JPEGs can now be used on releases of RISC OS earlier than 3.6 as
         long as the SpriteExtend module v0.99 or later is available.
   \item Warnings and non-serious errors are now directed to a log window.
   \item When changing page, the window scroll bars are now adjusted to
         display the top left of the page contents except that if part of the
         top or left margin can be seen, the corresponding scroll bar is not
         adjusted (this is easier to use than explain :-) ).
 \end{itemize}

\end{description}



\section{Copying and altering the program}
You may freely distribute \DVIview\ provided that:
\begin{enumerate}
 \item No charge is made for it.
 \item It is not distributed as a `freebie' with commercial software.
 \item No changes are made to it (i.e. no files are added, deleted or
       modified).
\end{enumerate}
You may modify the application (e.g. save your own {\fname Choices} file 
in the \DVIview\ directory), provided that you do not distribute the
modified application.


\section{Registering}
In earlier releases, I asked users with email addresses to register. There are
a lot of people using \DVIview\ now and using the register for announcements
was become a burden so you don't have to register any more. You can still email
me and say ``hi'' if you like.

I will make announcements of new versions on the comp.sys.acorn.announce
newsgroup but please feel free to email or write to me if you want to know
the latest version or if you have complaints, praise, features you want
added or whatever.


\section{Contacting the author}
My email address is: paul.field@dial.pipex.com\\
I can also be contacted at:\\
346 Chadwell Heath Lane\\
Chadwell Heath\\
Romford\\
Essex\\
RM6 4YH\\
UK\\
Telephone (from the UK): 0181 598 9676\\
Telephone (non-UK): +44 181 598 9676


\section{Acknowledgements}
Thanks to Robin Watts for maintaining his \TeX\ distribution. Hi to my
supervisor Don Beal who managed to get me to complete my Ph.D. despite me
spending all my time running the C Acorn User Group and developing \DVIview.
Hi also to Andy and Jules.

Finally, thanks to everyone who has contacted me with ideas, praise and bug
reports for past versions of \DVIview. Without their support, I would probably
not have bothered to develop \DVIview\ to the extent I have (I very rarely
use \TeX\ or \LaTeX\ myself).

\end{document}
