%%% ====================================================================
%%%  @LaTeX-file{
%%%     author          = "Mario Wolczko",
%%%     version         = "3.02",
%%%     date            = "10 September 1992",
%%%     time            = "21:51:18 BST",
%%%     filename        = "pslatex.tex",
%%%     address         = "Dept of Computer Science
%%%                        The University of Manchester
%%%                        Oxford Road
%%%                        Manchester M13 9PL
%%%                        UK",
%%%     telephone       = "+44-61-275-6146",
%%%     FAX             = "+44-61-275-6236",
%%%     checksum        = "15768 505 2706 19915",
%%%     email           = "mario@cs.man.ac.uk (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "PS-LaTeX",
%%%     supported       = "yes",
%%%     docstring       = "Documentation for PS-LaTeX",
%%%  }
%%% ====================================================================
% Document Type: LaTeX
% Master File: pslatex.tex
% PSLaTeX.tex
% Documentation for PS-LaTeX
% process with pslatex for the whole thing; should be OK with LaTeX
% except that some examples won't appear

% Last edited: Mon Apr 19 20:43:56 1993 by mario (Mario Wolczko) on madarch

\documentstyle{article}

\title{A PostScript-based \LaTeX}

\author{Mario Wolczko\\
Dept.~of Computer Science\\
The University\\
Manchester M13 9PL\\
U.K.\\
{\tt mario@cs.man.ac.uk, uknet!man.cs!mario}}

\date{10 September 1992 \\
Version 3.02}

\newcommand{\cs}[1]{{\tt \string#1}}
\newcommand{\ps}{PostScript}

\makeatletter
\ifx\pslatex\@undefined
  \let\psonly\cs
  \gdef\pslatex{{\normalshape PS-\LaTeX}}
\else
  \def\psonly{}
\fi
\makeatother

\hyphenation{Post-Script}

\renewcommand\LaTeX{{\normalshape L\kern-.36em\raise.3ex\hbox{\sc a}%
    \kern-.15emT\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\begin{document}
\maketitle

\section{Overview}

\pslatex\ is a modified version of \LaTeX.  Rather than use the
Computer Modern family of fonts (CM) developed by Donald Knuth,
\pslatex\ tries to use \ps\footnote{\ps\ is a trademark of Adobe
Systems Incorporated} fonts wherever possible.  This has a number of
advantages:
\begin{itemize}
\item	There are a large number of fonts available for \ps\ devices.
	Format designers can choose fonts more appropriate to their
	documents, rather than being restricted to the CM set.
\item	Sending a document to a \ps\ device can be much faster, as
	large character bitmaps need not be sent.  Also, the disk
	space required by the bitmap fonts can be saved.
\item	\ps\ fonts can be arbitrarily scaled and rotated by the \ps\
	device.
\end{itemize}
However, there are also drawbacks:
\begin{itemize}
\item	At present there are no \ps\ fonts that can entirely take the
	place of the {\sc cmex, cmsy} and {\sc cmmi} fonts, and also
	the \LaTeX\ circle, line and symbol fonts, without some loss
	of compatibility with \LaTeX.\footnote{This is probably not
	true anymore, but I haven't really investigated this issue
	since \pslatex\ was originally created in 1989.}
	Therefore, these fonts are still required.
\item	The scalability of the \ps\ fonts implies that they are not
	as good at all point sizes as fonts specially designed to a
	size.
\item	The CM and \ps\ encodings of character positions are quite
	different; this means that substantial modification is
	required to \LaTeX, and that any files that depend on
	specific character encodings (using \cs\char\ or \cs\mathchar,
	for instance) may not work properly with \pslatex -- the
	AMS-\LaTeX\ package is a case in point.
\item	The device driver that converts from \TeX\footnote{\TeX\ is a
	trademark of the American Mathematical Society} {\sc dvi} format to
	\ps\ must be capable of coping with device-resident fonts.
\item	Some of the information required by \TeX\ (such as that for
	positioning of accents) is unavailable in the \ps\ fonts, or
	only available in different forms, which means that output may
	not be of optimal quality.
\item	Documents produced with \pslatex\ cannot be previewed using
	simple {\sc dvi} previewers, but will require a \ps\
	previewer.
\end{itemize}

Having enumerated all the drawbacks, it's worth saying that most of
them are not likely to affect the casual user of \pslatex\ (except
perhaps the last -- and even that shouldn't be a problem as there's a
{\em free\/} \ps\ previewer called {\sc GhostScript} available from
the Free Software Foundation).  However, sophisticated users should
bear in mind the limitations.  A detailed list of extensions and
restrictions to \LaTeX\ can be found in Sections \ref{extensions}
and~\ref{restrictions}.

In use, \pslatex\ should behave just as \LaTeX\ does (except for the
restrictions documented below).  No modifications should be required
to \LaTeX\ documents; \pslatex\ is {\em not\/} a style or style
option; it replaces the standard \LaTeX\ ``format'' file ({\tt
lplain.fmt} or {\tt latex.fmt}) with another, called {\tt
pslatex.fmt}.  This can be invoked explicitly by {\sc virtex}, so:
\begin{verbatim}
     $ virtex
     This is TeX, C Version 3.14t3 (no format preloaded)
     **&pslatex \input file
     (file.tex
     PostScript-based LaTeX (Times/Helvetica/Courier), Version 1.2 (NFSS)
     ...
\end{verbatim}
Alternatively, your \LaTeX\ system administrator may choose to make a
``preloaded'' version of \pslatex, perhaps called {\tt pslatex}.  This
can be used in the same way as \LaTeX:
\begin{verbatim}
     $ pslatex file
     This is TeX, C Version 3.14t3 (format=pslatex 92.4.10)
     (file.tex
     PostScript-based LaTeX (Times/Helvetica/Courier), Version 1.2 (NFSS)
     ...
\end{verbatim}
Installation instructions can be found in Section~\ref{install}.

\section{The New Font Selection Scheme}

The latest version of \pslatex\ uses the New Font Selection Scheme of
Mittelbach and Sch\"opf, to make a huge variety of \ps\ fonts
available to the \pslatex\ user.\footnote{See ``The New Font Family
Selection -- User Interface to Standard \LaTeX'', by Frank Mittelbach and
Rainer Sch\"opf, {\em TUGboat}, {\bf 11}(2) (or the corrected version
distributed with the implementation), for a complete description.}

Using this scheme, you can use \cs\rm, \cs\sf\ or \cs\tt\ to select
from three font families, then select normal or bold weights using
either \cs\mediumseries\ or \cs\bf, then select either normal,
slanted, italic or small-caps shapes using \cs\normalseries, \cs\sl,
\cs\it\ or \cs\sc.  Additionally, in \pslatex\ you can change the
assignment of families to the \cs\rm, \cs\sf\ and \cs\tt\ commands
too, using \cs\romanfont, \cs\sansfont\ or \cs\typewriterfont.

For example, the default settings use fonts available on all \ps\
implementations, and are set with:
\begin{verbatim}
    \romanfont{times}
    \sansfont{helveticareduced}
    \typewriterfont{courier}
\end{verbatim}
(See the accompanying ``fonts'' document for a more complete
explanation of these.)  To make Palatino the roman font in use, use
the commands
\begin{verbatim}
    \romanfont{palatino}\rm
\end{verbatim}
in your document.  The full spectrum of choice available with
\pslatex\ as distributed is enumerated in the table below.  It should
be straightforward for the system installer to extend the choice to
any other \ps\ fonts you have.
\begin{center}
  \begin{tabular}{|l|l|}
    \hline
    Family & Choices\\
    \hline
    \cs\rm & Times\footnote{Times is a trademark
of Allied Corporation.  Helvetica and Palatino are registered trademarks
of Allied Corporation.} ({\tt times}), Palatino ({\tt palatino}),
    	  	Bookman ({\tt bookman}), \\
	   &	New-Century Schoolbook ({\tt newcenturyschlbk})\\
    \cs\sf & Helvetica ({\tt helvetica}),
    		Helvetica Reduced ({\tt helveticareduced}),\\
	   & Avant Garde ({\tt avantgarde})\\
    \cs\tt & Courier ({\tt courier})\\
    \hline
  \end{tabular}
\end{center}
Also, if you choose, you can use the sans-serif fonts for \cs\rm,
and the roman fonts for \cs\sf\ (e.g.,~if you want a sans-serif
document).  It will be confusing to type \cs\rm\ to get sans-serif,
of course, but it will work.


\section{Extensions to \LaTeX\ within \pslatex}\label{extensions}

(If you have used \LaTeX\ rather than \pslatex\ to process this
document the examples will not be printed properly.)

A number of new commands are available in \pslatex, due to extra
characters in the standard \ps\ fonts.  These are:

\begin{itemize}
\item
	The \cs\og\ command is used to produce the ogonek accent
	(e.g.,~\verb;\og c; is \psonly\og c).
\item
	The commands \cs\registered, \cs\copyright\ and \cs\trademark\
	produce the symbols
	\psonly\registered\psonly\copyright\psonly\trademark.  Within
	an \cs\sf\ environment, these are in a sans-serif font, thus:
	{\sf \psonly\registered\psonly\copyright\psonly\trademark}.
\item
	The following new characters are available:
	\begin{center}
	\begin{tabular}{lc@{\quad}lc}
	\cs\cent		& \psonly\cent&
	\cs\yen			& \psonly\yen\\
	\cs\currency		& \psonly\currency&
	\cs\guillemotleft	& \psonly\guillemotleft\\
	\cs\guillemotright	& \psonly\guillemotright&
	\cs\guilsinglleft	& \psonly\guilsinglleft\\
	\cs\guilsinglright	& \psonly\guilsinglright&
	\cs\quotesingle		& \psonly\quotesingle\\
	\cs\quotesinglbase	& \psonly\quotesinglbase&
	\cs\quotedblbase	& \psonly\quotedblbase\\
	\cs\ellipsis		& \psonly\ellipsis&
	\cs\perthousand		& \psonly\perthousand\\
	\cs\ordfeminine		& \psonly\ordfeminine&
	\cs\ordmasculine	& \psonly\ordmasculine\\
	\end{tabular}
	\end{center}

\item
	The following new symbols are available in math mode:
	\begin{center}
	\begin{tabular}{lc@{\quad}lc}
	\cs\therefore	& $\psonly\therefore$&
	\cs\cret	& $\psonly\cret$\\
	\cs\seconds	& $\psonly\seconds$&
	\cs\fulldiamondsuit&$\psonly\fulldiamondsuit$\\
	\cs\degree	& $\psonly\degree$&
	\cs\fullheartsuit&$\psonly\fullheartsuit$\\
	\end{tabular}
	\end{center}
\item
	Within math mode upright Greek letters
	$\psonly\ualpha,\ldots,\psonly\uomega$ are available by using the
	names \cs\ualpha,\ldots,\penalty0 \cs\uomega, etc.
\item	The command \cs\pslatex\ produces the text ``\pslatex''.
\end{itemize}
Note that these characters are not available in standard \LaTeX; if
you use any of them in your document you will not be able
to process it at a site which does not have \pslatex.


\section{Features of \LaTeX\ unavailable in
\pslatex}\label{restrictions}

The following \LaTeX\ commands and features are not supported in
\pslatex:
\begin{itemize}
\item
	The \cs\boldmath\ and \cs\unboldmath\ commands (there is no
	bold \ps\ symbol font)
\item
	The \cs\j\ and \cs\jmath\ commands (letter j without a dot)
\item
	The \cs\varepsilon\ and \cs\varrho\ Greek letters
\item
	The \cs\Longleftarrow\ and \cs\Longrightarrow\ symbols
\item
	The \cs\prime\ command produces a superscript prime, rather
	than a normal (large) one.  This means that \verb;$x^\prime$;
	will produce a tiny prime.  Rather than use \cs\prime\ you are
	advised to use the \verb;'; command, so that instead of
	\verb;$x^\prime$; you should type \verb;$x'$;.
\item
	In \LaTeX, the \cs\mit\ command changes the behaviour of the
	commands \cs\Gamma, \cs\Delta, etc., so that the letters are
	italicised; in \pslatex\ it doesn't.  In \pslatex, you can use
	\cs\slGamma, \cs\slDelta, \ldots, \cs\slOmega, to get slanted
	upper-case Greek letters.
\end{itemize}
Use of these commands will cause a warning message to be typed on your
terminal (and entered into the log file);  you will only get one such
warning for each command.  The {\sc dvi} file will contain
approximations to the desired output.  With the exception of these few
commands, all standard \LaTeX\ commands should work as described in
the \LaTeX\ book.



\section{Installing \pslatex}\label{install}

The \pslatex\ extension to \LaTeX\ is composed of two new files, {\tt
psplain.tex} and {\tt morefont.tex}, and two replacement files for
those in the NFSS code:
{\tt fontdef.psl}, {\tt lfonts.psl}.

\sloppy To install \pslatex, you will need the New Font Selection
Scheme code -- this is available from archive servers.  As part of
this code, you will get files called {\tt newlfont.sty}, {\tt
preload.min}, {\tt fontdef.tex} and {\tt lfonts.new}.  You will also
need a \ps\ driver that can use device-resident \ps\ fonts.  As
distributed, \pslatex\ is set up to work with Tomas Rokicki's {\tt
dvips} PostScript driver, and also has fonts and files to go with that
(see later).  Before attempting to install \pslatex\ make sure you can
build a working \LaTeX\ using the New Font Selection Scheme, install a
\ps\ driver that you think is suitable ({\tt dvips} is recommended),
and check that you can print, using the \ps\ driver, {\sc dvi} files
generated by the NFSS \LaTeX\ .

\fussy
Then, to build \pslatex, follow the same procedure as you would to
build \LaTeX\ with the New Font Selection Scheme (this varies from
site to site), but use {\tt pslplain} where you would use {\tt
lplain}.  When the NFSS code prompts you for filenames, use the
following substitutions:
\begin{center}
  \begin{tabular}{|l|l|}
    \hline
    Default NFSS file & \pslatex\ file\\
    \hline
    \tt fontdef.tex & \tt fontdef.psl\\
    \tt lfonts.new & \tt lfonts.psl\\
    \hline
  \end{tabular}
\end{center}
When choosing which fonts to preload, use {\tt preload.min} from the
NFSS code.  When prompted for the {\tt xxxlfont.sty} file, choose {\tt
newlfont.sty}.  (If you wish, you can also preload some fonts.  {\tt
preload.psl} includes a typical selection.  You can also use the {\tt
oldlfont.psl} included with \pslatex\ in place of {\tt xxxlfont.sty}
if you do not want to use the NFSS mechanism.)

For example, to build a
{\tt .fmt} file under {\sc unix}\footnote{{\sc unix} is a trademark of
AT\&T} you would normally type the command
\begin{verbatim}
     initex lplain '\dump'
\end{verbatim}
To build {\tt pslplain.fmt} you should type
\begin{verbatim}
     initex pslplain '\dump'
\end{verbatim}
Here is a partial transcript of what should happen:\footnote{In this
transcript, any files that are prefixed with \verb;/usr/...; are part
of the \LaTeX\ or NFSS distributions.}

{\small
\begin{verbatim}
   This is TeX, C Version 3.14t3 (INITEX)  10 APR 1992 16:19
   **pslplain \dump
   (pslplain.tex (/usr/common/lib/tex3/macros/LaTeX/lplain.tex
   Preloading the plain format: codes, registers,
   ...
   Loading hyphenation patterns for US english.
   (/usr/common/lib/tex3/macros/Dist/hyphen.tex))
   ! I can't find file `lfonts'.
   l.1344 \input lfonts

   Please type another input file name: lfonts.psl
   (lfonts.psl
   ....
   ! I can't find file `fontdef.tex'.
   l.618 \input fontdef.tex

   Please type another input file name: fontdef.psl
   (fontdef.psl
   File: `fontdef.max'  v1.1k <91/11/26> (FMi and RmS)
   English Documentation      <91/11/26> (FMi and RmS)

   Includes Font/Shape Definitions for:

       Times Roman, Helvetica, Courier, Symbol,
       Computer Modern Maths,
       LaTeX Symbols.

   Defining fonts for PostScript Times family at scale 1, series m
   Defining fonts for PostScript Times family at scale 1, series b
   Defining fonts for PostScript Helvetica-Reduced family at scale .85, series m
   Defining fonts for PostScript Helvetica-Reduced family at scale .85, series b
   Defining fonts for PostScript Courier family at scale 1, series sx
   Defining fonts for PostScript Courier family at scale 1, series sxb
   Defining fonts for PostScript Courier family at scale 1, series m
   Defining fonts for PostScript Courier family at scale 1, series b
   )
   ! I can't find file `preload.tex'.
   l.619 \input preload.tex

   Please type another input file name: preload.min
   (/usr/common/lib/tex3/macros/Mainz/preload.min
   ...
   ! I can't find file `xxxlfont.sty'.
   l.777 \input xxxlfont.sty

   Please type another input file name: newlfont.sty
   (/usr/common/lib/tex3/macros/Mainz/newlfont.sty
   ...
   Beginning to dump on file pslplain.fmt
   ...
   No pages of output.
   Transcript written on pslplain.log.
\end{verbatim}}

\section{\ps\ {\sc tfm} files and code}

You will also need {\sc tfm} and {\sc vf} files for the \ps\ fonts
that you intend to use.  A set of these is distributed with \pslatex.
You may already have {\sc tfm} files for such fonts, but these may not
work with \pslatex\ (see next section).  You are recommended to use
those distributed with \pslatex.  Put the {\sc tfm} and {\sc vf}
files in the appropriate directories in your \TeX\ installation.

The names of these font files have been chosen to fit in with the
conventions used by {\tt dvips}.\footnote{See the {\tt dvips}
documenation for an explanation of the conventions.} A suitable
addition to the {\tt dvips} file, {\tt psfonts.map}, which is used to
tell {\tt dvips} about these fonts, is also included: {\tt
psfonts.ext}.  This should be appended to your installed {\tt
psfonts.map} file.  Also, the file {\tt thicken.ps} should be placed
in the same directory as the installed {\tt psfonts.map} file, and it
should be mentioned in the {\tt config.ps} file using the {\tt h}
command, thus:
\begin{verbatim}
  h thicken.ps
\end{verbatim}
(The syntax of some of the {\tt dvips} configuration files changed at
version 5.482.  If you have an older version, use the files from the
{\tt old-dvips} subdirectory.)

\subsection{Possible Problems}

\begin{description}
\item[Insufficient font capacity]
	As distributed, \pslatex\ loads many fonts.  You may
	find that when using \pslatex\ that the font capacity is exceeded.  If
	this is so your \TeX\ guru can increase the font capacity of
	{\sc virtex} (this is usually done by
	altering the initialisation of {\tt font\_max} in the
	change-file for {\tt tex.web}), or reduce the number of
	preloaded fonts (see {\tt lfonts.tex}).

\item[Device driver problems]
	Your device driver must be capable of recognising font names
	that represent \ps\ device-resident fonts.   Furthermore, your
	device driver must not perform any mapping between the
	encoding of characters within the {\sc dvi} file and the \ps\ fonts;
	this is done by \pslatex.

	The \ps\ fonts contain characters in positions 128--255;
	\pslatex\ uses many of these characters.  Your device driver
	must be able to cope with the {\sc dvi} commands that access these
	characters.

	The particular fonts used by \pslatex\ can vary from site to
	site; a description of the set used by the distribution
	version can be found in a separate document.

	\pslatex\ works well with Tomas Rokicki's {\tt dvips} program;
	suitable configuration files are provided with \pslatex.

\item[Tiny characters]
	Some \ps\ font {\sc tfm} files in existence have a design size
	of 1pt; \pslatex\ expects the design
	size to be 10pt.  Use the {\sc tfm} files distributed with
	\pslatex.

\item[Problems when using math]
	If you get a message saying something about there not being
	enough {\tt fontdimens} or that the symbol fonts are
	``insufficient'', then your {\sc tfm} files for Symbol and
	Symbol-Oblique are not up to the job.  Use the {\sc tfm} files
	distributed with \pslatex.

\item[Missing characters] (such as the ligatures ``fi'' and ``fl'').
	Your {\sc tfm} files are not matched to what \pslatex\ expects; use
	those distributed with \pslatex.

\item[PostScript errors] If you're using {\t dvips}, check to see
you're using the right set of configuration files (see previous
section).
\end{description}

\section{Acknowledgements}

Many thanks to Graeme McKinstry for providing a set of files that
formed the basis of \pslatex.  The NFSS implementation is based on
that by Mittelbach and Sch\"opf, and some of the font-loading code is
based on a version by Sebastian Rahtz.

Thanks are also due to those who have been patient testers (Michael
Fisher, Graham Gough, David Carlisle and Bill Mitchell), to all those
who reported bugs (Nick North, Alasdair Rawsthorne, Ralf Kneuper, John
Fitzgerald, Jon Warbrick, Robert Brown, Graham Carter, Andrew Barnard
and Michael Fisher) and to Leslie Lamport for useful suggestions.

\end{document}
