% dvidoc style file.  Fixes things up so your file uses only fixed width 
% non-math characters, at least if you don't use math mode 
%
% The first section defines all the font change commands to use the
% doc pseudo-font.  It is taken from John Pavel's dvidoc.sty, March 1987
%
\makeatletter
% version from John Pavel's dvidoc.sty, March 1987
\def\rm{\protect\pdoc}
\def\it{\protect\pdoc}
\def\bf{\protect\pdoc}
\def\sl{\protect\pdoc}
\def\sf{\protect\pdoc}
\def\sc{\protect\pdoc}
\def\tt{\protect\pdoc}
\newfam\docfam
\def\pdoc{\@getfont\pdoc\docfam\@xpt{doc}}
% This gets all normal text, headings, etc.
% Unfortunately it doesn't catch places where more explicit stuff
% is done.  The following is brute force but effective.  Note that
% we leave the symbol fonts alone, since otherwise we'll get TeX
% errors complaining that it couldn't find symbol fonts
% Possibly we should do this for all of the font types.  This caught
% everything in sample.tex.
\font\fivmi = doc
\font\fivrm = doc
\font\fivsy = cmsy10
\font\sixmi = doc
\font\sixrm = doc
\font\sixsy = cmsy10
\font\sevmi = doc
\font\sevrm = doc
\font\sevsy = cmsy10
\font\egtmi = doc
\font\egtrm = doc
\font\egtsy = cmsy10
\font\ninmi = doc
\font\ninrm = doc
\font\ninsy = cmsy10
\font\tenmi = doc
\font\tenrm = doc
\font\elvmi = doc
\font\elvrm = doc
\font\elvsy = cmsy10
\font\twlmi = doc
\font\twlsy = cmsy10
\font\frtnmi = doc
\font\frtnrm = doc
\font\frtnsy = cmsy10
\font\svtnmi = doc
\font\svtnrm = doc
\font\svtnsy = cmsy10
\font\twtymi = doc
\font\twtyrm = doc
\font\twtysy = cmsy10
\rm
%
% These dimensional definitions are also taken from Langdon, though with
% some changes, e.g. not ragged right/bottom and parind 3 instead of 5. 
% horizontal dimensions had best be multiples of \em
\hsize 78 em                  % 78 characters per line so fit any screen
% \rightskip=0pt plus 4em       % ragged right
% \spaceskip=1em                % forces ONE space between words
% \frenchspacing        suppresses extra blanks after punctuation -don't
% \parindent=3em
\def\enspace{\kern 1em} \def\enskip{\hskip 1em\relax}
%
% vertical skips may best be multiples of \baselineskip
\baselineskip=12pt            % 6 lines per inch
% \vsize                        % default give 58 lines -OK
\voffset=\baselineskip        % so don't lose \headline
% \parskip=0pt
\smallskipamount=0pt
\medskipamount= \baselineskip
\bigskipamount=2\baselineskip
% \raggedbottom
%
% By default itemize is done with bullets, which we don't have. use hyphen 
% now fix up various latexish stuff
% 
% \def\labelitemi{ -}
% \def\labelitemii{ -}
% \def\labelitemiii{ -}
% \def\labelitemiv{ -}
%
% Fix up table of contents.  Default latex uses fractional spacing between 
% the section number and title.  This comes out as no space in the doc file 
% so we add a space to numberline, and expand tempdima by one em to allow 
% for it.  Also, go out of math mode for the dot in the leader.  Dots in 
% math mode turn out to be colons! 
%
\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
  \vskip \z@ plus .2pt
 {\hangindent #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
   \parindent #2\relax\@afterindenttrue
  \interlinepenalty\@M
  \leavevmode 
  \@tempdima #3\relax
  \addtolength\@tempdima{1em}
   #4\nobreak\leaders\hbox to 2em{\hss.\hss}\hfill \nobreak \hbox to\@pnumwidth{\hfil\rm #5}\par}\fi}
\def\numberline#1{\advance\hangindent\@tempdima \hbox to\@tempdima{#1\hfil}\ }
%
% Can't really do superscripts, so do footnotes with [] 
%
\def\@makefnmark{\hbox{(\@thefnmark)}}
\long\def\@makefntext#1{\parindent 1em\noindent 
            \hbox to 3em{\hss\@thefnmark.}\ #1}
\skip\footins 24pt plus 4pt minus 2pt
\def\footnoterule{\kern-12\p@   
\hbox to .4\columnwidth{\leaders\hbox{-}\hfill}} 
%
% \arrayrulewidth 1em \doublerulesep 1em 
%
% Some fairly obvious hacks.  No odd/even pages in doc files.  Can't do the
% fancy TeX symbols.
%
\oddsidemargin 0pt \evensidemargin 0pt
\def\TeX{TeX}
\def\LaTeX{LaTeX}
\def\SliTeX{SliTeX}
\def\BibTeX{BibTeX}
%
% special versions of stuff from xxx10.sty, since only one font size
%
\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
\abovedisplayskip 12pt
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip  \z@
\belowdisplayshortskip \z@
\let\@listi\@listI}   % Setting of \@listi added 9 Jun 87
\let\small\@normalsize
\let\footnotesize\@normalsize
\normalsize
\footnotesep 12pt
\labelsep 10pt
\def\@listI{\leftmargin\leftmargini \parsep 12pt%
\topsep 12pt%
\itemsep 0pt}
\let\@listi\@listI
\let\@listii\@listI
\let\@listiii\@listI
\let\@listiv\@listI
\let\@listv\@listI
\let\@listvi\@listI
\@listI
%
% We had sort of random numbers of blank lines around section numbers.
% Turns out they used various fractional spacing.  Rather than depend
% upon the definition of startsection, just wrap something around it
% that normalizes the arguments to 12pt.  Negative args have special
% meanings.
\let\@oldstartsec\@startsection
\def\@startsection#1#2#3#4#5#6{
  \@tempskipa #4\relax
  \@tempskipb #5\relax
  \ifdim \@tempskipa <\z@ \@tempskipa -12pt \else \@tempskipa 12pt \fi
  \ifdim \@tempskipb >\z@ \@tempskipb 12pt \fi
\@oldstartsec{#1}{#2}{#3}{\@tempskipa}{\@tempskipb}{#6}
}
%
% Remaining unsolved problem: hrule and vrule are no-ops.  This is
% visible mostly in the tabular stuff, where none of the lines show up,
% though it's still basically usable.
%
\makeatother