\magnification=\magstep1
\input nice
\def\mynum#1{\ifnum #1<10 0\the#1\else \the#1\fi}
\def\mymonth#1{\ifcase#1 \or January \or February \or March \or April
   \or May \or June \or July \or August
   \or September \or October
   \or November \or December \fi}

%\ifx\protect\relax \else
%  \let\protect\relax
%\fi
%\input german.sty
%\umlauthigh % for nice <= Version 2.0

\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{a}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\def \quadtwo {\quad\quad}
\def \eingabe#1 {\smallskip\quadtwo{\tt #1}\smallskip}

\def\tbw {\hskip 10pt \it to be written $\ldots$}

%\def \rechner{ST}
\def \rechner{Amiga}

\article

\titlepage
\vfill
\title{Pas\TeX 3.1}
\removelastskip
\medskip
\title{AMIGA Implementation}
\bigskip
\release{Documentation}
\smallskip
\release{of}
\release{\mynum{\day}. \mymonth{\month}\mynum{\year}}
\bigskip
\author{by}
\author{Georg He\ss{}mann}
\author{Bernd Raichle}
%%\author{David G\"ohler}
\author{Translation by Thomas Tavoly}
\vskip 1cm
\vfill
%\abstract{}
%\vfill
\endtitlepage


\medskip
\plainsection{Contents:}
\medskip
\makecontents
\newpage

\contentslevel=3
\contfill={\dotfill}
\contskip=3pt
\let\scstyle=\bf

\section{Copyright}

As \TeX\ itself does not originate from me, and the adjustments\slash
changes in it are minimal, this version is Public Domain.
Anyone can copy this version and redistribute it.

Take note however, that single parts of the distributed programs
(especially the drivers ShowDVI and DVIprint) e.g.\ Macro-packages
do have a Copyright!


\section{About \TeX}

\TeX\ was invented, in order to be able to create high quality
printouts with the computer. The goal was to be able to process
books and texts of all kinds by the computer, in a way, that they look
pretty. This however, does not per se mean the resolution of the printer.
\TeX\ typesets texts in a way that they are aesthetically pleasant.

This craftsmanship was only known by typesetters in the past. Normally
you need a good education and a sizeable proportion of experience, to
fabricate good looking texts. E.g. a text is pleasant to read, when not
too many kinds of typefaces are used on a single page, as otherwise the
brain can not concentrate on the text properly. Exactly the same is the
case with empty lines, to structure a text. These are merely simple basic
rules. Typesetters know hundreds of them, and often, texts produced by
professionals just look better than others. Sometimes you do not even know
why, but they simply look better. Typesetters were additionally also able
to correct mistakes of the author -- what sometimes led to newly introduced
errors.

Now, as a private person with little time and without being equipped
with this special knowledge, you still want to print {\it good looking}
texts, this program is supposed to relieve you of many details.
\TeX\ is very friendly from this point of view and -- unless you do not
want it to -- takes most of the burden off of you. This way you can
concentrate on the contents.


\subsection{Man and machine}

``Computers are stupid'', I still hear being said by childrens voices. And
as so often, they are right. Computers are limited. You first have to tell
them everything specificly, so that they do what they should be doing.
However, as they are not (yet -TT) capable of understanding the human voice
(let alone interpreting what you said), you must move to the level of the
machine and command the computer with the keyboard what it has to do.

In the age of Mice and GUIs, the keyboard is moving more and more towards
oblivion, when typing texts however, it is (fortunately) indispensable as
yet. As you have to get the texts into the computer through use of the
keyboard anyway, it is also practical to build the commands concerning
which texts, how and where are to be placed on a page, into the text.

\TeX functions the same way. You write a text, as you would do with a
typewriter. Every time though, when you want to make something special
-- like for example printing a word bold or italicized -- you have to
tell the computer. This happens through the use of commands, that you
build into the text right in front of it. How should a computer
otherwise understand that a particular word should be printed in a
bold typeface?

Though the computer knows how to handle the text, the characters
on the screen or on harddisk are again Chinese for the printer.
So, the text must be processed in a way that it will produce a
good looking text from it. \hbox{To this end} you need the \TeX program.
The conversion is separated into two stages. The first stage is done
by the program {\tt virtex} (which means ``virgin'' \TeX). It performs
the conversions which are the same for every printer. As a result, it
delivers a file, which ends with the suffix {\tt .dvi}. The second stage
is taken over by the printerdriver {\tt DVIprint}, which completes the
specific conversions for the printers connected. It takes the file
ending in {\tt .dvi} and sends the result of its conversion to the
printer.

``Should this mean, that I have to compile (convert) every text twice
first and even have to print it, before I can see what it looks
like?''

Yes and no. Yes, because both of the conversions are always necessary.
Without them, you cannot see, what became of the text-command-mix.
No because, there is a possibility to convert the texts in a way that
you can view them on screen.

To this end, the program with the name {\tt ShowDVI} exists, which converts
every file ending in {\tt .dvi} and displays it on the screen.
The second stage is thus different. {\tt ShowDVI} does so to say not
print out on paper, but to the screen. Without having to waste
paper, you can preview this way, whether something became of the text.
If it is according to your taste, you employ the {\tt DVIPrint}
program to print the document. Should changes be applied,
both stages just have to be followed through again.

\smallskip

{\subsectiontitlefont Summary}
To create a document with \TeX, you have to

{\smallskip\lnarrower\itemlist{--\quad}
\next type a text and intersperse it with commands
\next convert this with the {\tt virtex} program into a file, that
ends with the suffix {\tt .dvi}
\next display this with the {\tt ShowDVI} program on the screen
and decide whether you like it
\next if you don't, start again
\next if you do, print it on the printer with {\tt DVIprint}
\enditemlist\smallskip}

To some, this method may not seem entirely modern.
I dare to pose however, that I am considerably
faster with this method than with a so called DTP program
and that the printouts are aesthetically more pleasant.


\subsection{\TeX's parts}

\TeX\ consists -- apart from the macrofiles -- of two programs: {\tt
initex} and {\tt virtex}.

With {\tt initex} a format file (ending in `{\tt fmt}') is created.
To this end, this program initializes everything from the ground up,
reads macros and separation tables and writes its memory contents
in a relatively compact format, the format file. This procedure
is usually called the ``dumping'' of a format.

{\tt virtex}, a ``virgin'' version of {\tt initex}, can now load
this format file relatively fast, and can begin with formatting a text.
Because of the now superfluous initializing {\tt virtex} needs less
memory than {\tt initex}.

\smallskip
Now, what is this format file for?

\TeX\ (more specificly plain\TeX) and \LaTeX\ themselves are no private
programs, but only macro packages dumped in a format file, which
you can load with {\tt virtex}.  In a shell you can
define the following {\it aliases} to this end, e.g.

\leftline{\kern.2\hsize\tt alias tex\ \ \ \ virtex \&plain}
\leftline{\kern.2\hsize\tt alias latex\ \ virtex \&lplain}


\subsection{Hardware requirements}

\TeX\ itself runs with at least 1~MB memory, just for creating
of a format files with {\tt initex}, a half~MB more does not hurt
in any case.

For the Big version of \TeX\ at least 1,5~MB should be available (for
dumping accordingly more).

Running \TeX\ with only one, resp.\ with two disk-drives does function,
but is close to masochism. Recommended is in any case a hard-drive
with ca.\ 5--10~MB room (according to how many fonts, macro- and
format-files you want to keep on the drive at the same time).



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\section{Particularities of the implementation}

The current implementation is based on the C-version of \TeX\ from the
Unix Web2C-Package\footnote{This version has thus not been translated
manually to C and typed in.} and has been extended with some other
features.

\itemlist{ -- }
\next Configurability
\next Selection of the searchpath with environment variables or in a
configuration file
\next Support of CodePages for mapping at different
charactersets in ~\rechner{} and in~\TeX
\next inkl.\ ``Statistics''\footnote{\TeX\ can be compiled also without
the so called ``Statistics'', at which you get a version which runs
at ca.\ 1\% faster. Then, however, the {\tt\string\tracing..}-commands
are not available anymore.}
\enditemlist


\subsection{Commandline options}

On the commandline, some other options can be given, apart from the
file that is to be compiled.

The syntax then looks like this:

\leftline{\kern.2\hsize\tt
    initex [{\it options}] [\&{\it fmt}[.fmt]] [{\it file}[.tex]]}
\hbox{bzw.}
\leftline{\kern.2\hsize\tt
    virtex [{\it options}] [\&{\it fmt}[.fmt]] [{\it file}[.tex]]}
\smallskip

Valid options are:
\staggered{12345}%{\tt -l{\it language number}\ }
\key{\tt -c{\it Dir list\footnote{The path list must be directly behind the
  `{\tt c}'. The same goes for the number behind the {\tt -l} option.}\hss}}
\key{}
  With this you can indicate a list of directories, separated by comma,
  in which for the configuration file {\tt tex.cnf} is searched.
  A further possibility would be to set the environment variable
  {\tt TEXCONFIG} to {\it dir list}.
\key{\tt -b} {\tt \string\batchmode}
\key{\tt -n} {\tt \string\nonstopmode}
\key{\tt -s} {\tt \string\scrollmode}
\key{\tt -e} {\tt \string\errorstopmode} (Default)
\key{}
  Only one of these options at a time can be selected.
  With this the {\it Interaction Mode} can be set according to the
  \TeX commands |\batchmode|, |\nonstopmode|, |\scrollmode| resp.\
  |\errorstopmode|.
\key{\tt -l{\it language number}\hss}
\key{}
  From Version~3.0 on, you can load separation tables for up to
  256~languages at the same time. Switching between these tables
  happens through the new \TeX counter |\language|. If you have
  loaded in position~0 the English and in position~1 the German
  separations, then you can switch to the German separation through
  {\tt -l1}, without a change in the file to be formatted. If you
  give a number $> 255$ or $< 0$, then this means |\language=0|,
  has for the given number no table been loaded, then the separation
  is switched off\footnote{The style option {\tt german.sty} (Version 2.3c)
  switches e.g. to position~1. Are no separation patterns loaded
  for this, \TeX\ will not separate anymore.}.
%\key{\tt -t}
%  Per default, the end of line is only indicated by a {\it LineFeed}
%  in files written by \TeX\.
%  The ST-Desktop and also some editors need a
%  {\it CarriageReturn\slash LineFeed} as line separator, this
%  is achieved by giving this option.
\key{\tt -d}% ST only
  Debugflag, with this some more or less explicit
  messages are additionally output.
\endstaggered

The options must be given one at a time, separated by spaces.
Valid is e.g. {\tt -s -e}, invalid on the other hand is {\tt -se}.



\subsection{Environment variables}

To be able to work with \TeX\ practically, apart from the program
itself, you need some additional files. Where these files should
be searched for, can be indicated by environment variables\footnote{The
standard ENV: variables are used} (or in the configuration file).

\medskip

\def\default#1{\hfill\break({\sl Default: ``{\tt#1}''})}

\staggered{12345}
\key{\tt TEXINPUTS\hss}
\key{}
  Where should \TeX\ look for the macro-, the style-files and the text to be
  formatted? Here should not forget to include the current directory (to be
  indicated as `|.|') in the list. (Files ending in `|tex|', `|sty|')
  \default{.,tex:macros}\footnote{These default values are directly compiled
     into the \TeX program, but can also be partly
     changed through the config file.}
\key{\tt TEXFORMATS\hss}
\key{}
  As mentioned before, to be able to format a text, you need a format file,
  in which e.g. the \LaTeX macro package is contained.
  (Files ending in `|fmt|')
  \default{tex:formats}
\key{\tt TEXFONTS\hss}
\key{}
  \TeX\ additionally needs information about the fonts used, which can be
  found in the `\TeX\ Font Metric' files.
  (Files ending in `|tfm|')
  \default{.,tex:fonts}
\key{\tt TEXPOOL\hss}
\key{}
  {\tt initex} first reads all strings used in \TeX\ (e.g. error messages)
  from a ``Poolfile''.
  (File `|tex.pool|')
  \default{.,tex:}
\key{\tt EDITOR\hss}
\key{}
  In case there is an error in the input for {\tt initex} or {\tt virtex}
  (and you are in the interactive mode) you can start an editor with `{\tt e}'
  You can put the name of the editor you want to be called in this variable.
  For {\tt \%s} the filename, and
  for {\tt \%d} the line number of the error is substituted.
  \default{ed \%s -i}
\key{\tt TEXREXX\hss}
\key{}
  This variable determines, whether the editor should be started as a system-
  command or as an ARexx script. When the variable is not set, the editor is
  started as a system command. Does the variable contain an arbitrary string
  the editor is not started directly, but an ARexx script is called. Does
  {\tt TEXREXX} now contain the string ``{\tt edit}'', then, instead of
  waiting for the user to start the editor with the {\tt e} command, it
  is started right after the first error occurs.
\key{\tt REXXEDITOR\hss}
\key{}
  This variable indicates which ARexx script should be started, in case
  the `{\tt e}' command is given and {\tt TEXREXX} is set. Normally, this
  script is in |rexx:| and has the extension |.rexx|.
  \default{texedit \%s \%d}
\key{\tt TEXCONFIG\hss}
\key{}
  Searchpath for the configuration file |tex.cnf|. Is also possible through
  the `{\tt -c}' option when called.
  (File `|tex.cnf|') This variable is also used by the drivers
  \hbox{ShowDVI}
  and DVIprint. There, however, it can not be a list of paths, but only
  a single path.
  \default{tex:config}
%\key{\tt UNIXMODE\hss}
%\key{}
%  See file `|unixmode.doc|' for additional information.
\endstaggered


\subsection{Configuration file ``tex.cnf''}

The disadvantage of most implementations is the fixed size of the individual
arrays in \TeX. If new macro packages are published, like e.g. the new
{\it Font Selection Scheme} of \LaTeX, then you mostly reach one of the
boundaries of the many arrays in \TeX\ (in the above mentioned one, this is
the {\it String Pool\/}) and the user gets the tidy message: ``you can ask
a wizard to enlarge me''.

With the configuration file {\tt tex.cnf} the user himself can now become a
\TeX-Wizard.  In case the aforementioned message should appear, you simply
change the size of the array that is too small.

\medskip

Four types of information is contained in the configuration file:
\pnumbered
\next Searchpaths
\next Preselections
\next CodePage information
\next Size of \TeX arrays
\endpnumbered

The information is indicated as a keyword-\slash value pair,
where the keyword must begin at the beginning of the line and
be separated from the value with spaces or tabs.

Keywords not recognized are ignored without a warning, you can use this
to include comments in the file. Better is, however, the use of the
percent sign `|%|' as the beginning of the comment. The rest of the line
after the percent sign is ignored.

The configuration file is read to the end, but you can stop reading
before that by including a `|#|' as the first character in a line.
This is meaningful when e.g. a longer comment follows after that.


\subsubsection{Searchpaths}

Instead of indicating searchpaths through the environment variables,
these can also be given here. As keywords are known: |TEXINPUTS|,
|TEXFORMATS|, |TEXFONTS| and |TEXPOOL|. These must be written in
capitals.

Here, the value of the corresponding environment variable writes over
the value in the configuration file.

%The value the of the corresponding environment variable is overwritten
%by a searchpath given in the configuration file. In case of repeated
%setting of a variable all additonal ones are ignored.


\subsubsection{Default language}

%Some options, that you can give on the command line, can
%also be set in the configuration file.

%With the entry\hfil\break
%\leftline{\kern.2\hsize\tt crlf\qquad 0}
%the line end is marked only by LF, with\hfil\break
%\leftline{\kern.2\hsize\tt crlf\qquad 1 \qquad \% 1 or value <> 0}
%on the other hand with CR/LF. This corresponds to the {\tt -t} option.

The line\hfil\break
\leftline{\kern.2\hsize\tt language\qquad 197}
sets the \TeX counter {\tt \string\language} to the given value,
here 197. This corresponds to `|\language=197 |' on the beginning of the
file to be formatted. Should you have given a value on the command line
through the |-l| option, then the value in the configuration file is
ignored.


\subsubsection{\TeX Arrays}

The original \TeX source has been written in the Pascal language without
enhancements like those contained in e.g. Turbo Pascal. Owing to this,
ports to other systems and languages could be done without major changes.
The disadvantage: the size of all the arrays is given static at the point
of compilation.

This implementation allows to set the size of most of the arrays that
\TeX\ internally uses to be set only at the time of starting the program.
What sizes can be set and what meaning these arrays have will be dealt
with in a following section.

For values not contained in the configuration file default values are used,
when setting repeatedly, the last value is taken.

With the |-d| option you can display the values.

\subsubsection{CodePage}

The CodePage definition begins with the keyword |codepage| at the
beginning of a line, it is ended with two smaller than signs |<<|.
In case several definitions are given in one configuration file,
then all are regarded as a single definition.

In chapter 5 this is explained thoroughly.

\subsubsection{An example configuration file}

This is a way the configuration file {\tt tex.cnf} could look:

{\narrower
\beginverbatim
% tex.cnf   Example of a configuration file for TeX
%
% firstly set all possible environment variables...
%
TEXINPUTS       .,TeX:macros,Work:tex/macros,Work:tex/texts
TEXFORMATS      .,TeX:formats,Work:tex/formats
TEXFONTS        .,TeX:fonts
% only for IniTeX:
TEXPOOL         .,TeX:,Work:tex/pool
%
% ... and now to re set some values
%
stringvacancies 10000
maxstrings       6000
triesize        16000
itriesize       19000    % triesize (for IniTeX only)
memmax          33000
memtop          33000
#
^-- Marks the end of TeX.cnf: '#' on the beginning of the line

Here an arbitrary number of comment lines can now follow.
\endverbatim
}


\subsection{\TeX{} -- ARexx interface}

\subsubsection{Calling the editor}

As in normal Unix\footnote{Unix is a registered Trademark of
AT\&T$\ldots$}-\TeX{} you can also start an editor from Pas\TeX{}.
Has \TeX{} found an error, then you can call an editor with the
`{\tt e}' command.

As already mentioned in chapter 3.2, you can determine that the editor
should not be called by a system command but by an \hbox{ARexx} script
by setting the variable {\tt TEXREXX}. The means of using a script has
been chosen to guarantee a largest possible flexibility.

\subsubsection{ARexx scripts}

There are also a number of ARexx scripts available, which sort of
emulate a ``\TeX-shell''. These scripts are:
\staggered{12345}
\key{\tt texedit.rexx\hss}
\key{}
  This script is called by \TeX{} and displays the spot where the
  error occurred in the \TeX-Files in CygnusEd\footnote{short CED; this
  is a commercial editor published by ASDG Inc.} Professional 2.
\key{\tt start\_tex.rexx\hss}
\key{}
  This script is the central \TeX-shell script. This should
  be started in a CLI with {\tt rx start\_tex}.
\key{\tt start\_tex.sd\hss}
\key{}
  As all ARexx scripts with the extension {\tt sd} this is called from
  the previewer ShowDVI. It searches for the port of the
  {\tt start\_tex.rexx} script and prompts it to recompile the file
  which is currently shown in the previewer.
\key{\tt start\_tex.ced\hss}
\key{}
  The equivalent for the {\tt start\_tex.sd} script. Only that this one
  is called from CED.
\key{\tt quit\_tex.sd\hss}
\key{}
  With calling this script from the previewer, the script
  {\tt start\_tex.rexx} closes its port and ends itself.
\key{\tt quit\_tex.ced\hss}
\key{}
  Again, the equivalent for above. Only that this one is called from CED.
\key{\tt callmf.rexx\hss}
\key{}
  This script is only interesting in conjunction with Metafont.
  When the variable {\tt CALLMF} contains ``{\tt callmf}'', and
  the drivers cannot find a font, then this script is called,
  so that this font can be generated. Up till now, however,
  this script is just a test version!
\key{\tt cedtofront.sd\hss}
\key{}
  With this script you can bring the editor CED to the front from ShowDVI.
\key{\tt sdvitofront.ced\hss}
\key{}
  This script brings the previewer from editor to the front.
\endstaggered{}



\section{Arrays in \TeX}

In the configuration file the following parameters can be assigned:

\medskip

\staggered{12345}
\key{\tt memmax\hss}
\key{\tt memtop\hss}
\key{}
 {\tt memmax} resp.\ {\tt memtop} indicate the size of the most important
arrays in \TeX\. In this ``main memory'' e.g. the complete page is built
and macro definitions are stored.

 {\tt initex} ignores the value of {\tt memmax} and sets
$\hbox{\tt memmax}=\hbox{\tt memtop}$. The value of {\tt memtop} should
be chosen as large as possible when dumping with {\tt initex}, this
is stored in the format file as well.

 For {\tt virtex} and {\tt initex} must apply:
 $\hbox{\tt memtop}\leq\hbox{\tt memmax}\leq 65534$.
 Thus you can use a bigger ``main memory'' for {\tt virtex} than
 for {\tt initex}.

 Memory usage: 4~Bytes $*$ {\tt memmax} resp.\ {\tt memtop}

\smallskip

\key{\tt triesize\hss}
\key{\tt itriesize\hss}
\key{\tt trieopsize\hss}
\key{}
 All separation tables, that are read by {\tt initex}, are stored
very compact in a ``Trie''. {\tt initex}, however, needs a lot of memory
for this Trie, as it has to be completely built first, before it can be
compressed\footnote{This is the main difference between {\tt initex} and {\tt virtex}}.
Because of the very large memory requirement of the Trie in {\tt initex},
{\tt membot} must be set to a value $< 65534$ in case of little memory.
As the compressed Trie for {\tt virtex} needs much less space, {\tt memmax}
can be usually set to 65534, so that you have the largest possible `main
memory' available for formatting. The size of the  Trie is indicated by
{\tt triesize} (for {\tt virtex}) resp.\ {\tt itriesize} (for {\tt initex}).
Both must be smaller than 65536. The number of ``trie operands'' is
{\tt trieopsize} ($\leq 32767$).

Memory usage: \vtop{
\halign{\quad#\hfil&\quad\hfil# Bytes\hfil&\quad\hfil# Bytes\hfil\cr
   &\omit\quad {\tt (i)triesize}&\omit\quad {\tt trieopsize}\cr
 {\tt initex}& 15& 10\cr
 {\tt virtex}& \hphantom{0}5& \hphantom{0}3\cr}}

\smallskip

\key{\tt fontmax\hss}
\key{\tt fontmemsize\hss}
\key{}
 {\tt fontmax} gives the maximum number of fonts loaded (must be $\leq 255$).
The font information from the {\tt tfm} files is loaded into an array of
size {\tt fontmemsize}. Where {\tt fontmemsize} can be any size.

 Memory usage: 79~Bytes $*$ {\tt fontmax} $+$ 4~Bytes $*$ {\tt
fontmemsize}

\smallskip

\key{\tt maxstrings\hss}
\key{\tt poolsize\hss}
\key{\tt stringvacancies\hss}
\key{}
 In an array called ``String Pool'' all strings are stored, which also
includes all \TeX macros and -primitives, like e.g. {\tt \string\relax}.
The size of this array is determined by {\tt poosize}, the number of strings
by {\tt maxstrings}. {\tt stringvacancies} indicates, how much space in
the String Pool after loading of a format file must at least be present for
user defined strings. All three parameters can be chosen to be of infinite
size.

 Memory usage: 1~Byte $*$ {\tt poolsize} $+$ 4~Byte $*$ {\tt
maxstrings}

\smallskip

\key{\tt bufssize\hss}
\key{\tt maxinopen\hss}
\key{}
  Every line entered (from a file or from the keyboard) is
stored in an array of the size {\tt bufsize}. {\tt bufsize} must be
smaller than 65536. {\tt maxinopen} gives the number of simultaniously
open files (must be smaller than 128).

 Memory usage: 1~Byte $*$ {\tt bufsize} $+$ 8~Byte $*$ {\tt
maxinopen}

\smallskip

\key{\tt maxprintline\hss}
\key{\tt errorline\hss}
\key{\tt halferrorline\hss}
\key{}
  {\tt maxprintline} gives the maximum length of the log output to the
screen resp.\ to the log file (usually $= 79$, must be $\geq 60$).
{\tt errorline} gives the maximum length of the context information
in case of an error (must be $\geq 45$), {\tt halferrorline} is the
length of the first line of this context
($30\leq \hbox{\tt halferrorline}\leq \hbox{errorline}-15$).

 Memory usage: 1~Byte $*$ {\tt errorline}

\smallskip

\key{\tt savesize\hss}
\key{\tt stacksize\hss}
\key{\tt dvibufsize\hss}
\key{}
  For saving values within groups (local assignments, |\aftergroup|)
space of size {\tt savesize} is used. {\tt stacksize} gives the number of
``Input-Sources'' (file, macros, tokenlists, $\ldots$). The buffer for
writing of the |dvi| file is {\tt dvibufsize}~Bytes\footnote{{\tt dvibufsize}
must be divisible by 8!}.

 Memory usage: 2~Bytes $*$ |savesize| $+$ 10~Bytes $*$ |stacksize|
$+$ 1~Byte $*$ |dvibufsize|
\endstaggered



\medskip

What values should be assigned to the individual parameters? For that
you simply seek the help of the log file, which has been created
while dumping a format file\footnote{Because of this, these log files should
not be deleted.}.

When dumping \TeX\ (German |plain.fmt|) you get the following log file:
\par
\begingroup\narrower
\beginverbatim
This is a PD-Version of Pas-TeX (made Jan 26 1991 [br]/[hes])
This is TeX, C Version 3.1 (INITEX)  28 JAN 1991 02:51
**plain \input amiga \input /doc/nice \dump
(plain.tex Preloading the plain format: codes, registers,
             ... [lines deleted] ...
Beginning to dump on file plain.fmt
 (format=plain 91.1.28)
2121 strings of total length 28932
7874 memory locations dumped; current usage is 118&7748
1063 multiletter control sequences
\font\nullfont=nullfont
\font\footfont=cmr10
             ... [lines deleted] ...
16011 words of font info for 54 preloaded fonts
0 hyphenation exceptions
Hyphenation trie of length 9980&11780 has 281 ops out of 500
  281 for language 0
No pages of output.
\endverbatim
\endgroup

From this you recognize the lower bounds for some important parameters:
|maxstrings|~$>2121$, |poolsize|~$>28932$, |memmax|~$>7874$,
|fontmax|~$>54$, |fontmemsize|~$>16011$. The actual values used should
be chosen larger: |memmax| should, when possible, be set to 65534,
the other parameters to at least 10\% larger values.

The Trie with the separation tables can, after it has been compressed,
no longer become larger. Because of this you can set |triesize| to a value
$\geq 9980$ and |triopsize| to $\geq 281$. (For dumping of this format,
for |initex|, the parameter |trieopsize| must be set ~$> 11780$.)

All other parameters should be left unchanged and only after the error
message {\tt TeX capacity exceeded} occurs should you enlarge the
particular parameter.


\subsection{Difference between \TeX--Big\TeX}

Now, what is this ominous Big\TeX, that has been mentioned before in the
manual?

This is practically identical with normal \TeX, only some of the elements
of internal arrays have been enlarged. Consequently, only some arrays can
be made bigger, if this is possible in ``small'' \TeX{}.

These arrays are:

 $$\vbox{\halign{\strut\vrule\vrule#&\quad#&      % arr-name
   \vrule#&\quad\hfil#\hfil\quad&         % small-tex
   \vrule#&\quad\hfil#\hfil\quad&           % big-tex
   \vrule\vrule#\cr
   \noalign{\hrule}
   \noalign{\hrule}
  & Array && \TeX{} && Big\TeX{} & \cr
  \noalign{\hrule}
  & {\tt memmax/memtop} &&  65532 && 524284 & \cr
  & {\tt maxstrings} && 65536 && {\sl arbitrary} & \cr
  & {\tt bufsize} && 65536 && {\sl arbitrary} & \cr
  \noalign{\hrule}
  \noalign{\hrule}
 }}$$

Of course, you have to pay a price for this achieved flexibility. The memory
usage increases considerably. Not only because larger arrays can be allocated
now, but also because the individual array elements now use more memory. In
case of {\tt memmax} this is about $1.5$ times more bytes.

But what do you need such large arrays for?

Really only for a few special cases. The one probably occurring most is
the macro package {\it pictex}. This creates pictures from only characters.
You can imagine that a whole lot of individual characters are gathered like
this, until a picture is ready. To be able to work reasonably with this
macro package, you need Big\TeX{}. However, to be able to work acceptably
with Big\TeX{}, you need at least 3MB of main memory.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{CodePage --- What is its ?}

\TeX\ uses a coding for the individual characters that is standardized for
all implementations, ASCII.  This has been fixed for only characters from
|0x20| (Space) till |0x7f| (Delete) and some others like |^^@| (NUL),
|^^M| (CR), |^^J| (LF), |^^L| (FF) and |^^I| (Tab) though. (As you see, only
7 bit characters and some control characters.)

In case also for special characters like e.g. umlauts a set for the 8 bit
characters (characters $\geq 128$) exists, in any case a translation of the
coding of the Amiga will become necessary to the one used in \TeX\.
(A very awkward sentence to translate, I hope I got it right -TT)
Now, you can ``hardcode'' this into the implementation or you leave the user
the freedom to be able to determine this in a |Codepage|, so that changes
will become quite easy.

The codepage is machine dependant, i.e. if you transfer \TeX files between
two computers with a different character set, you must also change the
Codepage. Only the coding that is used internally by \TeX\ is the same on
all machines\footnote{You can take advantage of this by making \TeX files
machine independant: You simply use the notation {\tt \string^\string^xx}
(xx is a hex number in lower case), {\tt xx} is thereby not(!) the coding of
the character in the character set of the computer, but rather the one used
by \TeX\.}.


\subsection{Operation}

\TeX\ uses two array internally, |xord[]| and |xchr[]| for transformation
on input resp. on output. When reading, every character~|s| is replaced by
the character |t:=xord[s]|, when writing, the character~|t| is subsequently
again replaced by |s:=xchr[t]|. Eventually, the character of the computer
is represented in \TeX\ by the character~|t|.

Special characters (i.e. control characters and 8 bit characters) are
normally represented by |^^xx|, (|xx| is thereby the characters position
in the \TeX character set in hex notation), this has the advantage that
this character can be again read correctly machine independant. For the
user though it is making more sense to present displayable special
characters as such, that is why \TeX\ uses a further array, in which the
display mode is recorded\footnote{This further array is equivalent to the
first 256~strings of the {\it String Pool}.}.

In the Codepage definition you now have the possibility, to change the
default content of this array.

\subsection{Syntax}

The Codepage definitions are given in the configuration file |tex.cnf|,
there you can also give the definition in several parts. Every part
is prepended with |codepage| on the start of the line, subsequently
a command per line follows. The definition is terminated by |<<|.

Following commands are allowed:

\begingroup
\catcode`\|=12
\gdef\myspvert{\ifmmode\expandafter!\else\expandafter\mytxver\fi}
\catcode`\!=\active \global\let !=\myspvert
{\obeylines\gdef\mytxver{\begingroup%
\tt\setupverbatim\let^^M=\ \let!=\endgroup}}
\gdef\anweins{!x = y!}
\gdef\anwzwei{!x > y!}
\gdef\anwdrei{!<  y!}
\gdef\anwvier{!<| y!}
\endgroup

\staggered{123456}
\key{\hfil (1)} \anweins
\key{}
  The character |x| is transformed to |y| when reading, |y| is written
  as |x|, and not in the notation |^^yy| anymore.
\key{}
  {\sl Example:} (|"a| would be the Amiga character (a letter!) for a-umlaut,
  |^^80| would be \TeX code for the a-umlaut)
\key{}
  After 
   $$\hbox{|"a=^^80|}$$
  every |"a| is transformed to 128 immediately, apart from that \TeX{}
  no longer outputs |^^80| for character 128, but |"a|.
\key{}
  (xord[x]=y; xchr[y]=x; printable(y)=true;)
\key{\hfil (2)} \anwzwei
\key{}
  The character |x| is transformed to |y| when reading. Here, |y| can be
  chosen from the complete range |^^00-^^ff|.
\key{}
  {\sl Example:}
\key{}
  After
   $$\hbox{|"a>a|}$$
  {\tt "a} is read as {\tt a}.
\key{}
  (xord[x]=y;)
\key{\hfil (3)} \anwdrei
\key{}
  The character |y| is no longer output in the notation |^^yy|, but as
  {\it one} character |y|.  Thereby at the output a possible transformation
  occurs, in case a command \anweins\ has been given in the Codepage
  definition.
\key{}
  \qquad (printable(y)=true;)
\key{}
  {\sl Default:} all characters $<$ 32 or $>$ 126 are output in the |^^y|
  notation.
\key{}
  \qquad (printable(y)=false; for y in [0$\ldots$32, 126$\ldots$255])
\key{\hfil (4)} \anwvier
\key{}
  Negation of (3). |y| is after that output as |^^yy|.
\key{}
  {\sl Example:}
\key{}
  After
   $$\hbox{|"a=^^80|}$$
  the character 128 is output as a character |"a|. If this does not occur,
  you should give after that:
   $$\hbox{|<|$\vert$|^^80|}$$
\key{}
  (printable(y)=false;)
\endstaggered

The individual commands are interpreted line by line, the order in which
the commands are executed is important.

General note:

If you give characters in \TeX\ in |^^| notation, then these are not mapped
anymore, i.e. with |^^| notation the character code must be in \TeX{} and
not in the currently used machine's code.

Only directly given characters are mapped. Mapping takes place when reading
in {\tt input\_line()}, apart from that when writing with {\tt print\_char()}
and at the transformation of filenames.


\subsection{Limitations}

The codepage definition is only useful in |initex|, as the arrays in
the format file are stored as well.  I.e., if you use several
codepages, then for every one of them a new format file must be created.
(This limitation should be gone in a later release.)

In the first line that |virtex| reads no translation is taking place yet,
as at this point in time, the format file has not yet been read.


%
% This chapter is only for a german distribution....
%
%\section {Installation}
%
%Bevor man die im vorigen Kapitel beschrieben Programme benutzen kann,
%m\"ussen diese so vorbereitet werden, da{\ss} sie wie gew\"unscht
%funktionieren. Diese Vorbereitung nennt man {\it Installation}.
%
%Sie besteht darin, Programme und Daten zu kopieren und die Datei {\tt
%S:Startup-Sequence} so zu erweitern, da{\ss} nach dem Anschalten und
%erfolgreichem Starten des Rechners sofort mit \TeX\ gearbeitet
%werden kann. Wie \TeX\ zu installieren ist, kann im folgenden
%oder auch in der Datei {\tt "LiesMich"} im Verzeichnis {\tt
%TeXDisk1:Beschreibungen} nachgelesen werden.
%
%\subsection {Automatische Installation}
%
%F\"ur die Installation von \TeX\ gibt es ein Programm (eigentlich
%eine Script-Datei) mit Namen {\tt installTeX}, welches -- einmal
%gestartet -- alles n\"otige kopiert und einf\"ugt. Wenn {\tt installTeX}
%etwas wichtiges ver\"andert, fragt es vorher den Benutzer, ob es die
%Ver\"anderungen vornehmen soll. So bleibt dem Benutzer immer noch die
%M\"oglichkeit, einzugreifen, wenn das Programm etwas machen sollte, was
%es halt nicht soll.
%
%Bisher ist die vollautomatische Installation nur f\"ur die Festplatte
%vorgesehen. Wer also nur mit Disketten arbeitet, mu{\ss} sich die
%Datei {\tt LiesMich} durchlesen und die Arbeiten von Hand
%durchf\"uhren, die das Programm {\tt installTeX} automatisch
%durchf\"uhrt.
%
%Das Programm {\tt installTeX} kann wie folgt aufgerufen werden:
%
%\smallskip
%{\tt \quad \quad execute TeXDisk1:Beschreibungen/InstallTeX Verzeichnis}
%\smallskip
%
%F\"ur {\tt Verzeichnis} m\"ussen Sie den Namen eines Verzeichnisses auf
%Ihrer Festplatte angeben, in welchem \TeX\ installiert werden
%soll. F\"ur \TeX\ selbst ben\"otigen Sie circa 1 MByte Platz, f\"ur das
%Programm {\tt ShowDVI} circa 2 MByte, und f\"ur das Programm
%{\tt DVIprint} mit Fonts um die 8 MByte (maximal). Bitte lesen
%Sie f\"ur die Installation von {\tt DVIprint} die zugeh\"orige
%Anleitung, um zu erfahren, wie man mit weniger Platz auskommen kann.
%
%{\bf Wichtig: Fast alle Einstellungen, die bei der Installation
%gemacht werden, kann man nach eigenem Gutd\"unkem ver\"andern, nur eine
%sollte man nicht \"andern: Es empfiehlt sich dringend, das Assign {\tt
%TeX:} auf dem Verzeichnis, in welchem alle Programme und Daten
%stehen, zu belassen. Die automatische Installation nimmt diese
%Einstellung vor. Man sollte sie auf keinen Fall \"andern. }
%
%Sollten wider Erwarten bei der automatischen Installation nicht
%zu \"uberwindende Probleme auftreten, lesen Sie bitte im Kapitel
%{\it Fehler, Probleme und L\"osungen} nach, woran dies liegen k\"onnte.
%Im schlimmsten Fall schreiben Sie uns an.
%
%\subsection {Unterverzeichnisse}
%
%Die Unterverzeichnisse von {\tt TeX:} haben ganz bestimmte
%Bedeutungen. So erwarten Programme wie {\tt VirTeX}, {\tt DVIprint}
%und {\tt ShowDVI} Fontangaben, Makrodateien und Fonts normalerweise
%(per default) in ganz bestimmten Verzeichnissen.
%
%Im folgenden soll aufgelistet werden, welche Dateien in welchen
%Verzeichnissen stehen (sollten). Diese Zuordnung sollte man nicht
%ohne triftige Gr\"unde \"andern. Denn sie ist quasi einheitlich
%auf vielen Rechner in der vorgegebenen Form zu finden und macht
%es Ihnen und anderen leicht, sich zurechtzufinden, wenn Sie auf
%einem fremden System sind.
%
%Hier kommt die Liste:
%
%\smallskip{\lnarrower\staggered{\tt TeX:Beschreibungen --}
%
%\key {\tt TeX:bin}   hier befinden sich die ausf\"uhrbaren Programme. Diese
%                 k\"onnen auch in einem anderen Verzeichnis stehen,
%                 Hauptsache das Verzeichnis mit diesen Programmen
%                 liegt im Pfad. Es sind \smallskip
%                 \staggered{{\tt virtex }--}
%
%                 \key {{\tt virtex} --}
%                 \key {{\tt initex} --} Die \TeX-Programme
%                 \key {{\tt input} --} Eingabe-Befehl f\"ur das InstallTeX-Script
%                 \endstaggered \smallskip
%
%                 Wenn Sie unseren Previewer und Druckertreiber benutzen,
%                 sollten Sie diese ebenfalls in diese Verzeichnisse
%                 kopieren. Auf Wunsch \"ubernimmt dies die automatische
%                 Installation.
%
%\key {\tt TeX:fonts}  beinhaltet die {\tt .tfm}-Dateien. In diesen
%                 Datei steht f\"ur jeden Font und jeden Buchstaben
%                 eines Fonts, wie gro{\ss} er ist. Diese
%                 Gr\"o{\ss}enangaben braucht {\tt virtex} zum
%                 \"Ubersetzen der Texte. \smallskip
%
%\key {\tt TeX:macros} hier sucht {\tt virtex}  normalerweise nach \TeX-Texten,
%                 die er im aktuellen Verzeichnis nicht finden
%                 kann. F\"ur \LaTeX-Benutzer: Hier sollten die Style-Files
%                 stehen.\smallskip
%
%\key {\tt TeX:formats}
%                 \TeX\ an sich, hat einen sehr kleinen und unpraktischen
%                 Befehlssatz. Um damit gut umgehen zu k\"onnen, gibt es f\"ur
%                 \TeX\ verschiedene Makropakete. Zu den am meist
%                 gebrauchten geh\"oren {\tt plain}-\TeX\ (normalerweise nur als
%                 \TeX\ bezeichnet) und {\tt lplain} (stets \LaTeX-\ genannt).
%                 Die Namen dieser Dateien enden stets auf {\tt .fmt}. Die
%                 Makropakete stehen in diesem Verzeichnis.\smallskip
%
%\key {\tt TeX:fontlib} wird vom \TeX-Compiler nicht gebraucht. In
%                 diesem Verzei\-chnis suchen Previewer und
%                 Druckertreiber nach Fontlibaries\footnote{Siehe Beschreibung zum
%       {\tt flib}-Kommando}.\smallskip
%
%\key {\tt TeX:pk} wird vom \TeX-Compiler nicht gebraucht. In
%                 diesem Verzei\-chnis suchen Previewer und
%                 Druckertreiber nach Pixel-Fonts.\smallskip
%
%\key {\tt TeX:config} hier wird normalerweise das Konfigurationsfile |tex.cnf|
%       gesucht. Auch die Treiber suchen dort ihre Definitionsfiles.
%                 \smallskip
%
%\key {\tt TeX:Beschreibungen}  hier finden nach der Installation alle
%                 Beschreibungen als {\tt TeX}- und Text-Dateien.
%                 Dieses Verzeichnis hat oft die Bezeichnung {\tt
%                 TeX:doc}.\smallskip
%
%\endstaggered\smallskip}
%
%\subsection {Pfade}
%
%\TeX\ ben\"otigt eigentlich keine speziellen Pfade. Es ist aber g\"unstig
%die Programme wie {\tt virtex}, {\tt ShowDVI}, und {\tt DVIprint} nicht nach
%{\tt C:}, sondern nach {\tt TeX:bin} zu kopieren und auf dieses
%Verzeichnis einen Pfad zu legen. Dann f\"allt es Ihnen viel leichter alte
%Versionen durch neuere zu ersetzen, bei Platzproblemen \TeX\ auf Disketten
%zu sichern und zu l\"oschen und so weiter.
%
%In der {\tt S:Startup-Sequence} sollte deswegen ein Eintrag wie
%
%\eingabe {path TeX:bin add}
%
%stehen.
%
%Statt die vielen zus\"atzlichen Eintr\"age, die f\"ur \TeX\ n\"otig sind,
%in die {\tt S:Startup-Sequence} aufzunehmen, k\"onnen Sie diese
%auch in eine Script-Datei schreiben und ausf\"uhren, sobald Sie
%\TeX\ benutzen wollen. Auf meinem Rechner gibt es beispielsweise
%die Datei {\tt init-tex}, die automatisch die Anweisungen in
%{\tt S:Shell-Startup} ausf\"uhrt und die zus\"atzlichen, f\"ur \TeX\
%n\"otigen Schritte unternimmt.
%
%Wer m\"ochte, kann so eine spezielle Shell starten,
%
%\eingabe {newshell NEWCON:0/11/640/200/TeX s:init-tex}
%
%in der alle n\"otigen Einstellungen schon gemacht sind. Wenn man dann
%noch in der Datei {\tt S:Shell-Startup} den Eintrag
%
%\eingabe {alias inittex newshell NEWCON:0/11/640/200/TeX s:init-tex}
%
%stehen hat, reicht es im CLI {\tt inittex} einzugeben, um eine
%typische \TeX{}-Shell zu starten.
%

\section {A testrun}

In this chapter I exercise a test run with you, so that you see how
texts can be compiled with \TeX\ and how easy that is. I have grouped
this chapter in four sections:

\smallskip{\lnarrower\numbered 1
\next Installing a directory
\next Compiling with {\tt virtex}
\next Previewing with {\tt ShowDVI}
\next Printing with {\tt DVIprint}
\endnumbered} \smallskip

\subsection {Installing a directory}

Go to the directory in which you want to install a further subdirectory.
I have a directory {\tt TeX:documents} in which all subsequent subdirectories
are located. You should also create such a directory and then type:

\smallskip
{\quadtwo\tt cd TeX:documents} \parwithoutskip
{\quadtwo\tt makedir testdir} \parwithoutskip
{\quadtwo\tt cd testdir} \parwithoutskip
\smallskip

Now it is time to type in a text with an editor. This one should end with
the postfix {\tt .tex}, otherwise {\tt virtex} will not find it:

\eingabe {ed testfile.tex}

An example for a short but famous text:

\beginverbatim
    \hrule
    \vskip 1in
    \centerline{\bf A SHORT STORY}
    \vskip 6pt
    \centerline{\sl by A. U. Thor}
    \vskip .5cm
    Once upon a time, in a distant
      galaxy called \"O\"o\c c,
    there lived a computer
    named R.~J. Drofnats.

    Mr.~Drofnats---or ``R. J.,'' as
    he preferred to be called---
    was happiest when he was at work
    typesetting beautiful documents.
    \vskip 1in
    \hrule
    \vfill\eject
    \bye
\endverbatim

When you have typed in and saved this text, you can start with the
compilation.

\subsection {Compiling with ``virtex''}

Before you can translate the text, you should make sure, that all programs
and data are present in the right directories and that the environment
variables are set correctly. At least the variable {\tt TEXFORMATS} should
be set and as an entry contain the name of the directory {\tt TeX:formats}
In this directory, a file with the name {\tt plain.fmt} should be present.
If you rather want to use the German version of \TeX\ (the macro package
is called {\tt plaing.fmt}), then you must substitute the {\tt plain}
by {\tt plaing} in the next call.

The call for {\tt virtex} looks like this:

\eingabe {virtex \&plain testfile}

After the input you should get the following output on the screen:

\beginverbatim
This is a PD-Version of Pas-TeX (made Jan 22 1991 [br]/[hes])
This is TeX, C Version 3.1
(testfile.tex [1] )
Output written on testfile.dvi (1 page, 672 bytes).
Transcript written on testfile.log.
\endverbatim

{\tt virtex} has created an output file with the name {\tt testfile.dvi}
and a protocol file with the name {\tt testfile.log}.

\subsection {Previewing with ShowDVI}

The contents of this file can now be displayed by you with a so-called
{\it Previewer}. With this previewer you can look at what the printout
will look like {\it in advance}. The program for this purpose is called
{\tt ShowDVI} and is located on one of the PreviewDisks.

Please note that you need more for viewing the document in {\tt testfile.dvi}
as what you get on the distribution disks {\tt TeXDisk1} and {\tt TeXDisk2}.
For this end, you need the disks PreviewDisks 1, 2 and 3, which you can
order from us. It is important that the font libraries are located in the
directory {\tt TeX:fontlib} or that you have copied the needed
fonts\footnote{Which these are is explained in the ShowDVI manual} to a
place that is known to the previewer.

The call looks like this:

\eingabe {ShowDVI testfile}

After that a new screen in interlace mode should appear and display the
result. You can leave {\tt ShowDVI} by pressing {\tt CTRL-C}.

\subsection {Printing with DVIprint}

The printing takes place in exactly the same way as previewing the document
with {\tt ShowDVI}. Please take note again, that you here also need more
for printing than what there is to find on both disks {\tt TeXDisk1}
and {\tt TeXDisk2}.

As printers of different manufacturers sometimes distinctly differ,
you must tell the printer driver, what printer is connected. It can
drive 9 pins, 24 pins (NEC-P6 compatible) and HP printers. You can tell
it what printer is connected with the {\tt -d} option.

Following calls are for example possible:

{\lnarrower
For a 9 pins printer:
\eingabe {DVIprint -d 5 testfile}

For a 24 pins printer:
\eingabe {DVIprint -d 1 testfile}

For a HP printer:
\eingabe {DVIprint -d 3 testfile}
}

After that, you should hold a really {\it nice} printout in your hands.

\section {Errors, problems and solutions}

Of course, something always can go wrong. And usually something does go
wrong. As you are not a robot, you make mistakes just as much as I do.
Programs react to something like this usually quite unsubtly and terminate
their work.

\TeX{} reacts to errors with extensive error messages, that are at first
very confusing. To explain these here would be too laborious. Please
look up the appropriate pages in a book; The books described in the next
chapter contain enough information for servicing errors.

Important for the search for errors is, that you must make sure that
you have made or set all important assigns, paths and environment variables.
Please check in case of an error everything very carefully. Really inspecting
everything on your machine, and not only briefly making a mental note, makes
the difference, whether you really have done something or not. A call
of {\tt dir} or {\tt assign} is often very instructive.

Who has apparently unconquerable problems, can always turn to
Georg He{\ss}mann. However, for this, following rules
must be respected:

Send us a letter (do not phone, that usually gets you nowhere), in which
you clearly explain the problem. Print out a listing of the text, which
causes the error to occur, give us a printout of your harddisk directory,
make a printout of all settings of the environment variables. If possible,
send us a disk with the text, which causes the errors to occur.

And very important: Without a sufficiently stamped envelope, addresses
to you, we cannot send you an answer, and will not do it either. This is
not malice, but financially necessary. We are students with very low earnings
and can only distribute this software for manufacturing costs if we do not
suffer a loss at it.

Here the addresses:

{\lnarrower
\smallskip
Home address:

Georg He\ss{}mann \parwithoutskip
Oberer Markt 7 \parwithoutskip
8712 Volkach \parwithoutskip
Germany

\smallskip
Study address:

Georg He\ss{}mann \parwithoutskip
Ingling 17 \parwithoutskip
4784 Schardenberg \parwithoutskip
Austria\parwithoutskip

\smallskip
E-Mail:

{\tt hessmann@unipas.fmi.uni-passau.de}
}

%------------------------------------------------------------
\subsection{Questions and Answers}

Here is an attempt at answering some questions in advance.

\staggered{Question: }
\key{Question:} Does this \TeX\ know {\it virtual fonts}?

\key{Answer:}
  No, \TeX\ itself has no knowledge of virtual fonts.
  It only reads the information for the font from the tfm-file
  (\TeX\ Font Metric) belonging to the font, this exists for ``normal'',
  as well as for virtual fonts.

\medskip

\key{Question:} I cannot find {\tt tex}?!?

\key{Answer:}
  {\tt tex} is |virtex| with a format (e.g. plain\TeX\ or \LaTeX) to be
  loaded.

\medskip

\key{Question:} What is a {\it preloaded format\/}?

\key{Answer:}
  On some operating systems, you can stop |virtex| after it has loaded
  the format file and create a so-called {\it core} file. From this core
  file, and the executable file |virtex| you can create a further
  executable file, in which the format file has already been loaded.
  The advantage, a mostly faster loading of |virtex| and formatfile,
  is offset by the disadvantage of the space requirements of the new
  executable file, which is a great deal larger as that of |virtex| only.

\medskip

\key{Question:} I get the following error message, when loading the format
  file {\tt (Fatal format file error; I'm stymied)}.

\key{Answer:}
  All other filetypes (|tfm|, |dvi|, |pk|, $\ldots$) are fully exchangeable
  between different implementations -- on different computers as well --
  The format file takes a special position in that, as it should be
  loadable at the greatest speed possible, and represents an image of
  the internal \TeX arrays. Therefore it cannot be exchanged that easily.
  Workaround: you create a new format file with |initex|.
\endstaggered


\section {Literature}

Without a book, you'll suffer. Even when you partly get \TeX\ very cheaply,
you will not get around buying a book, that introduces you to \TeX\. \TeX\
is so powerful as a programming language, knows more commands than any
DTP program, grumbles in various ways and now and then produces things
that do not make sense. Only a book can help here.

As there is also quite good German literature, I would like to introduce
two books that are worth buying.
%(I was not sure whether I should translate this, but hey, there are people
%trying to keep their languages up :^) -TT)	( :=) (hes) )

{\it Einf\"uhrung in \TeX}, Norbert Schwarz, Addison Wesley, 1988,
ISBN 3-925118-97-7

{\it La\TeX\ -- Eine Einf\"uhrung}, Helmut Kopka, Addison Wesley, 1988,
ISBN 3-89319-136-4

If feel your English is adequate (another smiley -TT) there is only one
choice: The \TeX\ book by the inventor himself.

{\it The \TeX book}, Donald E. Knuth, Addison Wesley, Reading, 1988.

\vfill
Thank's to Thomas Tavoly for translating the docs!\parwithoutskip
Georg He\ss{}mann, 30.\ July 1991.
\par\supereject\end
