summaryrefslogtreecommitdiff
path: root/dviware/umddvi/doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /dviware/umddvi/doc
Initial commit
Diffstat (limited to 'dviware/umddvi/doc')
-rw-r--r--dviware/umddvi/doc/box.tex30
-rw-r--r--dviware/umddvi/doc/doc.tex82
-rw-r--r--dviware/umddvi/doc/dow.tex32
-rw-r--r--dviware/umddvi/doc/dvitodev.tex9
-rw-r--r--dviware/umddvi/doc/dvitodvi.tex5
-rw-r--r--dviware/umddvi/doc/figures.tex19
-rw-r--r--dviware/umddvi/doc/install.tex99
-rw-r--r--dviware/umddvi/doc/intro.tex20
-rw-r--r--dviware/umddvi/doc/makefile36
-rw-r--r--dviware/umddvi/doc/section.tex105
-rw-r--r--dviware/umddvi/doc/texx.tex226
-rw-r--r--dviware/umddvi/doc/verb.tex36
12 files changed, 699 insertions, 0 deletions
diff --git a/dviware/umddvi/doc/box.tex b/dviware/umddvi/doc/box.tex
new file mode 100644
index 0000000000..f33c727dfb
--- /dev/null
+++ b/dviware/umddvi/doc/box.tex
@@ -0,0 +1,30 @@
+% Fancy frames
+%
+% Usage:
+% \fancyframebox {rule thickness} {separation from inner guy} {inner guy}
+%
+% \makeemptybox {width} {height} {depth}
+
+\newbox\FancyboxA
+\newdimen\FancyboxD
+
+\def\makeemptybox#1#2#3{\setbox\FancyboxA=\hbox{}\wd\FancyboxA=#1\relax
+ \ht\FancyboxA=#2\relax \dp\FancyboxA=#3\relax \box\FancyboxA }
+
+\def\fancyframebox#1#2#3{%
+ \leavevmode
+ \setbox\FancyboxA=\hbox{#3}%
+ \dimen\FancyboxD=#1\relax
+ \advance\dimen\FancyboxD by #2\relax
+ \advance\dimen\FancyboxD by \dp\FancyboxA
+ \hbox{%
+ \lower\dimen\FancyboxD\hbox{%
+ \vbox{%
+ \hrule height #1\relax
+ \hbox{%
+ \vrule width #1\relax
+ \kern #2\relax
+ \vbox{\vskip #2\relax\box\FancyboxA\vskip #2\relax}%
+ \kern #2\relax
+ \vrule width #1\relax}%
+ \hrule height #1\relax}}}}
diff --git a/dviware/umddvi/doc/doc.tex b/dviware/umddvi/doc/doc.tex
new file mode 100644
index 0000000000..eb6fb4ce2f
--- /dev/null
+++ b/dviware/umddvi/doc/doc.tex
@@ -0,0 +1,82 @@
+% doc.tex - documentation on the C-TeX distribution code
+
+% 11pt
+\magnification=\magstephalf
+
+% Some of the information herein is duplicated in other files
+
+% This file itself is woefully incomplete.
+
+\font\titlebf=cmssbx10 scaled \magstep2
+\font\titlerm=cmr10 scaled \magstep2
+\font\smalltitlerm=cmr10 scaled \magstep1
+\font\csc=cmcsc10
+\chardef\pipe=`| \chardef\hat="5E \chardef\bs='134 \chardef\tilde="7E
+
+\headline={\tenrm\hfil\ifnum\pageno>0 C-\TeX\hfil\llap{\folio}\fi}
+\footline={}
+
+\input section % sections
+\input box % fancy boxes
+\input dow % day of week
+\input verb % verbatim text
+
+\def\today{\ifcase\month\or January\or February\or March\or April\or
+May\or June\or July\or August\or September\or October\or November\or
+December\ \number\day, \number\year}
+
+\def\ctex{C-\TeX}
+
+\parskip=.5\baselineskip plus1pt
+\DoContents
+\pageno=0
+\null\vskip 3cm
+\centerline{\titlerm \ctex}
+\vskip 1.5cm
+\centerline{\smalltitlerm Chris Torek}
+\vskip 1cm
+\centerline{Department of Computer Science}
+\centerline{University of Maryland}
+\centerline{College Park, Maryland 20742}
+\vskip 1cm
+
+\line{Revision 0 as of \DayOfWeek, \today}
+
+{\narrower\narrower\vskip.5\baselineskip
+abstract here
+
+}
+
+\vfill\eject
+\pageno=1
+
+\section 1 {Introduction}
+\input intro
+
+\section 1 {User Guide}
+%\input uguide
+
+\esection 2 {DVI-to-Device Conversion Programs (`Drivers')}
+\input dvitodev
+
+\section 2 {DVI-to-DVI Conversion Programs}
+\input dvitodvi
+
+\section 1 {Administration}
+\esection 2 {Installation}
+\input install
+
+\section 2 {Updates}
+\input updates
+
+\section 1 {Writing \ctex\ Software}
+\esection 2 {The \ctex\ Library}
+\input library
+
+\section 2 {An Overview of the Imagen Driver}
+\input exdriver
+
+% \section 1 {anything else I may think of}
+
+\PrintTOC
+\bye
diff --git a/dviware/umddvi/doc/dow.tex b/dviware/umddvi/doc/dow.tex
new file mode 100644
index 0000000000..8668247679
--- /dev/null
+++ b/dviware/umddvi/doc/dow.tex
@@ -0,0 +1,32 @@
+% From: minow@decvax.UUCP (Martin Minow)
+%
+% \DayOfWeek expands to the day of the week ("Sunday", etc.)
+%
+\newcount\dow
+\def\DayOfWeek{\ifcase\dow Sunday\or Monday\or Tuesday\or Wednesday\or
+ Thursday\or Friday\or Saturday\fi}
+
+%
+% Calculate day of the week (0=Sunday, 1=Monday, etc.), result
+% into \dow.
+%
+{ \countdef\leap=1 % Leap year fingaler
+ \countdef\x=2 % Temp register
+ \countdef\y=3 % Another temp register
+% leap = year + (month - 14)/12;
+ \leap=\month \advance\leap by -14 \divide\leap by 12 \advance\leap by \year
+% dow = (13 * (month + 10 - (month + 10)/13*12) - 1)/5
+ \dow=\month \advance\dow by 10 \y=\dow \divide\y by 13 \multiply\y by 12
+ \advance\dow by -\y \multiply\dow by 13 \advance\dow by -1 \divide\dow by 5
+% dow += day + 77 + 5 * (leap % 100)/4
+ \advance\dow by \day \advance\dow by 77
+ \x=\leap \y=\x \divide\y by 100 \multiply\y by 100 \advance\x by -\y
+ \multiply \x by 5 \divide\x by 4 \advance\dow by \x
+% dow += leap / 400
+ \x=\leap \divide\x by 400 \advance\dow by \x
+% dow -= leap / 100 * 2;
+% dow = (dow % 7)
+ \x=\leap \divide\x by 100 \multiply\x by 2 \advance\dow by -\x
+ \x=\dow \divide\x by 7 \multiply\x by 7 \advance\dow by -\x
+ \global\dow=\dow
+}
diff --git a/dviware/umddvi/doc/dvitodev.tex b/dviware/umddvi/doc/dvitodev.tex
new file mode 100644
index 0000000000..5618f7f2c5
--- /dev/null
+++ b/dviware/umddvi/doc/dvitodev.tex
@@ -0,0 +1,9 @@
+the task
+
+fonts, fontdesc
+
+maxdrift
+
+imagen specific stuff
+
+versatec specific stuff
diff --git a/dviware/umddvi/doc/dvitodvi.tex b/dviware/umddvi/doc/dvitodvi.tex
new file mode 100644
index 0000000000..24046503e6
--- /dev/null
+++ b/dviware/umddvi/doc/dvitodvi.tex
@@ -0,0 +1,5 @@
+why?
+
+dviselect
+
+dvipick? dviconcat?
diff --git a/dviware/umddvi/doc/figures.tex b/dviware/umddvi/doc/figures.tex
new file mode 100644
index 0000000000..103258d86a
--- /dev/null
+++ b/dviware/umddvi/doc/figures.tex
@@ -0,0 +1,19 @@
+\newcount\fignum
+\fignum=1
+
+\def\beginfigure{%
+% \goodbreak % dunno if I really want this yet
+ \midinsert
+ \hrule
+ \vskip\baselineskip
+}
+
+\def\endfigure#1{%
+ \vskip\baselineskip % 1 blank line
+ \centerline{Figure \the\fignum: #1} % caption
+ \medskip
+ \hrule
+ \vskip 1.5\baselineskip % extra space after the line
+ \advance\fignum by1
+ \endinsert
+}
diff --git a/dviware/umddvi/doc/install.tex b/dviware/umddvi/doc/install.tex
new file mode 100644
index 0000000000..2eab2c9488
--- /dev/null
+++ b/dviware/umddvi/doc/install.tex
@@ -0,0 +1,99 @@
+\def\bsd{{\csc BSD}}
+
+Before \ctex\ can be installed, it must be configured and compiled. As
+much of the configuration task as possible is deferred until after
+installation, but there is a bootstrap problem here: The runtime
+system must be configured to know where the runtime configuration is
+to be found. In addition, some of the library routines are necessarily
+system dependent. Clearly, the need for device drivers depends upon
+your devices. All of these should be properly configured in advance,
+though changing the configuration later is easy.
+
+All of the compile time configuration is intended to be performed by
+the makefiles. If you run a Unix machine, or even if this is the first
+and last time you will ever set up Unix software, you should be
+intimiately familiar with `make'. Once you have read the supplementary
+documentation on make, you are ready to peek at the Makefile in the
+{\tt lib} directory. This is the most system-dependent one, so we
+shall tackle it first.
+
+Scary, is it not? Well, whether or no, some explanation is in order.
+This Makefile has the same four standard targets as every other
+Makefile in the \ctex\ system: `all', `install', `clean', and
+`depend'. `All' puts the subsystem into shape for installation.
+`Install' copies the subsystem to its ultimate resting place. `Clean'
+removes anything that is not needed to remake the subsystem. And
+`depend'? This is the strangest one of all, and no doubt the scariest;
+alas, it is also one you may need to adjust. It uses a feature of the
+4.3\bsd\ compiler, the {\tt -M} flag, to get a list of
+dependencies, and inserts this list into the Makefile. Between the
+line marked `{\tt DO NOT DELETE THIS LINE}' and the end of the Makefile
+you will find a full (and I do mean {\it full}) list of dependencies.
+This list includes some of the standard system {\tt include} files,
+such as {\tt /usr/include/machine/machparam.h}. It may well be that
+your system does not {\it have} some of these files. This is not a
+problem; {\tt seek.c} should still compile and run. What {\it is} a
+problem is that `make' will believe it needs this file, even though (on
+your machine) it does not.
+
+If you are lucky enough to be using a 4.3\bsd\ compiler or one with the
+{\tt -M} flag, you can simply run `{\tt make depend}'. If you are on a
+4.2\bsd\ system, the dependency lists are probably already correct and
+can be left alone. If neither of these happy circumstances hold, a
+sure-fire fix is simply to remove the {\tt /usr/include} dependencies
+from the Makefile. Another option is to try, in place of the {\tt cc
+-M} command, the `{\tt getdep}' shell script provided in the `{\tt
+misc}' directory.
+
+The {\tt lib} directory Makefile exemplifies several more standard
+entries. {\tt DESTDIR} controls the top level directory for
+installation. Normally this is the null string: that is, files are
+installed in normal binary or manual directories. Setting it to (e.g.)
+`{\tt /nbsd}' would install everything in {\tt /nbsd/usr/}\dots. Two
+entries {\it not} in this Makefile are {\tt BINDIR} and {\tt MANDIR},
+which set the directories for executable programs (binaries) and for
+manuals. These default to {\tt /usr/local/bin} and {\tt /usr/man}.
+System V sites (if any run \TeX) may need to tailor the manual
+installation commands to conform to System V standards.
+
+This pretty well covers the standard Makefile entries. The {\tt lib}
+Makefile, however, is full of non-standard entries as well. Because it
+attempts to hide system dependencies from the rest of the \ctex\ code,
+it is itself necessarily system dependent. There are two assembly
+language files for 4.1BSD, and one `miscellaneous' file for 4.2BSD
+Vaxen and Pyramids. The former are listed in the {\tt ASSRC} and {\tt
+ASOBJ} macros, and the latter are listed in the {\tt MISCC} and {\tt
+MISCO} macros. These must be adjusted to match your system. If you
+are running some other system, you may need to write your own {\it bcopy} and
+{\it bzero} routines, starting with the C versions in the {\tt misc} directory.
+On System V machines, {\it memcpy} and {\it memset} may be used instead.
+
+BEGIN TRASH
+
+
+When you have the makefiles correct, run `make conf' to configure
+for the Imagen and/or Versatec. Then type `make' to compile
+everything. If all is successful, type `make install' to install
+everything.
+
+Versatec stuff:
+-------- -----
+
+The Versatec driver has page accounting built in. If compiled with
+ACCOUNT_FILE defined, it will write (to ACCOUNT_FILE) a line of
+the form
+
+ tex <username> <number of pages used>
+
+The account file can be defined in either dev/Makefile or h/verser.h.
+
+There is also a definition for the device name `/dev/vp0' in
+h/verser.h, although a redefinition in dev/Makefile will override
+it; alternatively, if your spooling program opens the Versatec
+itself, use the `-v' argument to verser2. `-v 1' implies that
+the Versatec is already open as standard output, for example.
+
+The Imagen driver ought to work for all of the Imagen printers,
+though all I've tested is the 8/300. The `iptex' shell script will
+have to be adjusted for the 10/240, which needs nonzero default
+margins.
diff --git a/dviware/umddvi/doc/intro.tex b/dviware/umddvi/doc/intro.tex
new file mode 100644
index 0000000000..cecb151e5b
--- /dev/null
+++ b/dviware/umddvi/doc/intro.tex
@@ -0,0 +1,20 @@
+% intro.tex - introduction
+
+\line{\qquad \dots or, Just what {\it is} \ctex\ anyway?}
+
+It is perhaps necessary first to define what \ctex\ is {\it not}.
+\ctex\ is not a complete rewrite of \TeX\ in C. It is a tribute to the
+skill of its author Donald E.~Knuth that, despite the fact that \TeX\
+was written in a subset of {\csc pascal} that does not include even,
+e.g., memory allocation, this has not yet proven necessary.
+
+Nor is \ctex\ a monolithic system. Rather, it is a collection of small
+programs---tools---that work together to provide a large number of
+operations from a small set of operators. The author believes that
+this has been a problem with older \TeX ware: each program has built
+into many of the same functions, but using different code that produces
+different results or requires differing and sometimes incompatible
+controls. This is an unnecessary complication that can be resolved by
+moving those functions, either into separate programs, or into library
+code that is then shared directly. This is the approach that has been
+taken in \ctex.
diff --git a/dviware/umddvi/doc/makefile b/dviware/umddvi/doc/makefile
new file mode 100644
index 0000000000..1f00582937
--- /dev/null
+++ b/dviware/umddvi/doc/makefile
@@ -0,0 +1,36 @@
+# Makefile for documentation
+
+doc.dvi: doc.tex
+ tex doc.tex
+
+clean:
+ rm -f *.dvi *.log texput.*
+
+install:
+
+depend:
+ for i in doc; do \
+ egrep "\\input" $$i.tex | egrep -v "[ ]*%" | \
+ sed -e "s/\\\\input/$$i.tex:/" -e "s/%.*//" -e "s/$$/.dvi/"; \
+ done | awk '{ if ($$1 != prev) { if (rec != "") print rec; \
+ rec = $$0; prev = $$1; } \
+ else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
+ else rec = rec " " $$2 } } \
+ END { print rec }' >makedep
+ echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
+ echo '$$r makedep' >>eddep
+ echo 'w' >>eddep
+ cp Makefile Makefile.bak
+ ed - Makefile <eddep
+ rm eddep makedep
+ echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile
+ echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >>Makefile
+ echo '# see make depend above' >>Makefile
+
+# DO NOT DELETE THIS LINE -- make depend uses it
+
+doc.tex: intro.dvi dvitodev.dvi dvitodvi.dvi install.dvi updates.dvi
+doc.tex: library.dvi exdriver.dvi
+# DEPENDENCIES MUST END AT END OF FILE
+# IF YOU PUT STUFF HERE IT WILL GO AWAY
+# see make depend above
diff --git a/dviware/umddvi/doc/section.tex b/dviware/umddvi/doc/section.tex
new file mode 100644
index 0000000000..f56c1ef8a1
--- /dev/null
+++ b/dviware/umddvi/doc/section.tex
@@ -0,0 +1,105 @@
+% for automagic equation numbering
+
+\newcount\LastEqNum
+\LastEqNum=0
+\def\BuildEqBox#1{\hbox{{\rm\the\count1--\the#1}}}
+\def\nexteqnum{{\count9=\LastEqNum\advance\count9 by1
+ \BuildEqBox{\count9}}}
+\def\lasteqnum{\BuildEqBox{\LastEqNum}}
+\def\neweqnum{\global\advance\LastEqNum by1 \lasteqnum}
+\def\namelasteq#1{\xdef#1{\BuildEqBox{\LastEqNum}}}
+
+% for automagic section numbering
+
+\newcount\sectiondepth
+\newbox\sectnum
+\newif\iftoc
+\let\Z=\relax
+\def\SP{ }
+
+\def\sectA{\LastEqNum=0\goodbreak}
+\let\sectB=\goodbreak
+\let\sectC=\goodbreak
+\let\sectD=\goodbreak
+\let\sectE=\goodbreak
+\let\sectF=\goodbreak
+\let\sectG=\goodbreak
+\let\sectH=\goodbreak
+\let\sectI=\goodbreak
+
+% Start a new section. First argument is depth (1 to 9 please!), second
+% is caption. \esection is a section that has nothing above it and
+% shouldn't get a \goodbreak\bigskip.
+
+\outer\def\section{\bigskip\SECTION}
+\outer\def\esection{\nobreak\smallskip\SECTION}
+\def\SECTBAD{\errmessage{Section depths should be between 1 and 9}}
+\def\SECTION#1#2{%
+ \sectiondepth=#1
+ \ifcase\sectiondepth\SectBad\or\sectA\or\sectB\or\sectC\or
+ \sectD\or\sectE\or\sectF\or\sectG\or\sectH\or\sectI\else
+ \SECTBAD\fi
+ \advance\count\sectiondepth by1
+ \loop\advance\sectiondepth by1 % zero all lower levels
+ \ifnum\sectiondepth<10\count\sectiondepth=0\repeat
+ \sectiondepth=1
+ \setbox\sectnum=\hbox{\number\count1}%
+ \global\def\Sectnum{\number\count1}%
+ \loop\ifnum\sectiondepth<#1 % Glue together each level
+ \advance\sectiondepth by1
+ \ifnum0=\count\sectiondepth % force to 1
+ \set\count\sectiondepth=1
+ \fi
+ \setbox\sectnum=\hbox
+ {\unhbox\sectnum.\number\count\sectiondepth}%
+ \global\edef\Sectnum{\Sectnum.\number\count\sectiondepth}%
+ \repeat
+ \message{\Sectnum. #2}%
+ \setbox0=\hbox{\bf\copy\sectnum.\hskip1em#2}%
+ \def\text{\Sectnum.\SP!#2}%
+ \tocentry{#1}{\text}{\box0\hfil}
+ \ignorespaces
+}
+
+% unnumbered section
+\def\unsection#1{%
+ \message{#1}%
+ \setbox0=\hbox{\bf#1}%
+ \def\text{\SP!#1}%
+ \tocentry{0}{\text}{\box0\hfil}%
+ \ignorespaces
+}
+
+% print arg 3 as a line, put arg 2 into the table of contents with
+% a "level" of arg 1
+% takes care of putting box0 out as a line, and putting it into the
+% table of contents if required
+\def\tocentry#1#2#3{%
+ \line{#3}% stuff to appear in the text
+ \nobreak\smallskip\nobreak % now in vert mode
+ \iftoc{\let\the=0 % make it unexpandable
+ \xdef\ixout{\write\inx{\Z#1\SP!#2!\SP\the\pageno.}}\ixout
+ }\fi
+}
+
+\ifx\titlefont\undefinecontrolsequence
+ \font\titlefont=cmssbx10 scaled\magstep2
+\fi
+\newcount\Siz
+\newwrite\inx
+\def\DoContents{\toctrue\immediate\openout\inx=\jobname.toc}
+\def\PrintTOC{\vfill\supereject\immediate\closeout\inx
+ \def\LeadFill{\leaders\hbox to .75em{\hss.\hss}\hfill}
+ \def\Z##1!##2!##3!##4.{
+ \Siz=##1\count1=\Siz
+ \advance\Siz by 1 \multiply\Siz by \count1
+ \divide\Siz by 2 \advance\Siz by -1
+ \dimen0=1em\multiply\dimen0 by \Siz
+ \Siz=##1\advance\Siz by 1
+ \dimen1=1em\multiply\dimen1 by \Siz
+ \line{\hskip\dimen0\hbox to\dimen1{##2\hfil}{##3}\LeadFill\hbox{##4}}
+ }
+ \centerline{\titlefont Table of Contents}\vskip .75in
+ \global\count0=-1
+ \input\jobname.toc
+}
diff --git a/dviware/umddvi/doc/texx.tex b/dviware/umddvi/doc/texx.tex
new file mode 100644
index 0000000000..8f739a9f63
--- /dev/null
+++ b/dviware/umddvi/doc/texx.tex
@@ -0,0 +1,226 @@
+\subsection{The Previewers}
+texx\ is a {\em previewer} for \dvi\ files which uses the X-11 window system.
+\texsun\ is a previewer for \dvi\ files which uses the SunView window system.
+Both previewers allow you to
+view documents on your workstation before printing them.
+
+Everything in the following
+description applies to both \texx\ and \texsun\ unless
+otherwise stated.
+
+\subsubsection{Painting}
+When you start xdvi, a window will be created on your display
+\footnote{
+ The interaction for this varies with the window manager you're using
+ and between \texx\ and \texsun.
+}
+and your document will be {\em painted} in that window.
+The size of the window corresponds to the size of the tallest and widest
+page of your document.
+If your display is wide enough, the window will have two {\em leaves},
+otherwise it will have a single {\em leaf}.
+Each leaf will be painted with a page from your document.
+
+texx\ takes some pains to provide the most viewable document possible.
+Normally, a \TeX\ document has an inch of margin added at the left and
+top margin.
+If reduction of this white space allows your document to be viewed
+at a large size, that margin is reduced.
+If you are using \texx\ or \texsun\ to preview documents you are working
+on, you may find it advantageous to specify a smaller document size
+to \TeX\ or \LaTeX, allowing you to preview your document at a readable size.
+
+\subsubsection{Shrinks}
+Because most workstations do not have a screen resolution approaching that
+of a laser printer,
+sacrifices must be made to provide suitable fonts.
+
+One solution would be to generate the \TeX\ fonts at your display resolution.
+This requires at least two sets of fonts, one for your printer and one
+for each differing screen resolution.
+Another approach is to use the high-resolution fonts for the printer
+and {\em shrink} them.
+This is the method used by \texx\ and \texsun,
+because it reduces the number of fonts
+and works with a great number of display resolutions.
+
+Fonts are shrunk using a {\em shrink factor},
+which is an integer in the range of 1 to 9.
+As an example, with a shrink factor of 4, a 4 by 4 set of pixels
+is reduced to a single pixel on your display.
+The pixel is turned on if $1/\mbox{\em blackness}$ pixels in the
+original sample were turned on.
+Normally, {\em blackness} is $3$, which was chosen by trial \& error,
+but it can be set using the {\tt -bl} option or by setting the
+{\tt Blackness} option in your defaults file.
+
+A shrink factor of 1 is a direct view of the fonts at a normal resolution.
+
+There are usually two goals to previewing documents.
+One is to view the {\em overall structure} of the document, e.g.
+to check if tables, equations and figures appear at the right spot.
+Another is to check {\em detail structure}, e.g. to check
+if the spacing around an equation looks right.
+The interface for \texx\ provides a {\em normal shrink} and a
+{\em large shrink} view of your document.
+At the normal shrink size, an entire page is visible, providing an
+overall view.
+At the large shrink size, details are more visible.
+
+\subsubsection{Differences Between \texx\ and \texsun}
+When documents are being painted, the cursor icon for \texx\ changes to a
+clock, indicating that you need to wait for the painting to finish.
+For \texsun, the cursor changes to an hourglass.
+When \texx\ is waiting for input, the cursor changes to a spraycan.
+When \texsun\ is waiting for input, the cursor changes to a bulls-eye.
+
+Unless the \texx\ window is {\em obscured} by another window,
+the image is painted directly to the display.
+If the \texx\ window is {\em obscured} by another window,
+the image is painted to a {\em pixmap}, which is displayed when the
+page is painted.
+{\em You should only obscure the \texx\ window when the cursor is
+a spraycan, not when it is a clock.}
+If the window is covered or obscured while it is being painted, the
+final image will not be correct.
+However, if you obscure the window (e.g. overlay it with a
+window for editing your document) while the spray scan is present,
+the window will be correctly painted when you turn pages.
+\texx\ does not take advantage of resized windows.
+
+\texsun allows somewhat more flexibility.
+Pages are painted directly to memory, and displayed when they are painted.
+You can obscure the \texsun\ window at any time.
+You can also enlargen the window.
+While this will not change the amount of visible text for the
+normal shrink size, the entire window is used to display the
+large shrink size.
+
+\subsubsection{Moving Around}
+In both \texx\ and \texsun,
+you move forward in your document by hitting
+the {\tt RETURN} or {\tt NEWLINE} key.
+If there is a single leaf, it will be erased and painted with the next page.
+If there are two leaves, the right hand page will be put on the left leaf
+and the left leaf will be painted with the next page.
+To move backward in your document, hit the {\tt DELETE} or {\tt BACKSPACE} key.
+If you type a number before hitting a key, you move forward or backward
+that number of pages.
+
+To move to a given page, type the number of the page and the ``{\tt g}''.
+To quit \texx, type ``{\tt q}''.
+To view a part of your document at the large shrink size,
+point the cursor at the part you are interested in and hit any mouse button.
+The spray can will change to a clock while the page is painted
+at the larger size.
+Since the entire page will not fit on the display at the larger size,
+it is printed to memory, and the part you pointed to is displayed.
+If your window has a single leaf, that leaf is overwritten with the
+enlarged image.
+In \texx,
+if your window has two leaves, the enlarged image is painted on the
+leaf not pointed to.
+This allows you to see the overall structure and the detail at the same
+time.
+In \texsun, the entire window is always used.
+
+When you release the mouse button, the page which was previously displayed
+on the over written leaf is restored.
+If you point to another spot {\em on the same page}, the page will not
+need to be recomputed.
+texx\ remembers the enlarged page as long as the normal sized page
+is visible, i.e. if you turn forward several pages, and then back up,
+you will need to recompute the enlarged page if you want to see the
+detail view.
+
+\subsubsection{Options}
+\texx\ allows you to control the layout of the window, using either
+the \texx\ command line your {\tt .XDefaults} file.
+Similarly, \texsun\ allows you to control the layout of the window
+using either the command line or your Sun {\tt .defaults} file.
+Table \ref{table:xdvi-options} lists the available options.
+Options in {\bf bold-face} apply to both \texx\ and \texsun.
+Options in {\sl slant-face} apply only to \texx,
+and optioned in {\it italics} apply only to \texsun.
+Normally, you invoke \texx\ by simply saying {\tt xdvi yourfile}.
+You invoke \texsun\ by simply saying {\tt \texsun\ yourfile}.
+If ``{\tt yourfile}'' can not be found, then the suffix ``{\tt .dvi}''
+is appended.
+%
+\begin{table}[hbt]
+\centering
+ \begin{tabular}{|l|c|c|p{2in}|}
+ \hline
+ XDefault & Command Line & Argument Type & Meaning \\
+ \hline \hline
+
+ {\bf ReverseVideo} & -rv
+ & {\em none } & Display document in reverse video \\
+
+ {\sl BorderWidth} & -bw
+ & {\em integer } & Change the width of the display border. \\
+
+ {\sl ForeGround} & -fg
+ & {\em color} & Change the foreground display color\\
+
+ {\sl BackGround} & -bg
+ & {\em color} & Change the background display color\\
+
+ {\sl HighLight} & -hl
+ & {\em color} & Change the highlight color \\
+
+ {\sl Border} & -bd
+ & {\em color} & Change the border color \\
+
+ {\sl Mouse} & -ms
+ & {\em color} & Change the mouse color \\
+
+ {\bf NormalShrink} & -ns
+ & {\em integer} & Change the shrink size for the overview display \\
+
+ {\bf LargeShrink} & -ls
+ & {\em integer} & Change the shrink size for the detail display \\
+
+ {\bf Blackness} & -bl
+ & {\em integer} & Change the blackness threshold for shrunken fonts \\
+
+ {\bf Leaves} & -l
+ & {\em integer} & Change the number of leaves uses (1 or 2) \\
+
+ {\bf TopMargin} & -tm
+ & {\em float} & Set the top margin in inches \\
+
+ {\bf SideMargin} & -sm
+ & {\em float} & Set the left side margin in inches \\
+
+ {\bf Dpi} & -dpi
+ & {\em integer} & Set the desired font resolution in dots per inch \\
+ \hline
+ \end{tabular}
+\caption{Options For \texx\ and \texsun}
+\label{table:xdvi-options}
+\end{table}
+
+\subsubsection{Remembering where you were}
+Currently, this section only applies to \texsun.
+
+Since the normal use of \texsun\ involves the repeated viewing of a document
+to fix formatting problems,
+it would be nice to be able to return to the page you were viewing when
+you left \texsun.
+
+If you define the environment variable ``{\tt TEXSUN\_STATE}'' as the name
+of a file, a {\em viewing state} will be written to that file when you
+exit \texsun.
+The next time you start \texsun, this state will be added to your list of
+command-line arguments before any other argument.
+This allows you to override the saved state.
+If the first argument is {\tt -new}, the saved state is ignored.
+
+If you choose an absolute path name for {\tt TEXSUN\_STATE},
+then you can invoke \texsun\ from a menu, but all your previewer
+sessions will use the same state file.
+Choosing a relative path name (e.g. ``{\tt ./.texsun-state}'') allows
+you to have a state file for each different directory, but it's
+difficult to convince the SunView environment to start a
+tool in a given directory.
diff --git a/dviware/umddvi/doc/verb.tex b/dviware/umddvi/doc/verb.tex
new file mode 100644
index 0000000000..67ad6bac6f
--- /dev/null
+++ b/dviware/umddvi/doc/verb.tex
@@ -0,0 +1,36 @@
+% From: Tim Morgan <morgan@uci-icsa>
+% Produce verbatim listings of various sorts
+
+\def\uncatcodespecials{\def\do##1{\catcode`##1=12 } \dospecials}
+
+\def\setupverbatim{%
+ \par \tt \spaceskip=0pt % Make sure we get fixed tt spacing
+ \obeylines\uncatcodespecials\obeyspaces\verbatimdefs
+}
+
+% This macro turns on verbatim mode until ?endverbatim is seen.
+\def\verbatim{\begingroup \setupverbatim
+ \parskip=0pt plus .05\baselineskip \parindent=0pt
+ \catcode`\ =13 \catcode`\^^M=13 \catcode`\?=0
+ \verbatimgobble}
+{\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par}\let =\ }}
+ \gdef\verbatimgobble#1^^M{}}
+
+% This defines ?endverbatim to end the group which begins with \verbatim
+\let\endverbatim=\endgroup
+
+% Input a file in verbatim mode. Sometimes useful for including
+% real-life examples into a paper.
+\def\verbfile#1{\begingroup\setupverbatim
+ \parskip=0pt plus .05\baselineskip \parindent=0pt
+ \input#1 \endgroup
+}
+
+% This is the same as the above, but it adds line numbers to each
+% line of the file printed.
+\newcount\lineno
+\def\listing#1{\lineno=0\begingroup\setupverbatim
+ \parskip=0pt plus .05\baselineskip \parindent=20pt
+ \everypar{\advance\lineno by 1 \llap{\the\lineno\ \ }}\input#1
+ \endgroup
+}