From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 support/txt/txt.sty | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 165 insertions(+)
 create mode 100644 support/txt/txt.sty

(limited to 'support/txt/txt.sty')

diff --git a/support/txt/txt.sty b/support/txt/txt.sty
new file mode 100644
index 0000000000..a640808cec
--- /dev/null
+++ b/support/txt/txt.sty
@@ -0,0 +1,165 @@
+% 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
-- 
cgit v1.2.3

