summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltfsscmp.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltfsscmp.dtx')
-rw-r--r--macros/latex-dev/base/ltfsscmp.dtx378
1 files changed, 378 insertions, 0 deletions
diff --git a/macros/latex-dev/base/ltfsscmp.dtx b/macros/latex-dev/base/ltfsscmp.dtx
new file mode 100644
index 0000000000..8157428fde
--- /dev/null
+++ b/macros/latex-dev/base/ltfsscmp.dtx
@@ -0,0 +1,378 @@
+% \iffalse meta-comment
+%
+% Copyright 1993-2016
+% 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.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/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}
+ [2015/06/23 v3.0f 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
+%
+%
+%
+% \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}
+%
+% \MaintainedByLaTeXTeam{latex}
+% \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}
+%
+% Version 1 of NFSS is obsolete now for about 20 years (and was
+% ``current'' only for a short intermediate time) so with the 2015
+% release these internal interface commands are removed from the
+% kernel and made available via \textsf{latexrelease} package so that
+% backward compatibility remains ensured for very old documents.
+%
+% \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}
+% \changes{v3.0d}{2015/02/21}
+% {Removed autoload code}
+% \changes{v3.0e}{2015/02/22}
+% {Moved all code into latexrelease - obsolete commands are no
+% longer automatically part of the kernel}
+%
+%
+% \begin{macrocode}
+%<*latexrelease>
+\IncludeInRelease{2015/01/01}{\new@fontshape}%
+ {NFSS version1 commands}%
+\let\new@fontshape\@undefined
+\let\warn@rel@i\@undefined
+\let\scan@fontshape\@undefined
+\let\scan@@fontshape\@undefined
+\let\subst@fontshape\@undefined
+\let\extra@def\@undefined
+\let\default@mextra\@undefined
+\let\preload@sizes\@undefined
+\let\err@rel@i\@undefined
+\let\newmathalphabet\@undefined
+\let\newmathalphabet@\@undefined
+\let\newmathalphabet@@@\@undefined
+\let\if@no@font@opt\@undefined
+\let\@no@font@optfalse\@undefined
+\let\define@mathalphabet\@undefined
+\let\define@mathgroup\@undefined
+\let\addtoversion\@undefined
+\EndIncludeInRelease
+% \end{macrocode}
+%
+% In older releases we provide the original definitions.
+%
+% \begin{macrocode}
+\IncludeInRelease{0000/00/00}{\new@fontshape}%
+ {NFSS version1 commands}%
+% \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
+% \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}
+%
+% Finishing off this huge |\IncludeInRelease| argument:
+% \begin{macrocode}
+\EndIncludeInRelease
+%</latexrelease>
+% \end{macrocode}
+%
+% \Finale
+%