summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/altfont
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/altfont
Initial commit
Diffstat (limited to 'macros/latex/contrib/altfont')
-rw-r--r--macros/latex/contrib/altfont/README17
-rw-r--r--macros/latex/contrib/altfont/altfont.dtx561
-rw-r--r--macros/latex/contrib/altfont/altfont.ins52
-rw-r--r--macros/latex/contrib/altfont/altfont.pdfbin0 -> 118566 bytes
-rw-r--r--macros/latex/contrib/altfont/psfont.dtx559
-rw-r--r--macros/latex/contrib/altfont/psfont.ins53
-rw-r--r--macros/latex/contrib/altfont/psfont.pdfbin0 -> 115215 bytes
7 files changed, 1242 insertions, 0 deletions
diff --git a/macros/latex/contrib/altfont/README b/macros/latex/contrib/altfont/README
new file mode 100644
index 0000000000..68d9b249c8
--- /dev/null
+++ b/macros/latex/contrib/altfont/README
@@ -0,0 +1,17 @@
+psfont.dtx is intended as a replacement for psfonts.dtx of psnfss. It uses
+one file for redefining the all default fonts instead of one file for each
+font. It also contains all parts of psfonts.dtx which are not covered by
+this general concept, ie. the pifonts, mathptm and two .fd-files for Adobe
+Symbol and Adobe Zapf Dingbats. This file is specific to PostScript fonts.
+The package works with a style file psfont.sty and a configuration file
+psfont.cfg.
+
+altfont.dtx uses the same concepts as psfont.dtx, but is written in a more
+general way. It can be used with any fonts which are to be used as default
+fonts. It is more powerful than psfont.dtx, but does not contain anything
+PostScript specific. It can be used as a replacement for some parts of
+both psnfss and mfnfss.
+
+Both files require LaTeX2e.
+
+Sebastian Kirsch <Sebastian_Kirsch@kl.maus.de>
diff --git a/macros/latex/contrib/altfont/altfont.dtx b/macros/latex/contrib/altfont/altfont.dtx
new file mode 100644
index 0000000000..093f3cf9cd
--- /dev/null
+++ b/macros/latex/contrib/altfont/altfont.dtx
@@ -0,0 +1,561 @@
+\def\fileversion{1.1} % ^^A -*-latex-*-
+\def\filedate{1996/07/02}
+%\iffalse meta-comment
+%\altfont: A \LaTeXe\ package for using alternative fonts
+%
+%Copyright \copyright\ 1996 Sebastian Marius Kirsch\texttt{%
+% $\langle$sebastian\_kirsch@kl.maus.de$\rangle$}
+%
+%This program is free software; you can redistribute it and/or modify
+%it under the terms of the GNU General Public License as published by
+%the Free Software Foundation; either version 2 of the License, or
+%(at your option) any later version.
+%
+%This program is distributed in the hope that it will be useful,
+%but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License
+%along with this program; if not, write to the Free Software
+%Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%\fi
+%
+%\changes{0.9}{1996/06/29}{Based on \texttt{psfont} v1.0d. Not restricted to
+%PostScript fonts.}
+%\changes{0.9a}{1996/06/30}{Updating documentation. Throwing out most \PS\
+%specific parts.}
+%\changes{1.0}{1996/06/30}{1st public release}
+%\changes{1.0a}{1996/07/01}{\texttt{\textbackslash AvailableFont} can have
+%empty arguments}
+%\changes{1.0a}{1996/07/01}{Adding new documentation.}
+%\changes{1.1}{1996/07/02}{2nd public release }
+%
+% \CheckSum{236}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%
+%\title{\altfont: Using alternative fonts\thanks{This file has version number
+%\fileversion, last revised \filedate.}}
+%
+%\author{Sebastian Marius Kirsch\\
+% \texttt{sebastian\_kirsch@kl.maus.de}}
+%
+%\date{\filedate}
+%
+%\maketitle
+%
+%\begin{abstract}
+%With this package, you can use many alternative fonts with one single
+%package. \psNFSS\ and \mfNFSS\ use one file for every font, while I prefer
+%having everything in one package. Besides, of you load two of the font
+%changing packages, the latter one overwrites the changes of the first
+%one. Having all in one package avoids this.
+%\end{abstract}
+%
+%\section{Introduction}
+%
+%This package is intended as a replacement for some parts of both \psNFSS\ and
+%\mfNFSS. It is a replacement for the parts that actually change the default
+%fonts. It was originally written as a replacement for \textsf{psfonts} of
+%\psNFSS, but I realized that it was not very reasonable to restrict it to
+%PostScript fonts. So it is now not focused on any particular PostScript font,
+%but can be used for any font, \MF\ or PostScript. I'll discuss this in detail
+%in section \ref{sec:psmfnfss}.
+%
+%\section{Installation}
+%
+%The actual package is produced by running \TeX\ on |altfont.ins|. This
+%produces |altfont.sty|, the style file, and |altfont.cfg|, the configuration
+%file. Both files must be moved where \TeX\ can find them.
+%
+%\subsection{The configuration file}
+%
+%\DescribeMacro{\AvailableRMFont}
+%\DescribeMacro{\AvailableRMFont}
+%\DescribeMacro{\AvailableRMFont}
+%\DescribeMacro{\AvailableFont}
+%All available fonts must declared in the configuration file. This is done
+%using the macros |\AvailableRMFont|, |\AvailableSFFont|, |\AvailableTTFont|,
+%and |\AvailableFont|. They have the following syntax:
+%
+%\begin{quote}
+% \cmd{\AvailableRMFont}\oarg{additional code}\marg{long name}\marg{\NFSS\
+% family name}\\
+% \cmd{\AvailableSFFont}\oarg{additional code}\marg{long name}\marg{\NFSS\
+% family name}\\
+% \cmd{\AvailableTTFont}\oarg{additional code}\marg{long name}\marg{\NFSS\
+% family name}\\
+% \cmd{\AvailableFont}\oarg{additional code}\marg{symbolic name}%
+% \marg{roman font}\texttt{\%}\\\marg{sans serif font}\marg{typewriter font}
+%\end{quote}
+%
+%The first argument contains a symbolic name for the font, while the second
+%argument contains the internal name for the family. The symbolic name is to
+%be used as an option to the package. (It is easier to remember Times as
+%\texttt{times} than as \texttt{ptm}.)
+%
+%The optional argument contains code that is executed after the font is
+%loaded. It can be used to e.~g.\ change the font encoding or to redefine some
+%other defaults such as |\bfdefault|.
+%
+%The macro |\AvailableFont| does the same, but for three font families at
+%once. This can be used for font families that have the varinats sans serif
+%and typewriter, e.~g.\ the Computer Modern fonts, as well as for managing a
+%combination of three fonts under one short name. The arguments can also be
+%empty.
+%
+%Typical commands looks like this:
+%
+%\begin{verbatim}
+%\AvailableRMFont{times}{ptm}
+%\AvailableSFFont{helv}{phv}
+%\AvailableTTFont{Courier}{pcr}
+%\AvailableFont[\altfontenc{T1}]{dco}{cmor}{cmoss}{cmott}
+%\end{verbatim}
+%
+%\DescribeMacro{\DefaultRMFont}
+%\DescribeMacro{\DefaultSFFont}
+%\DescribeMacro{\DefaultTTFont}
+%You can also tell \altfont\ about default \PS\ fonts. If the user calls the
+%option |onlyps|, the default fonts are substituted for the fonts he has not
+%defined. This is useful when you do not want to supply every font to be used
+%in the document, but want your document to contain only \PS\ fonts. The
+%syntax of these commands looks like this:
+%
+%\begin{quote}
+% \cmd{\DefaultRMFont}\marg{\NFSS\ family name}\\
+% \cmd{\DefaultSFFont}\marg{\NFSS\ family name}\\
+% \cmd{\DefaultTTFont}\marg{\NFSS\ family name}
+%\end{quote}
+%
+%\DescribeMacro{\altfontenc}
+%If you want to change the font encoding in the \meta{additional code} section
+%of any of the |\Available|\ldots|Font| macros, you have to use |\altfontenc|
+%instead of a plain |\RequirePackage[|\ldots|]{fontenc}|. The reason for this
+%is discussed later. This is the syntax of |\altfontenc|:
+%
+%\begin{quote}
+% \cmd{\altfontenc}\marg{encoding}
+%\end{quote}
+%
+%Generally, you can neither use commands that have
+%optional arguments nor load classes or packages in the \meta{additional code}
+%section.
+%
+%\section{Syntax}
+%
+%You load the package with |\usepackage[|\ldots|]{altfont}|, as usual, with
+%the fonts you want to use in square brackets. Typical commands look like
+%this:
+%
+%\begin{verbatim}
+%\usepackage[palatino,gill,courier]{altfont}
+%\usepackage[newcent,onlyps]{altfont}
+%\usepackage[dco]{altfont}
+%\usepackage[pandora,courier]{altfont}
+%\end{verbatim}
+%
+%\section{\psNFSS\ vs. \mfNFSS}
+%\label{sec:psmfnfss}
+%
+%There are two other popular packages for using alternative fonts with \LaTeX:
+%\psNFSS\ by Sebastian Rahtz, which is responsible for \PS\ fonts, and
+%\mfNFSS\ by Frank Mittelbach and Rainer Sch\"opf, which focuses on
+%\MF\ fonts.
+%
+%In my opinion, it was not very reasonable to divide the font changing between
+%two packages. The fonts look to \LaTeX\ all the same, so why make a
+%difference in the packages?
+%
+%For fonts which are to be used as |\{rm,sf,tt}default| fonts, both packages
+%have little style files which change these defaults. But if you load two of
+%those packages, the latter overwrites the changes of the first one. These
+%packages all do the same, so why not include them into one style file?
+%
+%Well, I did this, and the result is easier to use and safer than the
+%packages from \psNFSS\ and \mfNFSS. Because of these improvements, I would
+%like my package to get included into these packages. (I know, I'm
+%unselfish. ;-)
+%
+%Since \psNFSS\ and \mfNFSS\ focuse on particular fonts, while my package can
+%be used with any font, it is not very likely to be included in either
+%package, though both could make use of it.
+%
+%\section{Legal rubbish}
+%\altfont: A \LaTeXe\ package for using alternative fonts
+%
+%Copyright \copyright\ 1996 Sebastian Marius Kirsch\texttt{%
+% $\langle$sebastian\_kirsch@kl.maus.de$\rangle$}
+%
+%This program is free software; you can redistribute it and/or modify
+%it under the terms of the GNU General Public License as published by
+%the Free Software Foundation; either version 2 of the License, or
+%(at your option) any later version.
+%
+%This program is distributed in the hope that it will be useful,
+%but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License
+%along with this program; if not, write to the Free Software
+%Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+%\StopEventually
+%
+%\section{The \texttt{docstrip} modules}
+%
+%This file contains three modules to direct \texttt{docstrip} in generating the
+%external files:
+%
+%\begin{tabular}[t]{ll}
+%driver & A short driver for producing the documentation\\
+%package & The package itself\\
+%config & The local configuration file\\
+%\end{tabular}
+%
+%\section{Producing the documentation}
+%
+%This short driver can be extracted by \texttt{docstrip} to produce the
+%documentation.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+
+\usepackage{mflogo}
+\providecommand{\MF}{\textsf{METAFONT}} % for those without mflogo.sty
+
+\newcommand*{\NFSS}{\mbox{\textsf{NFSS}}}
+\newcommand*{\psNFSS}{\mbox{\textsf{psNFSS}}}
+\newcommand*{\mfNFSS}{\mbox{\textsf{mfNFSS}}}
+\newcommand*{\altfont}{\textsf{alt\-font}}
+\newcommand*{\PS}{Post\-Script}
+
+\begin{document}
+
+\DocInput{altfont.dtx}
+
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+%\section{The Code}
+%
+%\subsection{Introduction}
+%
+%First we have to introduce ourselves.
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{altfont}%
+ [\filedate\space v\fileversion\space loading alternative fonts]
+% \end{macrocode}
+%
+%\subsection{Switches}
+%
+%Next, we define some switches. They are used to determine whether some fonts
+%have already been loaded, so we can warn the user when he tries to load two
+%colliding fonts.
+%
+% \begin{macrocode}
+\newif\ifrm@set\rm@setfalse
+\newif\ifsf@set\sf@setfalse
+\newif\iftt@set\tt@setfalse
+% \end{macrocode}
+%
+%\subsection{Default \PS\ fonts}
+%
+%\begin{macro}{\DefaultRMFont}
+%\begin{macro}{\DefaultSFFont}
+%\begin{macro}{\DefaultTTFont}
+%These are some commands for changing the default \PS\ fonts.
+%
+% \begin{macrocode}
+\newcommand{\DefaultRMFont}[1]{\renewcommand{\def@rmfont}{#1}}
+\newcommand{\DefaultSFFont}[1]{\renewcommand{\def@sffont}{#1}}
+\newcommand{\DefaultTTFont}[1]{\renewcommand{\def@ttfont}{#1}}
+\newcommand{\def@rmfont}{}
+\newcommand{\def@sffont}{}
+\newcommand{\def@ttfont}{}
+% \end{macrocode}
+%\end{macro}\end{macro}\end{macro}
+%
+%\subsection{Declaring the options}
+%
+%\begin{macro}{\AvailableRMFont}
+%\begin{macro}{\AvailableSFFont}
+%\begin{macro}{\AvailableTTFont}
+%These commands are needed later in the configuration
+%file. There is one command for each font family, ie.\ roman, sans serif or
+%typewriter.
+%
+%They declare their first argument as an option.
+%
+%If the option is called, and the font family has already been defined, a
+%\cmd{\PackageError} is reported. If not, the second argument is defined as
+%the approriate family default.
+%
+%When the family default has successfully been set, the corresponding switch
+%is turned, so it is not redefined anywhere else in this file.
+%
+%The optional argument contains some code that is to be executed when the
+%defaults have been set. This is a very useful hook, e.~g.\ when a certain
+%font family is only available in OT1 or Cork encoding, we can execute a
+%|\altfontenc{OT1}| after the font is loaded. This command is a little hack to
+%get around some limitations of |\newcommand| and |\DeclareOption| and is
+%described in section \ref{sec:altfontenc}. A plain |\usepackage| will not
+%work!
+%
+% \begin{macrocode}
+\newcommand{\AvailableRMFont}[3][]{%
+ \DeclareOption{#2}{%
+ \ifrm@set\PackageError{altfont}{%
+ \protect\rmfamily\space already defined as \rmdefault
+ }{%
+ You tried to load two roman families at the same time,\MessageBreak
+ e.g. times and palatino}
+ \else\renewcommand{\rmdefault}{#3}\rm@settrue
+ #1
+ \fi}
+ }
+\newcommand{\AvailableSFFont}[3][]{%
+ \DeclareOption{#2}{%
+ \ifsf@set\PackageError{altfont}{%
+ \protect\sffamily\space already defined as \sfdefault
+ }{%
+ You tried to load two sans serif families at the same time,\MessageBreak
+ e.g. gill and helvetica}
+ \else\renewcommand{\sfdefault}{#3}\sf@settrue
+ #1
+ \fi}
+ }
+\newcommand{\AvailableTTFont}[3][]{%
+ \DeclareOption{#2}{%
+ \iftt@set\PackageError{altfont}{%
+ \protect\ttfamily\space already defined as \ttdefault
+ }{%
+ You tried to load two typewriter families at the same time,\MessageBreak
+ e.g. courier and typewriter}
+ \else\renewcommand{\ttdefault}{#3}\tt@settrue
+ #1
+ \fi}
+ }
+% \end{macrocode}
+%\end{macro}\end{macro}\end{macro}
+%
+%\subsection{One command fits all}
+%
+%\begin{macro}{\AvailableFont}
+%With the macro |\AvailableFont|, all three defaults are set with one
+%option. This is useful for managing combinations of three fonts under one
+%name, as well as for fonts that have the variants sans serif and
+%typewriter. (The Computer Modern fonts are one of those, and Lucida, I
+%think.)
+%
+%|\AvailableFont| may also have empty arguments.
+%
+% \begin{macrocode}
+\newcommand*{\AvailableFont}[5][]{%
+ \DeclareOption{#2}{%
+ \def\@temprm{#3}\def\@tempsf{#4}\def\@temptt{#5}
+ \ifx\empty\@temprm\else
+ \ifrm@set\PackageError{altfont}{%
+ \protect\rmfamily\space already defined as \rmdefault
+ }{%
+ You tried to load two roman families at the same time,
+ \MessageBreak e.g. times and palatino}
+ \else\renewcommand{\rmdefault}{#3}\rm@settrue
+ \fi
+ \fi
+ \ifx\empty\@tempsf\else
+ \ifsf@set\PackageError{altfont}{%
+ \protect\sffamily\space already defined as \sfdefault
+ }{%
+ You tried to load two sans serif families at the same time,
+ \MessageBreak e.g. gill and helvetica}
+ \else\renewcommand{\sfdefault}{#4}\sf@settrue
+ \fi
+ \fi
+ \ifx\empty\@temptt\else
+ \iftt@set\PackageError{altfont}{%
+ \protect\ttfamily\space already defined as \ttdefault
+ }{%
+ You tried to load two typewriter families at the same time,
+ \MessageBreak e.g. courier and typewriter}
+ \else\renewcommand{\ttdefault}{#5}\tt@settrue
+ \fi
+ \fi
+ #1
+ }
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\subsection{Loading font encodings in \texttt{\textbackslash Available\ldots
+%Font}}
+%\label{sec:altfontenc}
+%
+%\begin{macro}{\altfontenc}
+%Working on this package, I discovered two limitations of |\newcommand| and
+%|\DeclareOption|.
+%
+%\begin{itemize}
+%\item You cannot use a command with an optional argument in the argument of
+% another command.
+%\item You cannot load a package with |\RequirePackage| or |\usepackage| in the
+% \meta{code} section of a |\DeclareOption| command.
+%\end{itemize}
+%
+%I wanted to be able to load different font encodings in the optional argument
+%of the |\Available|\ldots|Font| command, so I had to work around these
+%limitations. The result is this command:
+%
+% \begin{macrocode}
+\newcommand*{\altfontenc}[1]{\PassOptionsToPackage{#1}{fontenc}%
+ \AtEndOfPackage{\RequirePackage{fontenc}}}
+% \end{macrocode}
+%\end{macro}
+%
+%By passing the option to \texttt{fontenc} with |\PassOptionsToPackage|, I
+%avoid having an optional argument to |\RequirePackage|. By delaying the
+%|\RequirePackage|, I avoid loading a package in an option. Ugly but useful.
+%
+%\subsection{Loading the configuration file}
+%
+%Next, the configuration file is loaded. If it is not found, an error is
+%issued, because the package is quite useless without it.
+%
+% \begin{macrocode}
+\InputIfFileExists{altfont.cfg}{}{%
+ \PackageError{altfont}{%
+ No local configuration file found
+ }{%
+ The altfont package was loaded without a local\MessageBreak
+ configuration file, so it doesn't know which fonts\MessageBreak
+ are available.}
+ }
+%</package>
+% \end{macrocode}
+%
+%\subsection{The configuration file}
+%
+%The configuration file looks like this:
+%
+%\subsubsection{Introduction}
+%
+%As usual\ldots
+%
+% \begin{macrocode}
+%<*config>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{altfont.cfg}%
+ [\filedate\space v\fileversion\space Local configuration for altfont.sty]
+% \end{macrocode}
+%
+%\subsubsection{Declaring default PostScript fonts}
+%
+%Here, the default PostScript fonts are defined. They are needed later, if the
+%author does not define all fonts he wants to use, but wants his document to
+%contain only \PS\ fonts. Strictly spoken, this does not belong to a package
+%for \PS\ and \MF\ fonts, but I think it is nonetheless very useful.
+%
+% \begin{macrocode}
+\DefaultRMFont{ptm}
+\DefaultSFFont{phv}
+\DefaultTTFont{pcr}
+% \end{macrocode}
+%
+%\subsubsection{Available fonts}
+%
+%Now the available fonts are defined. They are divided into three
+%categories---roman fonts, sans serif fonts and typewriter fonts, as it is
+%done in \LaTeXe\ itself.
+%
+%They are defined using the |\Available|\ldots|Font| macros. These macros
+%define a symbolic name to be used as an option to the package, and take the
+%name of the \NFSS\ font family as a second argument.
+%
+% \begin{macrocode}
+\AvailableRMFont{times}{ptm}
+\AvailableRMFont{palatino}{ppl}
+\AvailableRMFont{newcent}{pnc}
+
+\AvailableSFFont{helv}{phv}
+\AvailableSFFont{gill}{pgs}
+
+\AvailableTTFont{courier}{pcr}
+
+\AvailableFont[\altfontenc{T1}]{dco}{cmor}{cmoss}{cmott}
+\AvailableFont[\altfontenc{OT1}%
+ \DeclareFontSubstitution{OT1}{pnr}{m}{n}%
+ \renewcommand{\bfdefault}{b}%
+ \renewcommand{\itdefault}{sl}]{pandora}{pnr}{pnss}{pntt}
+%</config>
+% \end{macrocode}
+%
+%In case you wonder, the dco fonts are another package I wrote. They consist
+%of the regular dc fonts with oldstyle digits. I didn't release it yet,
+%contact me if you are interested.
+%
+%And that's the configuration. Of course one could do much more with this
+%configuration file, declaring new options and all. It's probably the biggest
+%hook a package could have. :-)
+%
+%\subsection{\texttt{onlyps}: Using only \PS\ fonts}
+%
+%\begin{macro}{onlyps}
+%This option redefines all other family defaults that have not yet been
+%\cmd{\renewcommand}ed to \PS\ fonts. It uses the default fonts as defined in
+%the configuration file. If no default fonts have been defined, an error is
+%reported.
+%
+% \begin{macrocode}
+%<*package>
+\DeclareOption{onlyps}{
+ \ifrm@set\else
+ \ifx\empty\def@rmfont
+ \PackageWarning{altfont}{No default roman font defined!}
+ \else\renewcommand{\rmdefault}{\def@rmfont}\fi
+ \fi
+ \ifsf@set\else
+ \ifx\empty\def@sffont
+ \PackageWarning{altfont}{No default sans serif font defined!}
+ \else\renewcommand{\sfdefault}{\def@sffont}\fi
+ \fi
+ \iftt@set\else
+ \ifx\empty\def@ttfont
+ \PackageWarning{altfont}{No default typewriter font defined!}
+ \else\renewcommand{\ttdefault}{\def@ttfont}\fi
+ \fi
+ }
+% \end{macrocode}
+%\end{macro}
+%
+%\subsection{The end}
+%
+%At last, the options are processed.
+%
+% \begin{macrocode}
+\ProcessOptions
+%</package>
+% \end{macrocode}
+%
+%\Finale
+\endinput
diff --git a/macros/latex/contrib/altfont/altfont.ins b/macros/latex/contrib/altfont/altfont.ins
new file mode 100644
index 0000000000..67683e73c7
--- /dev/null
+++ b/macros/latex/contrib/altfont/altfont.ins
@@ -0,0 +1,52 @@
+% -*-tex-*-
+%%altfont: A LaTeX2e package for using alternative fonts
+%%Copyright (C) 1996 Sebastian Marius Kirsch <sebastian_kirsch@kl.maus.de>
+%%
+%%This program is free software; you can redistribute it and/or modify
+%%it under the terms of the GNU General Public License as published by
+%%the Free Software Foundation; either version 2 of the License, or
+%%(at your option) any later version.
+%%
+%%This program is distributed in the hope that it will be useful,
+%%but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%%GNU General Public License for more details.
+%%
+%%You should have received a copy of the GNU General Public License
+%%along with this program; if not, write to the Free Software
+%%Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+\def\batchfile{altfont.ins}
+\input docstrip.tex
+
+\keepsilent
+
+\preamble
+
+altfont: A LaTeX2e package for using alternative fonts
+Copyright (C) 1996 Sebastian Marius Kirsch <sebastian_kirsch@kl.maus.de>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+\endpreamble
+
+\generateFile{altfont.sty}{f}{\from{altfont.dtx}{package}}
+\generateFile{altfont.cfg}{f}{\from{altfont.dtx}{config}}
+% \generateFile{altfont.drv}{f}{\from{altfont.dtx}{driver}}
+
+\endinput
+
+
+
diff --git a/macros/latex/contrib/altfont/altfont.pdf b/macros/latex/contrib/altfont/altfont.pdf
new file mode 100644
index 0000000000..3b96f06dc4
--- /dev/null
+++ b/macros/latex/contrib/altfont/altfont.pdf
Binary files differ
diff --git a/macros/latex/contrib/altfont/psfont.dtx b/macros/latex/contrib/altfont/psfont.dtx
new file mode 100644
index 0000000000..f2750b7af5
--- /dev/null
+++ b/macros/latex/contrib/altfont/psfont.dtx
@@ -0,0 +1,559 @@
+\def\fileversion{1.1}
+\def\filedate{1996/06/30}
+%\iffalse meta-comment
+%\psfont: A \LaTeXe\ package for using PostScript fonts
+%
+%Copyright \copyright\ 1996 Sebastian Marius Kirsch\texttt{%
+% $\langle$sebastian\_kirsch@kl.maus.de$\rangle$}
+%
+%This program is free software; you can redistribute it and/or modify
+%it under the terms of the GNU General Public License as published by
+%the Free Software Foundation; either version 2 of the License, or
+%(at your option) any later version.
+%
+%This program is distributed in the hope that it will be useful,
+%but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License
+%along with this program; if not, write to the Free Software
+%Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%\fi
+%
+%\changes{0.9}{1996/05/18}{First version using \texttt{doc} and
+% \texttt{docstrip}}
+%\changes{1.0}{1996/05/31}{First public release}
+%\changes{1.0a}{1996/06/27}{Renamed to psfont. Updating documentation.}
+%\changes{1.0b}{1996/06/28}{Optional argument for \cmd{\Available}\ldots}
+%\changes{1.0c}{1996/06/29}{Inserted some code from psnfss. Some very
+%enlightning thoughts about the future of this package.}
+%\changes{1.0d}{1996/06/29}{New command \texttt{AvailableFont}. Why split this
+%up between \psNFSS\ and \textsf{mf}\NFSS?}
+%\changes{1.0e}{1996/06/30}{New syntax for \texttt{Default}\ldots\texttt{Font}}
+%\changes{1.1}{1996/06/30}{Second public release}
+%
+% \CheckSum{364}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%
+%\title{\psfont: A general way to use\\
+% PostScript fonts\thanks{This file has version number \fileversion, last
+% revised \filedate.}}
+%
+%\author{Sebastian Marius Kirsch\\
+% \texttt{sebastian\_kirsch@kl.maus.de}}
+%
+%\date{\filedate}
+%
+%\maketitle
+%
+%\begin{abstract}
+% This package provides a general way to use PostScript fonts
+% without handling with thousands of style files, one for each font you want
+% to use. It works with a style file, \texttt{psfont.sty}, which contains all
+% the macros, and a configuration file, \texttt{psfont.cfg}, which tells the
+% style file about the available fonts.
+%\end{abstract}
+%
+%\section{Introduction}
+%
+%This package lets you use one single package to load every PostScript font you
+%would want. You don't have to load one file for each font anymore, and the
+%package even warns you if you try to load two contradicting fonts at once,
+%e.~g. two roman fonts. If you use the option \texttt{onlyps}, it substitutes
+%the default PS fonts for the families you have not specified.
+%
+%The package is intended as a replacement for the \textsf{psfonts} package of
+%\psNFSS, by Sebastian Rahtz
+%(\texttt{s.rahtz@elsevier.co.uk}). \textsf{psfonts} is not very consequent,
+%because some of its style files redefine all three defaults, while
+%others only change one.
+%
+%\section{The \texttt{docstrip} modules}
+%
+%This file contains five modules to direct \texttt{docstrip} in generating the
+%external files:
+%
+%\begin{tabular}[t]{ll}
+%driver & A short driver for producing the documentation\\
+%package & The package itself\\
+%config & The local configuration file\\
+%Upsy & A font definition file for Adobe Symbol, from \psNFSS\\
+%Upzd & A font definition file for Adobe Zapf Dingbats, from \psNFSS\\
+%\end{tabular}
+%
+%\StopEventually
+%
+%\section{Producing the documentation}
+%
+%This short driver can be extracted by \texttt{docstrip} to produce the
+%documentation.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+
+\newcommand{\NFSS}{\textsf{NFSS}}
+\newcommand{\psNFSS}{\textsf{psNFSS}}
+\newcommand{\psfont}{\texttt{psfont}}
+
+\begin{document}
+
+\DocInput{psfont.dtx}
+
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+%\section{The Code}
+%
+%\subsection{Introduction}
+%
+%First we have to introduce ourselves.
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{psfont}%
+ [\filedate\space v\fileversion\space loading PostScript fonts]
+% \end{macrocode}
+%
+%\subsection{Switches}
+%
+%Next, we define some switches. They are used to determine whether some fonts
+%have already been loaded, so we can warn the user when he tries to load two
+%colliding fonts.
+%
+% \begin{macrocode}
+\newif\ifrm@set\rm@setfalse
+\newif\ifsf@set\sf@setfalse
+\newif\iftt@set\tt@setfalse
+% \end{macrocode}
+%
+%\subsection{The default fonts}
+%
+%\DescribeMacro{\DefaultRMFont}
+%\DescribeMacro{\DefaultSFFont}
+%\DescribeMacro{\DefaultTTFont}
+%These are some commands for changing the default fonts.
+%
+%\noindent\cmd{\DefaultRMFont}\marg{\NFSS\ font family}\\
+%\cmd{\DefaultSFFont}\marg{\NFSS\ font family}\\
+%\cmd{\DefaultTTFont}\marg{\NFSS\ font family}
+%
+% \begin{macrocode}
+\newcommand{\DefaultRMFont}[1]{\renewcommand{\def@rmfont}{#1}}
+\newcommand{\DefaultSFFont}[1]{\renewcommand{\def@sffont}{#1}}
+\newcommand{\DefaultTTFont}[1]{\renewcommand{\def@ttfont}{#1}}
+\newcommand{\def@rmfont}{}
+\newcommand{\def@sffont}{}
+\newcommand{\def@ttfont}{}
+% \end{macrocode}
+%
+%\subsection{Declaring the options}
+%
+%\DescribeMacro{\AvailableRMFont}
+%\DescribeMacro{\AvailableRMFont}
+%\DescribeMacro{\AvailableRMFont}
+%These commands are needed later in the configuration
+%file. There is one command for each font family, ie.\ roman, sans serif or
+%typewriter.
+%
+% \noindent
+% \cmd{\AvailableRMFont}\oarg{additional code}\marg{long name}\marg{\NFSS\
+% family name}\\
+% \cmd{\AvailableSFFont}\oarg{additional code}\marg{long name}\marg{\NFSS\
+% family name}\\
+% \cmd{\AvailableTTFont}\oarg{additional code}\marg{long name}\marg{\NFSS\
+% family name}
+%
+%They declare their first argument as an option.
+%
+%If the option is called, and the font family has already been defined, a
+%\cmd{\PackageError} is reported. If not, the second argument is defined as
+%the approriate family default.
+%
+%When the family default has successfully been set, the approriate switch is
+%turned, so it is not redefined anywhere else in this file.
+%
+%The optional argument contains some code that is to be executed when the
+%defaults have been set. I do not need this now, but this hook could be useful
+%later.
+%
+% \begin{macrocode}
+\newcommand{\AvailableRMFont}[3][]{%
+ \DeclareOption{#2}{%
+ \ifrm@set\PackageError{psfont}{%
+ \protect\rmfamily\space already defined as \rmdefault
+ }{%
+ You tried to load two roman families at the same time,\MessageBreak
+ e.g. times and palatino}
+ \else\renewcommand{\rmdefault}{#3}\rm@settrue
+ #1
+ \fi}
+ }
+
+\newcommand{\AvailableSFFont}[3][]{%
+ \DeclareOption{#2}{%
+ \ifsf@set\PackageError{psfont}{%
+ \protect\sffamily\space already defined as \sfdefault
+ }{%
+ You tried to load two sans serif families at the same time,\MessageBreak
+ e.g. gill and helvetica}
+ \else\renewcommand{\sfdefault}{#3}\sf@settrue
+ #1
+ \fi}
+ }
+
+\newcommand{\AvailableTTFont}[3][]{%
+ \DeclareOption{#2}{%
+ \iftt@set\PackageError{psfont}{%
+ \protect\ttfamily\space already defined as \ttdefault
+ }{%
+ You tried to load two typewriter families at the same time,\MessageBreak
+ e.g. courier and typewriter}
+ \else\renewcommand{\ttdefault}{#3}\tt@settrue
+ #1
+ \fi}
+ }
+% \end{macrocode}
+%
+%\subsection{One command fits all}
+%
+%\DescribeMacro{\AvailableFont}
+%With the macro |\AvailableFont|, all three defaults are set with one
+%option. This is useful for managing combinations of three fonts under one
+%name, as well as for fonts that have the variants sans serif and
+%typewriter. (I'm told Lucida is one of those.)
+%
+% \begin{macrocode}
+\newcommand{\AvailableFont}[5][]{%
+ \DeclareOption{#2}{%
+ \ifrm@set\PackageError{psfont}{%
+ \protect\rmfamily\space already defined as \rmdefault
+ }{%
+ You tried to load two roman families at the same time,\MessageBreak
+ e.g. times and palatino}
+ \else\renewcommand{\rmdefault}{#3}\rm@settrue
+ \fi
+ \ifsf@set\PackageError{psfont}{%
+ \protect\sffamily\space already defined as \sfdefault
+ }{%
+ You tried to load two sans serif families at the same time,\MessageBreak
+ e.g. gill and helvetica}
+ \else\renewcommand{\sfdefault}{#4}\sf@settrue
+ \fi
+ \iftt@set\PackageError{psfont}{%
+ \protect\ttfamily\space already defined as \ttdefault
+ }{%
+ You tried to load two typewriter families at the same time,\MessageBreak
+ e.g. courier and typewriter}
+ \else\renewcommand{\ttdefault}{#5}\tt@settrue
+ \fi
+ #1
+ }
+}
+% \end{macrocode}
+%
+%\subsection{Loading the configuration file}
+%
+%Next, the configuration file is loaded. If it is not found, an error is
+%issued, because the package is quite useless without it.
+%
+% \begin{macrocode}
+\InputIfFileExists{psfont.cfg}{}{%
+ \PackageError{psfont}{%
+ No local configuration file found
+ }{%
+ The psfont package was loaded without a local\MessageBreak
+ configuration file, so it doesn't know which fonts\MessageBreak
+ are available.}
+ }
+%</package>
+% \end{macrocode}
+%
+%\subsection{The configuration file}
+%
+%The configuration file looks like this:
+%
+%\subsubsection{Introduction}
+%
+%As usual\ldots
+%
+% \begin{macrocode}
+%<*config>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{psfont.cfg}
+ [\filedate\space v\fileversion\space Local configuration for psfont.sty]
+% \end{macrocode}
+%
+%\subsubsection{Declaring default fonts}
+%
+%Here, the default PS fonts are defined. They are needed later, if the author
+%does not define all PS fonts he wants to use, but wants his document to
+%contain only PS fonts.
+%
+% \begin{macrocode}
+\DefaultRMFont{ptm}
+\DefaultSFFont{phv}
+\DefaultTTFont{pcr}
+% \end{macrocode}
+%
+%\subsubsection{Available fonts}
+%
+%Now the available PS fonts are defined. They are divided into three
+%categories, roman fonts, sans serif fonts and typewriter fonts, as it is done
+%in \LaTeXe\ itself.
+%
+%They are defined using the \cmd{\Available}\ldots\ macros. These macros
+%define a symbolic name to be used as an option to the package, and take the
+%name of the \NFSS\ font family as a second argument.
+%
+% \begin{macrocode}
+\AvailableRMFont{times}{ptm}
+\AvailableRMFont{palatino}{ppl}
+\AvailableRMFont{newcent}{pnc}
+
+\AvailableSFFont{helv}{phv}
+\AvailableSFFont{gill}{pgs}
+
+\AvailableTTFont{courier}{pcr}
+%</config>
+% \end{macrocode}
+%
+% And that's the configuration. Of course one could do much more with this
+% configuration file, declaring new options and all. It's probably the biggest
+% hook a package could have. :-)
+%
+%\subsection{\texttt{onlyps}: Using only PS fonts}
+%
+%\DescribeEnv{onlyps}
+%This option redefines all other family defaults that have not yet been
+%\cmd{\renewcommand}ed to PS fonts. It uses the default fonts as defined in
+%the configuration file. If no default fonts have been defined, it reports a
+%warning and does nothing.
+%
+% \begin{macrocode}
+%<*package>
+\DeclareOption{onlyps}{
+ \ifrm@set\else
+ \ifx\empty\def@rmfont
+ \PackageWarning{psfont}{No default roman font defined!}
+ \else\renewcommand{\rmdefault}{\def@rmfont}\fi
+ \fi
+ \ifsf@set\else
+ \ifx\empty\def@sffont
+ \PackageWarning{psfont}{No default sans serif font defined!}
+ \else\renewcommand{\sfdefault}{\def@sffont}\fi
+ \fi
+ \iftt@set\else
+ \ifx\empty\def@ttfont
+ \PackageWarning{psfont}{No default typewriter font defined!}
+ \else\renewcommand{\ttdefault}{\def@ttfont}\fi
+ \fi
+ }
+% \end{macrocode}
+%
+%\subsection{Parts of \textsf{psfonts}}
+%
+%\textit{The \psfont\ package ist ultimately intended as a replacement for
+%\textsf{psfonts} of \psNFSS. I therefore use the code of some files of
+%\textsf{psfonts} and wrap it up in an option. All code and comments of this
+%section are from \textsf{psfonts}, v5.2 by Sebastian Rahtz. Many thanks to
+%Sebastian for letting me use his code!}
+%
+%\DescribeEnv{pifont}
+% \begin{macrocode}
+\DeclareOption{pifont}{
+% \end{macrocode}
+% Now some useful commands for Pi fonts (Dingbats, Symbol etc); they
+% all assume you know the character number of the (unmapped) font
+% \begin{macrocode}
+\newcommand{\Pifont}[1]{\fontfamily{#1}\fontencoding{U}%
+\fontseries{m}\fontshape{n}\selectfont}
+\newcommand{\Pisymbol}[2]{{\Pifont{#1}\char#2}}
+\newcommand{\Pifill}[2]{\leaders\hbox{\makebox[0.2in]{%
+ \Pisymbol{#1}{#2}}}\hfill\kern\z@}
+\newcommand{\Piline}[2]{\par\noindent\hspace{0.5in}\Pifill{#1}{#2}%
+ \hspace{0.5in}\kern\z@\par}
+\newenvironment{Pilist}[2]%
+{\begin{list}{\Pisymbol{#1}{#2}}{}}%
+{\end{list}}%
+% \end{macrocode}
+% A Pi number generator (from ideas by David Carlisle), for use in
+% lists where items are suffixed by symbols taken in sequence from a
+% Pi font. Usage is in lists just like enumerate.
+%
+% |\Pinumber| outputs the appropriate symbol, where |#2| is the name of a
+% \LaTeX\ counter and |#1| is the font family.
+% \begin{macrocode}
+\def\Pinumber#1#2{\protect\Pisymbol{#1}{\arabic{#2}}}
+\newenvironment{Piautolist}[2]{%
+\ifnum \@enumdepth >3 \@toodeep\else
+ \advance\@enumdepth \@ne
+% \end{macrocode}
+% We force the labels and cross-references into a very plain style (eg
+% no brackets around `numbers', or dots after them).
+% \begin{macrocode}
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \expandafter\def\csname p@enum\romannumeral\the\@enumdepth\endcsname{}%
+ \expandafter\def\csname labelenum\romannumeral\the\@enumdepth\endcsname{%
+ \csname theenum\romannumeral\the\@enumdepth\endcsname}%
+ \expandafter\def\csname theenum\romannumeral\the\@enumdepth\endcsname{%
+ \Pinumber{#1}{enum\romannumeral\the\@enumdepth}}%
+ \list{\csname label\@enumctr\endcsname}{%
+ \@nmbrlisttrue
+ \def\@listctr{\@enumctr}%
+ \setcounter{\@enumctr}{#2}%
+ \addtocounter{\@enumctr}{-1}%
+ \def\makelabel##1{\hss\llap{##1}}}
+\fi
+}{\endlist}
+% \end{macrocode}
+% All the old Dingbat commands still work.
+% \begin{macrocode}
+\newcommand{\ding}{\Pisymbol{pzd}}
+\def\dingfill#1{\leaders\hbox{\makebox[0.2in]{\Pisymbol{pzd}{#1}}}\hfill}
+\def\dingline#1{\Piline{pzd}{#1}}
+\newenvironment{dinglist}[1]{\begin{Pilist}{pzd}{#1}}%
+ {\end{Pilist}}
+\newenvironment{dingautolist}[1]{\begin{Piautolist}{pzd}{#1}}%
+ {\end{Piautolist}}
+{\Pifont{pzd}}
+{\Pifont{psy}}
+}
+% \end{macrocode}
+%\DescribeEnv{mathptm}
+% \begin{macrocode}
+\DeclareOption{mathptm}{
+% \end{macrocode}
+%This package loads the Adobe Times fonts and the mathptm fonts;
+%The virtual fonts are produced by fontinst; they
+%can be built by running tex on
+%fontptcm.tex from the fontinst package.
+% \begin{macrocode}
+% The main text family is Times Roman
+\def\rmdefault{ptm}
+\DeclareSymbolFont{operators} {OT1}{ptmcm}{m}{n}
+\DeclareSymbolFont{letters} {OML}{ptmcm}{m}{it}
+\DeclareSymbolFont{symbols} {OMS}{pzccm}{m}{n}
+\DeclareSymbolFont{largesymbols}{OMX}{psycm}{m}{n}
+\DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n}
+\DeclareSymbolFont{italic} {OT1}{ptm}{m}{it}
+% \end{macrocode}
+% If we're in compatibility mode, defined |\mathbf| and |\mathit|.
+% \begin{macrocode}
+\@ifundefined{mathbf}{}{\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}}
+\@ifundefined{mathit}{}{\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}}
+% \end{macrocode}
+% An |\omicron| command, to fill the gap.
+% \begin{macrocode}
+\DeclareMathSymbol{\omicron}{0}{operators}{`\o}
+% \end{macrocode}
+% Reduce the space around math operators
+% \begin{macrocode}
+\thinmuskip=2mu
+\medmuskip=2.5mu plus 1mu minus 1mu
+\thickmuskip=4mu plus 1.5mu minus 1mu
+% \end{macrocode}
+% No bold math.
+% \begin{macrocode}
+\def\boldmath{%
+ \@warning{there is no bold Symbol font}%
+ \global\let\boldmath=\relax
+}
+\DeclareMathSizes{5}{5}{5}{5}
+\DeclareMathSizes{6}{6}{5}{5}
+\DeclareMathSizes{7}{7}{5}{5}
+\DeclareMathSizes{8}{8}{6}{5}
+\DeclareMathSizes{9}{9}{7}{5}
+\DeclareMathSizes{10}{10}{7.4}{6}
+\DeclareMathSizes{10.95}{10.95}{8}{6}
+\DeclareMathSizes{12}{12}{9}{7}
+\DeclareMathSizes{14.4}{14.4}{10.95}{8}
+\DeclareMathSizes{17.28}{17.28}{12}{10}
+\DeclareMathSizes{20.74}{20.74}{14.4}{12}
+\DeclareMathSizes{24.88}{24.88}{17.28}{14.4}
+}
+% \end{macrocode}
+%
+%\subsection{The end}
+%
+%At last, the options are processed.
+%
+% \begin{macrocode}
+\ProcessOptions
+%</package>
+% \end{macrocode}
+%
+%\section{Additional font definitions from \textsf{psfonts}}
+%
+%\textit{This is again code from \textsf{psfonts} by Sebastian Rahtz. It
+%contains some font definitions for Adobe Symbol and Adobe Zapf Dingbats.}
+%
+% \subsection{Adobe Symbol font}
+% \begin{macrocode}
+%<*Upsy>
+\typeout{File \space Upsy.fd\space loading \space Adobe\space Symbol}%
+\DeclareFontFamily{U}{psy}{}%
+\DeclareFontShape{U}{psy}{m}{n}{<->psyr}{}%
+\DeclareFontShape{U}{psy}{m}{i}{<->ssub * psy/m/n}{}%
+%</Upsy>
+% \end{macrocode}
+% \subsection{Adobe Zapf Dingbats}
+% \begin{macrocode}
+%<*Upzd>
+\typeout{File \space Upzd.fd\space loading \space Adobe\space ZapfDingbats}%
+\DeclareFontFamily{U}{pzd}{}%
+\DeclareFontShape{U}{pzd}{m}{n}{<->pzdr}{}%
+%</Upzd>
+% \end{macrocode}
+%
+%\Finale
+%
+%\section{ToDo}
+%
+%There is mainly one things that this package is missing till now:
+%
+%\begin{itemize}
+%\item If the package has been loaded without any local options, it should act
+%as if the option \texttt{onlyps} had been called. I unfortunately do not know
+%how to detect this.
+%\end{itemize}
+%
+%\section{Legal rubbish}
+%\psfont: A \LaTeXe\ package for using PostScript fonts
+%
+%Copyright \copyright\ 1996 Sebastian Marius Kirsch\texttt{%
+% $\langle$sebastian\_kirsch@kl.maus.de$\rangle$}
+%
+%This program is free software; you can redistribute it and/or modify
+%it under the terms of the GNU General Public License as published by
+%the Free Software Foundation; either version 2 of the License, or
+%(at your option) any later version.
+%
+%This program is distributed in the hope that it will be useful,
+%but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License
+%along with this program; if not, write to the Free Software
+%Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+\endinput
diff --git a/macros/latex/contrib/altfont/psfont.ins b/macros/latex/contrib/altfont/psfont.ins
new file mode 100644
index 0000000000..c32120eec5
--- /dev/null
+++ b/macros/latex/contrib/altfont/psfont.ins
@@ -0,0 +1,53 @@
+%%psfont: A LaTeX2e package for using PostScript fonts
+%%Copyright (C) 1996 Sebastian Marius Kirsch <sebastian_kirsch@kl.maus.de>
+%%
+%%This program is free software; you can redistribute it and/or modify
+%%it under the terms of the GNU General Public License as published by
+%%the Free Software Foundation; either version 2 of the License, or
+%%(at your option) any later version.
+%%
+%%This program is distributed in the hope that it will be useful,
+%%but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%%GNU General Public License for more details.
+%%
+%%You should have received a copy of the GNU General Public License
+%%along with this program; if not, write to the Free Software
+%%Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+\def\batchfile{psfont.ins}
+\input docstrip.tex
+
+\keepsilent
+
+\preamble
+
+psfont: A LaTeX2e package for using PostScript fonts
+Copyright (C) 1996 Sebastian Marius Kirsch <sebastian_kirsch@kl.maus.de>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+\endpreamble
+
+\generateFile{psfont.sty}{f}{\from{psfont.dtx}{package}}
+\generateFile{psfont.cfg}{f}{\from{psfont.dtx}{config}}
+% \generateFile{psfont.drv}{f}{\from{psfont.dtx}{driver}}
+% \generateFile{Upsy.fd}{f}{\from{psfont.dtx}{Upsy}}
+% \generateFile{Upzd.fd}{f}{\from{psfont.dtx}{Upzd}}
+
+\endinput
+
+
+
diff --git a/macros/latex/contrib/altfont/psfont.pdf b/macros/latex/contrib/altfont/psfont.pdf
new file mode 100644
index 0000000000..56d1adb8fb
--- /dev/null
+++ b/macros/latex/contrib/altfont/psfont.pdf
Binary files differ