summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base/ltfsscmp.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltfsscmp.dtx')
-rw-r--r--Master/texmf-dist/source/latex/base/ltfsscmp.dtx414
1 files changed, 414 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltfsscmp.dtx b/Master/texmf-dist/source/latex/base/ltfsscmp.dtx
new file mode 100644
index 00000000000..b4441aa4120
--- /dev/null
+++ b/Master/texmf-dist/source/latex/base/ltfsscmp.dtx
@@ -0,0 +1,414 @@
+% \iffalse meta-comment
+%
+% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
+% The LaTeX3 Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+% \iffalse
+%%% From File: ltfsscmp.dtx
+%% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
+%% all rights reserved.
+%
+%<*driver>
+% \fi
+%
+%
+\ProvidesFile{ltfsscmp.dtx}
+ [1995/08/26 v3.0c LaTeX Kernel (NFSS1 Compatibility)]
+% \iffalse
+\documentclass{ltxdoc}
+\begin{document}
+\DocInput{ltfsscmp.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \iffalse
+%<+checkmem>\def\CHECKMEM{\tracingstats=2
+%<+checkmem> \newlinechar=`\^^J
+%<+checkmem> \message{^^JMemory usage: \filename}\shipout\hbox{}}
+%<+checkmem>\CHECKMEM
+% \fi
+%
+% \CheckSum{235}
+%
+%
+% \GetFileInfo{ltfsscmp.dtx}
+% \title{A new font selection scheme for \TeX{} macro packages\\
+% (Compatibility with NFSS1)\thanks
+% {This file has version number
+% \fileversion\ dated \filedate}}
+%
+% \author{Frank Mittelbach \and Rainer Sch\"opf}
+%
+% \maketitle
+%
+% This file contains the implementation of commands giving
+% compatibility with the original `NFSS1' release of the Font Selection
+% Scheme.
+%
+% \begin{quote}
+% \textbf{Warning:}
+% The macro documentation is still basically the documentation from the
+% first NFSS release and therefore in some cases probably not
+% completely accurate.
+% \end{quote}
+%
+% \StopEventually{}
+%
+%
+% \changes{v3.0b}{1995/06/15}
+% {(DPC) minor documentation edits}
+% \changes{v3.0a}{1995/05/24}
+% {(DPC) Make file from previous file, fam.dtx 1995/05/20 v2.2d}
+%
+%
+%
+% \section{Compatibility code for NFSS release 1}
+%
+% There have been a couple of commands which became obsolete with NFSS2.
+% In the past they have been still part of the kernel code to make it
+% possible to process old packages using those commands but since they
+% take up valuable space we decided to remove them and instead
+% auto-load their definitions if they are actually encountered in some
+% file.
+%
+% Thus the following code doesn't really belong to this file but I put
+% it here for the moment until finally a documented version of
+% \texttt{ltfss.dtx} is available.
+%
+% [ auto-loading not activated ]
+%
+% \begin{macro}{\new@fontshape}
+% \begin{macro}{\subst@fontshape}
+% \begin{macro}{\extra@def}
+% \begin{macro}{\default@mextra}
+% \begin{macro}{\define@mathalphabet}
+% \begin{macro}{\define@mathgroup}
+% These macros are the interfaces in NFSS1 which shouldn't be used
+% any longer. We all define them to call the macro
+% |\scan@fontshape| which is an internal macro that loads the real
+% definitions and then to execute themselves again. Once this
+% auto-loading has happened they have the definition shown below and
+% thus execute their real code directly.
+% \begin{macrocode}
+%<*autoload>
+\def\new@fontshape{\scan@fontshape\new@fontshape}
+\def\subst@fontshape{\scan@fontshape\subst@fontshape}
+\def\extra@def{\scan@fontshape\extra@def}
+\def\default@mextra{\scan@fontshape\default@mextra}
+\def\define@mathalphabet{\scan@fontshape\define@mathalphabet}
+\def\define@mathgroup{\scan@fontshape\define@mathgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\scan@fontshape}
+% Here is the kernel definition for |\scan@fontshape| which loads
+% the actual definitions from the file \texttt{nfsscmp.def}.
+% \begin{macrocode}
+\def\scan@fontshape{\input{nfsscmp.def}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% The following definitions are now placed into the auto-load file.
+% \begin{macrocode}
+% \end{macrocode}
+%
+% Since we don't know when this file will be read in we need to
+% provide ourselves with standard |\catcode| settings. This is done
+% by placing all definitions in a group and calling
+% |\nfss@catcodes|. But this macro will also disable spaces which
+% isn't very appropriate for the following code because it contains
+% a lot of helper messages. Therefore we change this back.
+% \begin{macrocode}
+\begingroup
+\nfss@catcodes
+\catcode`\ =10\relax
+%</autoload>
+%<*compat>
+% \end{macrocode}
+%
+% \begin{macro}{\new@fontshape}
+% The interface is now |\DeclareFontShape|.
+% \begin{macrocode}
+\gdef\new@fontshape#1#2#3#4{%
+ \warn@rel@i\new@fontshape\DeclareFontShape
+ \expandafter\scan@fontshape\@gobble#4<\@nil><<%
+ \DeclareFontShape U{#1}{#2}{#3}\reserved@f}
+\@onlypreamble\new@fontshape
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\warn@rel@i}
+% The warning message used above.
+% \begin{macrocode}
+\gdef\warn@rel@i#1#2{%
+ \@font@warning{*** NFSS release 1 command
+ \noexpand#1found\MessageBreak
+ *** Update by using release 2 command
+ \string#2.\MessageBreak
+ *** Recovery is probably possible}%
+}
+\@onlypreamble\warn@rel@i
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\scan@fontshape}
+% This will scan the old font shape definition syntax.
+% \begin{macrocode}
+\gdef\scan@fontshape{%
+ \let\reserved@f\@empty
+ \let\reserved@e\@empty % holds last info
+ \scan@@fontshape
+}
+\@onlypreamble\scan@fontshape
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\scan@@fontshape}
+% \begin{macrocode}
+\gdef\scan@@fontshape#1>#2#3<{%
+ \ifx\@nil#1%
+ \edef\reserved@f{\reserved@f\reserved@e}%
+ \else
+ \def\reserved@b{#1}% nick names
+ \def\reserved@c{#3}%
+ \in@{ at}{#3}%
+ \ifin@
+ \in@{pt}{#3}% not a proof but a good chance
+ \ifin@
+% \end{macrocode}
+% We grap also everything after pt and discard it if people have
+% forgotten to place a percent sign there.
+% \changes{v2.1d}{1994/02/10}{scan away stuff after pt}
+% \begin{macrocode}
+ \def\reserved@a##1 at##2pt##3\@nil{%
+ \def\reserved@b{##2}%
+ \def\reserved@c{##1}%
+ }%
+ \reserved@a#3\@nil
+ \fi
+ \fi
+ \ifnum 0<0#2
+ \edef\reserved@d{subf*\reserved@c}%
+ \ifcase #2\or
+ \or
+ \else
+ \errmessage{*** What's this? NFSS release 0? ***}%
+ \fi
+ \else
+ \edef\reserved@d{#2\reserved@c}%
+ \fi
+ \ifx\reserved@d\reserved@e
+ \edef\reserved@f{\reserved@f<\reserved@b>}%
+ \else
+ \edef\reserved@f{\reserved@f\reserved@e<\reserved@b>}%add old info
+ \let\reserved@e\reserved@d
+ \fi
+ \expandafter\scan@@fontshape
+ \fi
+}
+\@onlypreamble\scan@@fontshape
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\subst@fontshape}
+% This is now also handled by the extend syntax of
+% |\DeclareFontShape|.
+% \begin{macrocode}
+\gdef\subst@fontshape#1#2#3#4#5#6{%
+ \warn@rel@i\subst@fontshape\DeclareFontShape
+ \DeclareFontShape{U}{#1}{#2}{#3}{<->sub*#4/#5/#6}{}}
+\@onlypreamble\subst@fontshape
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\extra@def}
+% This was replaced by |\DeclareFontFamily|.
+% \begin{macrocode}
+\gdef\extra@def#1#2#3{%
+ \warn@rel@i\extra@def\DeclareFontFamily
+ \DeclareFontFamily{U}{#1}{}%
+}
+\@onlypreamble\extra@def
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\default@mextra}
+% The new name is |\DeclareFontEncodingDefaults| but in this case
+% we don't feel comfortable with this either.
+% \begin{macrocode}
+\gdef\default@mextra{%
+ \warn@rel@i\default@mextra\DeclareFontEncodingDefaults
+% \end{macrocode}
+% We pick up the argument to |\default@mextra| implicitly as
+% the second argument of |\DeclareFontEncodingDefaults|.
+% \begin{macrocode}
+ \DeclareFontEncodingDefaults\relax
+}
+\@onlypreamble\default@mextra
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\preload@sizes}
+% The new interface is |\DeclarePreloadSizes|.
+% \begin{macrocode}
+\gdef\preload@sizes{%
+ \warn@rel@i\preload@sizes\DeclarePreloadSizes
+ \DeclarePreloadSizes U%
+}
+\@onlypreamble\preload@sizes
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\err@rel@i}
+% This macro is used in cases where emulation with NFSS2 features
+% is not really possible.
+% \begin{macrocode}
+\gdef\err@rel@i#1#2{%
+ \@latex@error{*** NFSS release 1 command \noexpand#1found%
+ ^^J*** Recovery not possible. Use \string#2}%
+ {The new release of NFSS doesn't support the
+ \noexpand#1command^^Jany longer.
+ Please upgrade your file to the syntax of NFSS
+ release 2^^Jusing the \noexpand#2command.}%
+% \end{macrocode}
+% Let's die.
+% \begin{macrocode}
+ \batchmode\input.\relax
+}
+\@onlypreamble\err@rel@i
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\newmathalphabet}
+% \begin{macro}{\newmathalphabet@@}
+% \begin{macro}{\newmathalphabet@@@}
+% |\newmathalphabet| is the old form.
+% \begin{macrocode}
+\gdef\newmathalphabet{%
+ \if@no@font@opt
+ \@latex@error{*** NFSS release 1 command
+ \noexpand\newmathalphabet found%
+ ^^J \space*** Automatic recovery not possible.%
+ ^^J \space*** TYPE H for Help%
+ }%
+ {Please look at the file usrguide.tex for hints on
+ how to resolve this problem.}%
+ \else
+ \warn@rel@i\newmathalphabet\DeclareMathAlphabet
+ \fi
+ \@ifstar\newmathalphabet@@@
+ \newmathalphabet@@}
+\gdef\newmathalphabet@@#1{\DeclareMathAlphabet#1{U}{}{}{}}
+\gdef\newmathalphabet@@@#1#2#3#4{%
+ \DeclareMathAlphabet{#1}{U}{#2}{#3}{#4}}
+\@onlypreamble\newmathalphabet
+\@onlypreamble\newmathalphabet@@
+\@onlypreamble\newmathalphabet@@@
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@no@font@opt}
+% \begin{macro}{\@no@font@optfalse}
+% \begin{macrocode}
+\global\let\if@no@font@opt\iftrue
+\gdef\@no@font@optfalse{\let\if@no@font@opt\iffalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\define@mathalphabet}
+% This is a case where dying is best.
+% \begin{macrocode}
+\gdef\define@mathalphabet{%
+ \err@rel@i\define@mathalphabet\DeclareMathAlphabet
+}
+\@onlypreamble\define@mathalphabet
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\define@mathgroup}
+% And here is another one
+% \begin{macrocode}
+\gdef\define@mathgroup{%
+ \err@rel@i\define@mathgroup\DeclareSymbolFont
+}
+\@onlypreamble\define@mathgroup
+%</compat>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\addtoversion}
+% |\addtoversion| is the old form.
+% \begin{macrocode}
+\def\addtoversion#1#2{%
+ \warn@rel@i\addtoversion\SetMathAlphabet
+ \SetMathAlphabet#2{#1}{U}}
+\@onlypreamble\addtoversion
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% That finishes the definitions for the old interfaces --- but first
+% we better finish the group.
+% \begin{macrocode}
+%<*autoload>
+\endgroup
+%</autoload>
+% \end{macrocode}
+%
+% \Finale
+%