summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/sauterfonts
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/sauterfonts
Initial commit
Diffstat (limited to 'macros/latex/contrib/sauterfonts')
-rw-r--r--macros/latex/contrib/sauterfonts/README12
-rw-r--r--macros/latex/contrib/sauterfonts/sauterfonts.fdd496
-rw-r--r--macros/latex/contrib/sauterfonts/sauterfonts.ins95
-rw-r--r--macros/latex/contrib/sauterfonts/sbbm.sty32
4 files changed, 635 insertions, 0 deletions
diff --git a/macros/latex/contrib/sauterfonts/README b/macros/latex/contrib/sauterfonts/README
new file mode 100644
index 0000000000..f8e96b6c31
--- /dev/null
+++ b/macros/latex/contrib/sauterfonts/README
@@ -0,0 +1,12 @@
+These files provide access to many fonts in Sauter's collection (which became
+Knappen's and Holin's collection). Mainly the slitex and cyrillic fonts are
+missing.
+
+To extract the files type
+ latex sauterfonts.ins
+(tex, virtex or initex can be used instead). To format the sparse documentation
+type
+ latex sauterfonts.fdd
+and read about unpacking options, usage etc. instead of the files themselves.
+
+1998/11/11 Klaus G. Barthelmann (barthel@informatik.uni-mainz.de)
diff --git a/macros/latex/contrib/sauterfonts/sauterfonts.fdd b/macros/latex/contrib/sauterfonts/sauterfonts.fdd
new file mode 100644
index 0000000000..dfefdb236e
--- /dev/null
+++ b/macros/latex/contrib/sauterfonts/sauterfonts.fdd
@@ -0,0 +1,496 @@
+%%
+%% Copyleft 1998 Klaus G. Barthelmann
+%<*driver>
+% This file is provided under the GNU General Public License version 2
+\documentclass{article}
+\begin{document}
+\title{The \textit{sauterfonts} archive}
+\author{Klaus G. Barthelmann}
+\date{1998/11/11}
+\maketitle
+\section{What you find in the archive}
+When I tried to typeset my documents in a higher quality than usual, I noticed
+with surprise that there seemed to be no easy way to access the whole range of
+Sauter's (Knappen's, Holin's) fonts. (As you probably know, these fonts are
+available in every pointsize and can be generated on the fly in today's \TeX\
+installations.) To get around this problem, this archive contains replacements
+for the following standard files:
+\begin{itemize}
+\item
+ \texttt{exscale.sty}, \texttt{omxcmex.fd} (normally unchanged),
+ \texttt{omlcmm.fd}, \texttt{omlcmr.fd} (unchanged), \texttt{omscmr.fd}
+ (unchanged), \texttt{omscmsy.fd}, \texttt{ot1cmdh.fd}, \texttt{ot1cmfib.fd},
+ \texttt{ot1cmfr.fd}, \texttt{ot1cmr.fd}, \texttt{ot1cmss.fd},
+ \texttt{ot1cmtt.fd}, \texttt{ot1cmvtt.fd}, \texttt{ucmr.fd},
+ \texttt{ucmss.fd}, \texttt{ucmtt.fd}, \texttt{ulasy.fd} from the
+ \textit{base} distribution;
+\item
+ \texttt{umsa.fd} and \texttt{umsb.fd} from the \textit{amsfonts}
+ distribution;
+\item
+ \texttt{ubbold.fd}, \texttt{ursfs.fd} and \texttt{ustmary.fd} (which should
+ be \texttt{ustmry.fd}) from the \textit{jknappen} distribution (older
+ versions of \texttt{ubbold.fd} and \texttt{ustmry.fd} are provided together
+ with the fonts);
+\item
+ \texttt{uwasy.fd} from the \textit{wasysym} distribution;
+\item
+ \texttt{ubbm.fd}, \texttt{ubbmdh.fd}, \texttt{ubbmfib.fd},
+ \texttt{ubbmss.fd}, \texttt{ubbmtt.fd}, \texttt{ubbmvtt.fd} (partly) from the
+ \textit{bbm} distribution.
+\end{itemize}
+However, all filenames are preceded by a prefix (normally \texttt{s}). See
+below. Besides that, there is the file \texttt{sbbm.sty} which is meant to
+replace the corresponding file from the \textit{bbm} distribution.
+
+\section{Before you unpack this archive}
+What files you get depends on some settings. They can be found near the top
+of the driver file. Note that it is not necessary (and probably not even
+desirable) to change any of them.
+
+To keep the modified versions separate from the original files, every filename
+is preceded by a prefix (normally \texttt{s} for ``Sauter''). You can change it
+to your liking, but you should not omit it.\footnote{As I think you know how to
+rename the files anyway, I decided to provide this simple solution.} Although
+the files are most effective without any prefix, let me warn you: At least you
+must not give them away to anybody else. The standard files and their contents
+are copyrighted, no modifications are allowed. The reason behind this is to
+guarantee portability of documents between all \LaTeXe\ installations. With the
+modified files, documents may look differently than normal. After all, this is
+the purpose of this distribution.
+
+If you add the option \texttt{ec}, font names will obey the same format as in
+the EC~fonts. That is, the font size is multiplied by~100 and occupies four
+digits. If you add the option \texttt{scalex}, the \texttt{cmex} font is
+scaled by default. (I am not sure that this has any useful effect.) Normally,
+this is the task of the package \textit{exscale}. (But note that the file
+\texttt{sexscale.sty} is affected by the option \texttt{ec} and not by the
+option \texttt{scalex}.)
+
+\section{How you use these files}
+The file \texttt{sexscale.sty} (funny name \dots) is used in the obvious way
+with
+\begin{flushleft}
+ \verb'\usepackage{sexscale}'
+\end{flushleft}
+in place of the package \textit{exscale}. If you changed the prefix, it will
+issue a warning that its name differs from the filename.
+
+The font definition files are input as you need them. (Sorry, either you have
+to fool \LaTeXe's font loading mechanism as indicated or you must replace the
+standard packages containing font and symbol declarations.) At least you should
+type
+\begin{flushleft}
+ \verb'\makeatletter'
+\\ \verb'\input{somlcmm.fd}'
+\\ \verb'\input{somscmsy.fd}'
+\\ \verb'\input{somxcmex.fd}'
+\\ \verb'\input{sucmr.fd}'
+\\ \verb'\input{sot1cmr.fd}'
+\\ \verb'\input{sot1cmss.fd}'
+\\ \verb'\input{sot1cmtt.fd}'
+\\ \verb'\makeatother'
+\end{flushleft}
+to override the preloaded font families in your \LaTeXe\ format (if you did not
+provide configuration files \texttt{fontmath.cfg} and\slash or
+\texttt{fonttext.cfg}). You can insert these (and similar) lines even before
+the \verb'\documentclass' command.
+
+\section{The package \textit{sbbm}}
+If you type
+\begin{flushleft}
+ \verb'\usepackage{sbbm}'
+\end{flushleft}
+the math font command \verb'\mathbb' is (re)defined and the symbols
+\verb'\Lparen', \verb'\Rparen', \verb'\Lbrack', \verb'\Rbrack' are introduced.
+Unlike the same command in the \textit{amsfonts} package, \verb'\mathbb'
+applies to lowercase letters and the digits 1, 2 as well. In my opinion, the
+blackboard bold letters from the \textit{bbm} font look better than their AMS
+counterparts in combination with the roman font. (Another alternative outside
+Sauter's collection is the font \textit{doublestroke}.)
+
+Strictly speaking, there are also some options:
+\begin{flushleft}
+ \verb'\usepackage['\textit{family and\slash or shape}\verb']{sbbm}'
+\end{flushleft}
+will load the blackboard bold symbols in a different family and\slash or shape.
+Available families are \texttt{rm} (the default), \texttt{sf} and also
+\texttt{tt}. Note that there is no bold typewriter font. Available shapes are
+\texttt{up} (the default) and \texttt{sl}. I do not claim that anything else
+than the default is desirable.
+
+\section{Finally \dots}
+Please direct complaints, suggestions etc.\ (for unchanged versions) to
+me,\newline
+\texttt{barthel@informatik.uni-mainz.de}. Enjoy!
+\end{document}
+%</driver>
+%<exscale>\NeedsTeXFormat{LaTeX2e}
+%<exscale>\ProvidesPackage{sexscale}
+%<exscale> [1998/11/11 Modified LaTeX package exscale]
+%<omxcmex>\ProvidesFile{somxcmex.fd}
+%<omlcmm>\ProvidesFile{somlcmm.fd}
+%<omlcmr>\ProvidesFile{somlcmr.fd}
+%<omscmr>\ProvidesFile{somscmr.fd}
+%<omscmsy>\ProvidesFile{somscmsy.fd}
+%<ot1cmdh>\ProvidesFile{sot1cmdh.fd}
+%<ot1cmfib>\ProvidesFile{sot1cmfib.fd}
+%<ot1cmfr>\ProvidesFile{sot1cmfr.fd}
+%<ot1cmr>\ProvidesFile{sot1cmr.fd}
+%<ot1cmss>\ProvidesFile{sot1cmss.fd}
+%<ot1cmtt>\ProvidesFile{sot1cmtt.fd}
+%<ot1cmvtt>\ProvidesFile{sot1cmvtt.fd}
+%<ubbm>\ProvidesFile{subbm.fd}
+%<ubbmdh>\ProvidesFile{subbmdh.fd}
+%<ubbmfib>\ProvidesFile{subbmfib.fd}
+%<ubbmss>\ProvidesFile{subbmss.fd}
+%<ubbmtt>\ProvidesFile{subbmtt.fd}
+%<ubbmvtt>\ProvidesFile{subbmvtt.fd}
+%<ubbold>\ProvidesFile{subbold.fd}
+%<ucmr>\ProvidesFile{sucmr.fd}
+%<ucmss>\ProvidesFile{sucmss.fd}
+%<ucmtt>\ProvidesFile{sucmtt.fd}
+%<ulasy>\ProvidesFile{sulasy.fd}
+%<umsa>\ProvidesFile{sumsa.fd}
+%<umsb>\ProvidesFile{sumsb.fd}
+%<ursfs>\ProvidesFile{sursfs.fd}
+%<ustmary>\ProvidesFile{sustmry.fd}
+%<uwasy>\ProvidesFile{suwasy.fd}
+%<!exscale> [1998/11/11 Modified LaTeX font definitions]
+%<*omxcmex&scalex|family>
+\providecommand*\sauter@family[5]{%
+%<*ec>
+ \DeclareFontShape{#1}{#2}{#3}{#4}{%
+ <5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88><29.86>%
+ <35.83>genb*#5}{}}
+%</ec>
+%<*!ec>
+ \DeclareFontShape{#1}{#2}{#3}{#4}{%
+ <5><6><7><8><9><10><12>gen*#5%
+ <10.95>#511<14.4>#514<17.28>#517<20.74>#520% shouldn't this be 21?
+ <24.88>#525<29.86>#530<35.83>#536% not sure that the last two will work
+ }{}}
+%</!ec>
+%</omxcmex&scalex|family>
+%<*ttfamily>
+\providecommand*\sauter@ttfamily[5]{%
+%<*ec>
+ \DeclareFontShape{#1}{#2}{#3}{#4}{%
+ <5><6><7><8>#50800%
+ <9><10><10.95><12><14.4><17.28><20.74><24.88><29.86>%
+ <35.83>genb*#5}{}}
+%</ec>
+%<*!ec>
+ \DeclareFontShape{#1}{#2}{#3}{#4}{%
+ <5><6><7><8>#58%
+ <9><10><12>gen*#5%
+ <10.95>#511<14.4>#514<17.28>#517<20.74>#520% shouldn't this be 21?
+ <24.88>#525<29.86>#530<35.83>#536% not sure that the last two will work
+ }{}}
+%</!ec>
+%</ttfamily>
+%<*exscale>
+\sauter@family{OMX}{cmex}{m}{n}{cmex}
+\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
+\newdimen\big@size
+\addto@hook\every@math@size{\setbox\z@\vbox{\hbox{$($}\kern\z@}%
+ \global\big@size 1.2\ht\z@}
+\def\bBigg@#1#2{%
+ {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}}
+\def\big{\bBigg@\@ne}
+\def\Big{\bBigg@{1.5}}
+\def\bigg{\bBigg@\tw@}
+\def\Bigg{\bBigg@{2.5}}
+%</exscale>
+%<*omxcmex>
+\DeclareFontFamily{OMX}{cmex}{}
+%<*scalex>
+\sauter@family{OMX}{cmex}{m}{n}{cmex}
+%</scalex>
+%<*!scalex>
+\DeclareFontShape{OMX}{cmex}{m}{n}{%
+ <->sfixed*cmex10%
+ }{}
+%</!scalex>
+%</omxcmex>
+%<*omlcmm>
+\DeclareFontFamily{OML}{cmm}{\skewchar\font127 }
+\sauter@family{OML}{cmm}{m}{it}{cmmi}
+\sauter@family{OML}{cmm}{b}{it}{cmmib}
+\DeclareFontShape{OML}{cmm}{bx}{it}%
+ {<->ssub*cmm/b/it}{}
+%</omlcmm>
+%<*omlcmr>
+\DeclareFontFamily{OML}{cmr}{\skewchar\font127 }
+\DeclareFontShape{OML}{cmr}{m}{n}%
+ {<->ssub*cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{it}%
+ {<->ssub*cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{sl}%
+ {<->ssub*cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{sc}%
+ {<->ssub*cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{n}%
+ {<->ssub*cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{it}%
+ {<->ssub*cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{sl}%
+ {<->ssub*cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{sc}%
+ {<->ssub*cmm/b/it}{}
+%</omlcmr>
+%<*omscmr>
+\DeclareFontFamily{OMS}{cmr}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmr}{m}{n}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{it}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{sl}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{sc}%
+ {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{n}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{it}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{sl}%
+ {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{sc}%
+ {<->ssub*cmsy/b/n}{}
+%</omscmr>
+%<*omscmsy>
+\DeclareFontFamily{OMS}{cmsy}{\skewchar\font48 }
+\sauter@family{OMS}{cmsy}{m}{n}{cmsy}
+\sauter@family{OMS}{cmsy}{b}{n}{cmbsy}
+%</omscmsy>
+%<*ot1cmdh>
+\DeclareFontFamily{OT1}{cmdh}{\hyphenchar\font45 }
+\sauter@family{OT1}{cmdh}{m}{n}{cmdunh}
+%</ot1cmdh>
+%<*ot1cmfib>
+\DeclareFontFamily{OT1}{cmfib}{\hyphenchar\font45 }
+\sauter@family{OT1}{cmfib}{m}{n}{cmfib}
+%</ot1cmfib>
+%<*ot1cmfr>
+\DeclareFontFamily{OT1}{cmfr}{\hyphenchar\font45 }
+\sauter@family{OT1}{cmfr}{m}{n}{cmff}
+\sauter@family{OT1}{cmfr}{m}{it}{cmfi}
+%</ot1cmfr>
+%<*ot1cmr>
+\DeclareFontFamily{OT1}{cmr}{\hyphenchar\font45 }
+\sauter@family{OT1}{cmr}{m}{n}{cmr}
+\sauter@family{OT1}{cmr}{m}{sl}{cmsl}
+\sauter@family{OT1}{cmr}{m}{it}{cmti}
+\sauter@family{OT1}{cmr}{m}{sc}{cmcsc}
+%<<COMMENT
+% Warning: please note that the upright shape below is
+% used for the \pounds symbol of LaTeX. So this
+% font definition shouldn't be removed.
+%
+%COMMENT
+\sauter@family{OT1}{cmr}{m}{ui}{cmu}
+%%%%%%% bold series
+\sauter@family{OT1}{cmr}{b}{n}{cmb}
+%%%%%%%% bold extended series
+\sauter@family{OT1}{cmr}{bx}{n}{cmbx}
+\sauter@family{OT1}{cmr}{bx}{sl}{cmbxsl}
+\sauter@family{OT1}{cmr}{bx}{it}{cmbxti}
+%<<COMMENT
+%\sauter@family{OT1}{cmr}{bx}{sc}{cmbxsc}
+% Again this is necessary for a correct \pounds symbol in
+% the cmr fonts Hopefully the dc/ec font layout will take
+% over soon.
+%
+%COMMENT
+\DeclareFontShape{OT1}{cmr}{bx}{ui}
+ {<->ssub*cmr/m/ui}{}
+%</ot1cmr>
+%<*ot1cmss>
+\DeclareFontFamily{OT1}{cmss}{\hyphenchar\font45 }
+\sauter@family{OT1}{cmss}{m}{n}{cmss}
+%<<COMMENT
+% Font undefined, therefore substituted
+%COMMENT
+\DeclareFontShape{OT1}{cmss}{m}{it}
+ {<->sub*cmss/m/sl}{}
+\sauter@family{OT1}{cmss}{m}{sl}{cmssi}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{OT1}{cmss}{m}{sc}
+ {<->sub*cmr/m/sc}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{OT1}{cmss}{m}{ui}
+ {<->sub*cmr/m/ui}{}
+%%%%%%%% semibold condensed series
+\sauter@family{OT1}{cmss}{sbc}{n}{cmssdc}
+
+%%%%%%%%% bold extended series
+\sauter@family{OT1}{cmss}{bx}{n}{cmssbx}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{OT1}{cmss}{bx}{ui}
+ {<->sub*cmr/bx/ui}{}
+%</ot1cmss>
+%<*ot1cmtt>
+\DeclareFontFamily{OT1}{cmtt}{\hyphenchar \font\m@ne}
+\sauter@ttfamily{OT1}{cmtt}{m}{n}{cmtt}
+%%%%%% make sure subst shapes are available
+\sauter@ttfamily{OT1}{cmtt}{m}{it}{cmitt}
+\sauter@ttfamily{OT1}{cmtt}{m}{sl}{cmsltt}
+\sauter@ttfamily{OT1}{cmtt}{m}{sc}{cmtcsc}
+\DeclareFontShape{OT1}{cmtt}{m}{ui}
+ {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{OT1}{cmtt}{bx}{n}
+ {<->ssub*cmtt/m/n}{}
+\DeclareFontShape{OT1}{cmtt}{bx}{it}
+ {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{OT1}{cmtt}{bx}{ui}
+ {<->ssub*cmtt/m/it}{}
+%</ot1cmtt>
+%<*ot1cmvtt>
+\DeclareFontFamily{OT1}{cmvtt}{\hyphenchar\font45 }
+\sauter@ttfamily{OT1}{cmvtt}{m}{n}{cmvtt}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{OT1}{cmvtt}{m}{it}
+ {<->sub*cmvtt/m/n}{}
+%</ot1cmvtt>
+%<*ubbm>
+\DeclareFontFamily{U}{bbm}{}
+\sauter@family{U}{bbm}{m}{n}{bbm}
+\sauter@family{U}{bbm}{m}{sl}{bbmsl}
+%%%%%%% bold series
+\sauter@family{U}{bbm}{b}{n}{bbmb}
+%%%%%%%% bold extended series
+\sauter@family{U}{bbm}{bx}{n}{bbmbx}
+\sauter@family{U}{bbm}{bx}{sl}{bbmbxsl}
+%</ubbm>
+%<*ubbmdh>
+\DeclareFontFamily{U}{bbmdh}{}
+\sauter@family{U}{bbmdh}{m}{n}{bbmdunh}
+%</ubbmdh>
+%<*ubbmfib>
+\DeclareFontFamily{U}{bbmfib}{}
+\sauter@family{U}{bbmfib}{m}{n}{bbmfib}
+%</ubbmfib>
+%<*ubbmss>
+\DeclareFontFamily{U}{bbmss}{}
+\sauter@family{U}{bbmss}{m}{n}{bbmss}
+\sauter@family{U}{bbmss}{m}{sl}{bbmssi}
+%%%%%%%% semibold condensed series
+\sauter@family{U}{bbmss}{sbc}{n}{bbmssdc}
+
+%%%%%%%% bold extended series
+\sauter@family{U}{bbmss}{bx}{n}{bbmssbx}
+%</ubbmss>
+%<*ubbmtt>
+\DeclareFontFamily{U}{bbmtt}{}
+\sauter@ttfamily{U}{bbmtt}{m}{n}{bbmtt}
+%%%%%% make sure subst shapes are available
+\sauter@ttfamily{U}{bbmtt}{m}{sl}{bbmsltt}
+%</ubbmtt>
+%<*ubbmvtt>
+\DeclareFontFamily{U}{bbmvtt}{}
+\sauter@ttfamily{U}{bbmvtt}{m}{n}{bbmvtt}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{U}{bbmvtt}{m}{it}
+ {<->sub*bbmvtt/m/n}{}
+%</ubbmvtt>
+%<*ubbold>
+\DeclareFontFamily{U}{bbold}{}
+\sauter@family{U}{bbold}{m}{n}{bbold}
+%</ubbold>
+%<*ucmr>
+\DeclareFontFamily{U}{cmr}{\hyphenchar\font45 }
+\sauter@family{U}{cmr}{m}{n}{cmr}
+\sauter@family{U}{cmr}{m}{sl}{cmsl}
+\sauter@family{U}{cmr}{m}{it}{cmti}
+\sauter@family{U}{cmr}{m}{sc}{cmcsc}
+%<<COMMENT
+% Warning: please note that the upright shape below is
+% used for the \pounds symbol of LaTeX. So this
+% font definition shouldn't be removed.
+%
+%COMMENT
+\sauter@family{U}{cmr}{m}{ui}{cmu}
+%%%%%%% bold series
+\sauter@family{U}{cmr}{b}{n}{cmb}
+%%%%%%%% bold extended series
+\sauter@family{U}{cmr}{bx}{n}{cmbx}
+\sauter@family{U}{cmr}{bx}{sl}{cmbxsl}
+\sauter@family{U}{cmr}{bx}{it}{cmbxti}
+%<<COMMENT
+%\sauter@family{U}{cmr}{bx}{sc}{cmbxsc}
+% Again this is necessary for a correct \pounds symbol in
+% the cmr fonts Hopefully the dc/ec font layout will take
+% over soon.
+%
+%COMMENT
+\DeclareFontShape{U}{cmr}{bx}{ui}%
+ {<->ssub*cmr/m/ui}{}
+%</ucmr>
+%<*ucmss>
+\DeclareFontFamily{U}{cmss}{\hyphenchar\font45 }
+\sauter@family{U}{cmss}{m}{n}{cmss}
+%<<COMMENT
+% Font undefined, therefore substituted
+%COMMENT
+\DeclareFontShape{U}{cmss}{m}{it}
+ {<->sub*cmss/m/sl}{}
+\sauter@family{U}{cmss}{m}{sl}{cmssi}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{U}{cmss}{m}{sc}
+ {<->sub*cmr/m/sc}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{U}{cmss}{m}{ui}
+ {<->sub*cmr/m/ui}{}
+%%%%%%%% semibold condensed series
+\sauter@family{U}{cmss}{sbc}{n}{cmssdc}
+
+%%%%%%%%% bold extended series
+\sauter@family{U}{cmss}{bx}{n}{cmssbx}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{U}{cmss}{bx}{ui}
+ {<->sub*cmr/bx/ui}{}
+%</ucmss>
+%<*ucmtt>
+\DeclareFontFamily{U}{cmtt}{\hyphenchar \font\m@ne}
+\sauter@ttfamily{U}{cmtt}{m}{n}{cmtt}
+%%%%%% make sure subst shapes are available
+\sauter@ttfamily{U}{cmtt}{m}{it}{cmitt}
+\sauter@ttfamily{U}{cmtt}{m}{sl}{cmsltt}
+\sauter@ttfamily{U}{cmtt}{m}{sc}{cmtcsc}
+\DeclareFontShape{U}{cmtt}{m}{ui}
+ {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{U}{cmtt}{bx}{n}
+ {<->ssub*cmtt/m/n}{}
+\DeclareFontShape{U}{cmtt}{bx}{it}
+ {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{U}{cmtt}{bx}{ui}
+ {<->ssub*cmtt/m/it}{}
+%</ucmtt>
+%<*ulasy>
+\DeclareFontFamily{U}{lasy}{}
+\sauter@family{U}{lasy}{m}{n}{lasy}
+\sauter@family{U}{lasy}{b}{n}{lasyb}
+%</ulasy>
+%<*umsa>
+\DeclareFontFamily{U}{msa}{}
+\sauter@family{U}{msa}{m}{n}{msam}
+%</umsa>
+%<*umsb>
+\DeclareFontFamily{U}{msb}{}
+\sauter@family{U}{msb}{m}{n}{msbm}
+%</umsb>
+%<*ursfs>
+\DeclareFontFamily{U}{rsfs}{\skewchar\font127 }
+\sauter@family{U}{rsfs}{m}{n}{rsfs}
+%</ursfs>
+%<*ustmary>
+\DeclareFontFamily{U}{stmry}{}
+\sauter@family{U}{stmry}{m}{n}{stmary}
+\DeclareFontShape{U}{stmry}{b}{n}%
+ {<->sub*stmry/m/n}{}
+%</ustmary>
+%<*uwasy>
+\DeclareFontFamily{U}{wasy}{}
+\sauter@family{U}{wasy}{m}{n}{wasy}
+\sauter@family{U}{wasy}{b}{n}{wasyb}
+%</uwasy>
diff --git a/macros/latex/contrib/sauterfonts/sauterfonts.ins b/macros/latex/contrib/sauterfonts/sauterfonts.ins
new file mode 100644
index 0000000000..a2c377399f
--- /dev/null
+++ b/macros/latex/contrib/sauterfonts/sauterfonts.ins
@@ -0,0 +1,95 @@
+\input docstrip
+\askonceonly
+\def\prefix{s}
+\def\optionsone{} %ec
+\def\optionstwo{} %scalex
+\generate{
+ \file{\prefix exscale.sty}{
+ \from{sauterfonts.fdd}{family,exscale,\optionsone}
+ }
+ \file{\prefix omxcmex.fd}{
+ \from{sauterfonts.fdd}{omxcmex,\optionstwo}
+ }
+ \file{\prefix omlcmm.fd}{
+ \from{sauterfonts.fdd}{family,omlcmm,\optionsone}
+ }
+ \file{\prefix omlcmr.fd}{
+ \from{sauterfonts.fdd}{omlcmr}
+ }
+ \file{\prefix omscmr.fd}{
+ \from{sauterfonts.fdd}{omscmr}
+ }
+ \file{\prefix omscmsy.fd}{
+ \from{sauterfonts.fdd}{family,omscmsy,\optionsone}
+ }
+ \file{\prefix ot1cmdh.fd}{
+ \from{sauterfonts.fdd}{family,ot1cmdh,\optionsone}
+ }
+ \file{\prefix ot1cmfib.fd}{
+ \from{sauterfonts.fdd}{family,ot1cmfib,\optionsone}
+ }
+ \file{\prefix ot1cmfr.fd}{
+ \from{sauterfonts.fdd}{family,ot1cmfr,\optionsone}
+ }
+ \file{\prefix ot1cmr.fd}{
+ \from{sauterfonts.fdd}{family,ot1cmr,\optionsone}
+ }
+ \file{\prefix ot1cmss.fd}{
+ \from{sauterfonts.fdd}{family,ot1cmss,\optionsone}
+ }
+ \file{\prefix ot1cmtt.fd}{
+ \from{sauterfonts.fdd}{ttfamily,ot1cmtt,\optionsone}
+ }
+ \file{\prefix ot1cmvtt.fd}{
+ \from{sauterfonts.fdd}{ttfamily,ot1cmvtt,\optionsone}
+ }
+ \file{\prefix ubbm.fd}{
+ \from{sauterfonts.fdd}{family,ubbm,\optionsone}
+ }
+ \file{\prefix ubbmdh.fd}{
+ \from{sauterfonts.fdd}{family,ubbmdh,\optionsone}
+ }
+ \file{\prefix ubbmfib.fd}{
+ \from{sauterfonts.fdd}{family,ubbmfib,\optionsone}
+ }
+ \file{\prefix ubbmss.fd}{
+ \from{sauterfonts.fdd}{family,ubbmss,\optionsone}
+ }
+ \file{\prefix ubbmtt.fd}{
+ \from{sauterfonts.fdd}{ttfamily,ubbmtt,\optionsone}
+ }
+ \file{\prefix ubbmvtt.fd}{
+ \from{sauterfonts.fdd}{ttfamily,ubbmvtt,\optionsone}
+ }
+ \file{\prefix ubbold.fd}{
+ \from{sauterfonts.fdd}{family,ubbold,\optionsone}
+ }
+ \file{\prefix ucmr.fd}{
+ \from{sauterfonts.fdd}{family,ucmr,\optionsone}
+ }
+ \file{\prefix ucmss.fd}{
+ \from{sauterfonts.fdd}{family,ucmss,\optionsone}
+ }
+ \file{\prefix ucmtt.fd}{
+ \from{sauterfonts.fdd}{ttfamily,ucmtt,\optionsone}
+ }
+ \file{\prefix ulasy.fd}{
+ \from{sauterfonts.fdd}{family,ulasy,\optionsone}
+ }
+ \file{\prefix umsa.fd}{
+ \from{sauterfonts.fdd}{family,umsa,\optionsone}
+ }
+ \file{\prefix umsb.fd}{
+ \from{sauterfonts.fdd}{family,umsb,\optionsone}
+ }
+ \file{\prefix ursfs.fd}{
+ \from{sauterfonts.fdd}{family,ursfs,\optionsone}
+ }
+ \file{\prefix ustmry.fd}{
+ \from{sauterfonts.fdd}{family,ustmary,\optionsone}
+ }
+ \file{\prefix uwasy.fd}{
+ \from{sauterfonts.fdd}{family,uwasy,\optionsone}
+ }
+}
+\endbatchfile
diff --git a/macros/latex/contrib/sauterfonts/sbbm.sty b/macros/latex/contrib/sauterfonts/sbbm.sty
new file mode 100644
index 0000000000..c21e307a9b
--- /dev/null
+++ b/macros/latex/contrib/sauterfonts/sbbm.sty
@@ -0,0 +1,32 @@
+%% Copyleft 1998 Klaus G. Barthelmann
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{sbbm}[1998/11/11 LaTeX package to use the bbm font family]
+
+\newcommand\bbm@family{}
+\newcommand\bbm@shape{}
+
+\DeclareOption{rm}{\renewcommand\bbm@family{bbm}}
+\DeclareOption{sf}{\renewcommand\bbm@family{bbmss}}
+\DeclareOption{tt}{\renewcommand\bbm@family{bbmtt}}
+% Is there really any use for the typewriter font?
+\DeclareOption{up}{\renewcommand\bbm@shape{n}}
+\DeclareOption{sl}{\renewcommand\bbm@shape{sl}}
+
+\ExecuteOptions{rm,up}
+\ProcessOptions
+
+\DeclareSymbolFont{\bbm@family}{U}{\bbm@family}{m}{\bbm@shape}
+\newcommand\bbm@tt{tt}\ifx\bbm@family\bbm@tt\else
+\SetSymbolFont{\bbm@family}{bold}{U}{\bbm@family}{bx}{\bbm@shape}
+\fi
+\DeclareSymbolFontAlphabet\mathbb{\bbm@family}
+
+\DeclareMathSymbol{\Lparen}{\mathopen}{\bbm@family}{`(}
+\DeclareMathSymbol{\Rparen}{\mathclose}{\bbm@family}{`)}
+\DeclareMathSymbol{\Lbrack}{\mathopen}{\bbm@family}{`[}
+\DeclareMathSymbol{\Rbrack}{\mathclose}{\bbm@family}{`]}
+
+\let\bbm@family=\@undefined
+\let\bbm@shape=\@undefined
+\let\bbm@tt=\@undefined
+\endinput