diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/txt/txt.tex |
Initial commit
Diffstat (limited to 'support/txt/txt.tex')
-rw-r--r-- | support/txt/txt.tex | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/support/txt/txt.tex b/support/txt/txt.tex new file mode 100644 index 0000000000..bf282bd571 --- /dev/null +++ b/support/txt/txt.tex @@ -0,0 +1,126 @@ +\documentstyle[12pt,myparms,txt]{article} + +\title{The {\tt txt} Style} +\author{Ralph Droms \\ Bucknell University} + +\begin{document} +\bibliographystyle{/home/sol/CSFAC/droms/lib/plain} +\maketitle +\section{Introduction} +\TeX\ and \LaTeX\ produce nicely formatted documents; however, the final +versions of these documents, the {\tt .dvi} files, are, in some ways, +not accessible to further electronic processing. For example, +\unix\footnote{\unix\ is a trademark of AT\&T Bell Laboratories.} +tools like {\tt grep} and {\tt emacs} can't be used on {\tt .dvi} +files, and electronic display of {\tt .dvi} files requires a +high-function bit--mapped terminal. + +Some text--processing systems accommodate both high--resolution output +and straight ASCII text output. Microsoft Word\footnote{I assume +Microsoft Word is a trademark of Microsoft, Inc.} can save a document +in either formatted or text--only form. The formatted version can be +printed on an appropriate high--function printer, while the text--only +version is compatible with other tools and text editors. The \unix\ +text processing tools {\tt troff} and {\tt nroff} both accept the same +input files, but {\tt troff} produces high--quality output while {\tt +nroff} produces ASCII text. {\tt troff} and {\tt nroff} are used, for +example, to produde hard--copy and online versions of the \unix\ +user's manual, assuring that both versions have identical content. + +\TeX\ and \LaTeX\ have no equivalent to {\tt troff}'s {\tt nroff}. +The {\tt txt} style is part of a package that can take standard +\LaTeX\ input and produce ASCII text output. This output will not be +identical to the \LaTeX\ {\tt .dvi} file output, but will, instead, be +ASCII text appropriately formatted for an 8.5 by 11 inch page. + +\section{Theory} + +The problem addressed by {\tt txt} is to restrict \LaTeX\ output so +that it simulates a line printer, without rewriting \LaTeX\ itself. An +accompanying program, {\tt dvi2tty}~\cite{dvi2tty}, then produces +ASCII text output from the {\tt txt}--generated {\tt .dvi} file. + +There are three primary areas in which {\tt txt} must modify \LaTeX\ +to produce ASCII output: + +\begin{itemize} +\item Horizontal spacing +\item Vertical spacing +\item Special characters +\end{itemize} + +{\tt txt} makes a first approximation to line--printer output by +substituting the 12--point Courier font for all the standard \LaTeX\ +font styles and sizes. Using 12--point Courier is assumed to be a good +approximation of a standard line printer, both horizontally and +vertically. {\tt txt} explicitly sets the \LaTeX\ +\verb+\baselineskip+ to be 12 points to better approximate a standard +line printer generating 66 lines on an 11.5 inch long page. + +The next problem in approximating line printer output is to replace +all rubber vertical glue with fixed glue. Such rubber glue, included +in commands like \verb+\section+ and the {\tt itemize} environment, is +replaced by fixed glue in multiples of 12 points. Several other fixed +vertical spaces are modified to be even multiples of 12 points, again +to better simulate line printer output. + +There are two types of special characters modified by {\tt txt}: the +\verb+\labelitem+ characters used by the {\tt itemize} environment and +footnote marks. Footnote marks are recoded to use arabic numbers in +parentheses without superscripting (which is typically not feasible on +a line printer or ASCII terminal). The \verb+\labelitem+ characters +are redefined to be ``{\tt o}'', ``{\tt -}'', ``{\tt *}'' and ``{\tt ++}''. + +\section{Using {\tt txt}} + +Generating ASCII output with {\tt txt} requires two steps: first, the +{\tt txt} style must be included in the \verb+\documentstyle+ command, +and then {\tt dvi2tty} must be run on the {\tt .dvi} file to generate +the ASCII output. + +The {\tt txt} style specification should be included after any other +style files, so that previously defined commands and parameters are +correctly redefined by {\tt txt} for ASCII output. For example, the +header to this document is: +\begin{verbatim} + \documentstyle[12pt,txt]{article} +\end{verbatim} + +A sample session to generate a file containing the ASCII version of +this doucment is (where the ``\%'' character is the \unix\ prompt and +should not be typed): +\begin{verbatim} + % latex txt.tex + % dvi2tty txt.dvi > txt.txt +\end{verbatim} + +\section{Bugs} + +Not all vertical rubber glue has been removed: for example, tables, +page headers and page footers do not always appear on even multiples +of 12 point lines. + +Rules aren't correct; specifically, horizontal and vertical lines in +arrays are likely not to work correctly. + +The model used by {\tt dvi2tty} to simulate horizontal spaacing is +prone to error, especially when horizontal spaces or fills are used. + +\section{Summary} + +The {\tt txt} style generates an approximation of line printer output +from \LaTeX\ input, in the way {\tt nroff} generates output from {\tt +troff} input. The approximation assumes an 80 column, 66 line per page +printer. The {\tt .dvi} file generated by {\tt txt} can be run through +{\tt dvi2tty}. The resulting ASCII output is compatible with +ASCII--only display and printing devices, and can be further processed +by tools like {\tt grep} and {\tt emacs}. + +The approximation is imperfect and has several bugs in the spacing of +output. Modifications to both {\tt txt}, especially eliminating +remaining rubber space, and {\tt dvi2tty} are required to generate +better output. + +\bibliography{/home/sol/CSFAC/droms/lib/droms} +\end{document} |