DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T m

⟦559adb163⟧ TextFile

    Length: 2800 (0xaf0)
    Types: TextFile
    Names: »mctex-int.tex«

Derivation

└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦af5ba6c8e⟧ »unix3.0/DVIWARE.tar.Z« 
        └─⟦ca79c7339⟧ 
            └─⟦this⟧ »DVIware/laser-setters/mctex/doc/mctex-int.tex« 

TextFile

\documentstyle[11pt,fullpage,dtt,twoside]{article}

\input{defs}

\newcommand\dvitype{{\tt DVItype}}
\newcommand\void{{\tt void}}

% Variables are typeset in italics.
% \var{x} includes an italic correction, while \var*{x} does not.
\makeatletter
\def\var{\@ifstar{\@varN}{\@varC}}
\def\@varN#1{{\it#1}}
\def\@varC#1{{\it#1\/}}
\makeatother

\catcode`\_=12 % no subscripts, unless you set it back to 8
\everymath{\catcode`\_=8\relax} % magic fixup, can do math again
\def\_{\char95\relax} % for places where _ has been math-ized

\title{\mctex\ Internals Guide}
\author{Chris Torek\\
Department of Computer Science\\
University of Maryland\\
College Park, MD 20742\\
{\tt chris@mimsy.umd.edu}}
\date{30 November 1989}

\begin{document}
\maketitle

\begin{abstract}
This document describes the internals of \mctex,
The Maryland \Unix\footnote
{\Unix\ is a trademark of AT\&T Bell Laboratories.
\ps\ is a trademark of Adobe Systems Inc.}
\TeX\ collection of programs.
It is intended for people porting \mctex\ to other systems
and for those who want to add to the \mctex\ collection.
\end{abstract}

%\begin{titlepage}
%\tableofcontents
%\end{titlepage}

\section{Introduction}
This document makes use of several typesetting conventions
to compress information into less space.
Words in {\tt typewriter text} generally indicate literal C code text
or file names.
Function and macro arguments appear in \var*{italics}.
C function declarations are given in {\em prototype\/} form---e.g.,
\mbox{\tt int main(int \var*{argc}, char **\var{argv})}---except
when the parameter types are obvious
or (as is the case with several macros) irrelevant,
and except that types of the functions themselves are normally omitted
when the functions return \void.
The \mctex\ system itself
does not use prototypes (nor most other features of ANSI C),
since many compilers still do not handle them.
Most of the routines labelled as macros
have the option of referring to their arguments more than once;
these macros may not be handed expressions containing side effects.
For instance, {\tt Sign8(*p++)} is illegal,
as it may well increment {\tt p} twice
and produce a bogus value.
Those macros that are {\em function-like\/}
(that is, can tolerate side effects)
are so noted.

The \mctex\ source code is organised as a two-level tree.
At the top level are directories for each major subsystem,
such as the library ({\tt lib}),
the Imagen driver ({\tt imagen}),
global header files ({\tt h}),
and so forth.
Within each directory are the files that make up that subsystem.
There is a {\tt Makefile}
in every directory,
with entries as described in the installation section
of the \mctex\ User's Guide.

\section{The \mctex\ library}
\input{lib}

\section{A Tour Through a Driver}\label{sec:tour}
\input{tour}

\end{document}