diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:51:04 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:51:04 +0000 |
commit | bf7e5eda82d5177d838d28170dce0f539f5e1687 (patch) | |
tree | 2cd920ffe6994cdaab8d37b5b0a59df9a5111822 /Master/texmf-dist/source/latex/base/ltfsscmp.dtx | |
parent | 83bcc02ee855f0bf515d44433547956d38805bf0 (diff) |
trunk/Master/texmf-dist/source/latex/base
git-svn-id: svn://tug.org/texlive/trunk@151 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltfsscmp.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltfsscmp.dtx | 414 |
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 +% |