diff options
Diffstat (limited to 'Master/texmf-dist/tex/cslatex/base/cspsfont.tex')
-rw-r--r-- | Master/texmf-dist/tex/cslatex/base/cspsfont.tex | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/cslatex/base/cspsfont.tex b/Master/texmf-dist/tex/cslatex/base/cspsfont.tex new file mode 100644 index 00000000000..a4d9ac9c16e --- /dev/null +++ b/Master/texmf-dist/tex/cslatex/base/cspsfont.tex @@ -0,0 +1,276 @@ +%% +%% This is file `cspsfont.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% cspsfont.doc (with options: `file') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% You are *not* allowed to modify this file. +%% +%% You are *not* allowed to distribute this file. +%% For distribution of the original source see +%% the terms for copying and modification in the file cspsfont.doc. +%% +\def\fileversion{v.1.0d} +\def\filedate{1995/12/02} +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{cspsfont}[\filedate\space CsPsFont utility \fileversion] +\typeout{CsPsFont utility \fileversion} +\typeout{(C) Z. Wagner, \filedate} +\typeout{Czech documentation \docdate} +\edef\restoreAt{\noexpand\catcode`\noexpand\@\the\catcode`\@} +\makeatletter +\edef\Cps@filedate{\filedate} +\edef\Cps@fileversion{\fileversion} +\RequirePackage{verbatim} +\def\PkgWrite{% + \let\do\@makeother\dospecials + \def\exclam{!} + \catcode`\^^M\active + \catcode`\!0 + \def\verbatim@processline{{% + \let\protect\@unexpandable@noexpand + \edef\Cps@line{\the\verbatim@line}% expanduj v\v{s}e + \immediate\write\Cps@Pkg@Write{\Cps@line}}}% + \verbatim@start} +\let\endPkgWrite\relax +\def\Author{\def\Cps@author} +\def\Comment#1{\def\Cps@comment{\sp #1}} +\def\FontPath#1{% + \edef\Cps@fontpath{#1}% + \def\ZW@tempa{name}% + \def\ZW@tempb{.ext}% + \filename@parse{\Cps@fontpath\ZW@tempa\ZW@tempb}% + \ifx\filename@area\Cps@fontpath + \else + \Wr@ngPathErr + \fi} +\def\Wr@ngPathErr{% + \errhelp{No help available, read the documentation!}% + \errmessage{The path name should end with a~slash}} +\def\fd#1#2{\immediate\openout\Cps@Pkg@Write#1#2.fd \relax + \typeout{Generating <#1#2.fd>} + \def\Cps@enc{#1} + \def\Cps@fam{#2} + \def\protect{\noexpand} + \immediate\write\Cps@Pkg@Write + {\string\ProvidesFile + {#1#2.fd}[\number\year/\two@digits{\month}/\two@digits{\day}% + \Cps@comment]} + \@ifundefined{Cps@comment}{}{% + \ifx\Cps@comment\empty + \else + \immediate\write\Cps@Pkg@Write{\string\typeout{\Cps@comment}}% + \@ifundefined{Cps@author}{}{% + \ifx\Cps@author\empty + \else + \immediate\write\Cps@Pkg@Write + {\string\typeout + {(C)\sp \Cps@author, + \number\year/\two@digits{\month}/\two@digits{\day}}}% + \fi + }% + \fi + }% + \immediate\write\Cps@Pkg@Write + {\string\typeout{Created\sp by\sp CsPsFont\sp utility\sp \Cps@fileversion\sp + (C)\sp Z.\sp Wagner,\sp \Cps@filedate}}\let\protect\relax} +\def\endfd{% + \immediate\closeout\Cps@Pkg@Write + \typeout{End of fd-file}} +\newwrite\Cps@Pkg@Write +\def\sp{\protect\space} +\def\Wr@ngEnvErr{% + \errhelp{Some macros can only be used + inside the <fontdecl> environment.^^J% + The macro at the end of the top line is one of them.}% + \errmessage{This is not valid outside <fontdecl>}} +\let\Cps@IgnoreSpaces\Wr@ngEnvErr +\let\FamilySetup\Wr@ngEnvErr +\let\ShapeSetup\Wr@ngEnvErr +\def\Cps@RestoreSpaces{\catcode`\ =10 } +\def\Cps@GetParams{\Cps@IgnoreSpaces \Cps@XGetParams} +\def\Cps@XGetParams#1.{% + \edef\Cps@Params{#1}\Cps@RestoreSpaces \Cps@continue} +\def\Def#1{\@ifundefined{#1}{\@namedef{#1}}{\@gobble}} +\begingroup + \catcode`\]=2 + \catcode`\[=1 + \catcode`\|=0 + \catcode`\}=12 + \catcode`\{=12 + \catcode`\\=12 + |gdef|Cps@LB[{] + |gdef|Cps@RB[}] + |gdef|Cps@BS[\] +|endgroup +\newcommand\fontdecl[2][m/n]{% + \def\Cps@base{#2}% + \def\Cps@default{#1}% + \def\Cps@IgnoreSpaces{\catcode`\ =9 }% + \def\FamilySetup{\get@setup{Cps@FAM}}% + \def\ShapeSetup{\Cps@IgnoreSpaces\Shape@Setup}% + \typeout{Declaring font \Cps@enc/\Cps@fam}\Cps@scan@suffix} +\newcommand\Cps@scan@suffix[1][]{\edef\Cps@sfx{#1}} +\def\BasBX{\BasBX@true \BXasB@false} +\def\BXasB{\BXasB@true \BasBX@false} +\newif\ifBasBX@ \newif\ifBXasB@ +\def\Shape@Setup#1{\Cps@RestoreSpaces \get@setup{Cps@#1STP}} +\def\get@setup#1{% + \def\Cps@make@def{\Def{#1}}\begingroup + \@sanitize \scan@setup} +\def\scan@setup#1{\endgroup \Cps@make@def{#1}} +\def\MakeSeries{\Cps@IgnoreSpaces \M@keSeries} +\def\M@keSeries#1{\providecommand\Series@List{#1}\Cps@RestoreSpaces} +\def\MakeShape{\Cps@IgnoreSpaces \M@keShape} +\def\M@keShape#1{\providecommand\Shape@List{#1}\Cps@RestoreSpaces} +\def\FontDef{\let\Cps@continue\Cps@FontDef \Cps@GetParams} +\def\Cps@FontDef{% + \def\Cps@@FD##1/##2=##3.{\Def{Cps@FD@##1/##2}{##3}}% + \expandafter\Cps@@FD\Cps@Params.} +\def\FontSub{\let\Cps@continue\Cps@FontSub \Cps@GetParams} +\def\Cps@FontSub{% + \def\Cps@@FS##1/##2=##3.{\Def{Cps@FS@##1/##2}{##3}}% + \expandafter\Cps@@FS\Cps@Params.} +\def\SeriesSuffix{\let\Cps@continue\Cps@SeriesSuffix \Cps@GetParams} +\def\Cps@SeriesSuffix{% + \def\Cps@@Ser##1/##2.{\Def{Cps@ser@##1}{##2}}% + \expandafter\Cps@@Ser\Cps@Params.} +\def\ShapeSuffix{\let\Cps@continue\Cps@ShapeSuffix \Cps@GetParams} +\def\Cps@ShapeSuffix{% + \def\Cps@@Sh##1/##2.{\Def{Cps@sh@##1}{##2}}% + \expandafter\Cps@@Sh\Cps@Params.} +\def\SeriesAlias{\let\Cps@continue\Cps@SeriesAlias \Cps@GetParams} +\def\Cps@SeriesAlias{% + \def\Cps@@seral##1/##2.{\Def{Cps@seral@##1}{##2}}% + \expandafter\Cps@@seral\Cps@Params.} +\def\ShapeAlias{\let\Cps@continue\Cps@ShapeAlias \Cps@GetParams} +\def\Cps@ShapeAlias{% + \def\Cps@@shal##1/##2.{\Def{Cps@shal@##1}{##2}}% + \expandafter\Cps@@shal\Cps@Params.} +\def\endfontdecl{\Cps@Commence + \Cps@FirstPass \Cps@bxb \Cps@SecondPass \Cps@ThirdPass} +\def\Cps@Commence{% + \MakeSeries{m,b,bx}% + \MakeShape{n,sl,it,sc}% + \SeriesSuffix m/r.% + \SeriesSuffix b/b.% + \SeriesSuffix bx/b.% + \ShapeSuffix n/.% + \ShapeSuffix it/i.% + \ShapeSuffix sl/o.% + \ShapeSuffix sc/c.% + \SeriesAlias b/bx.% + \SeriesAlias bx/b.% + \ShapeAlias sl/it.% + \ShapeAlias it/sl.% + \immediate\write\Cps@Pkg@Write + {\string\DeclareFontFamily{\Cps@enc}{\Cps@fam}% + {\@ifundefined{Cps@FAM}{}{\Cps@FAM}}}} +\def\@ifNoFont#1.{\@ifundefined{Cps@FD@#1}} +\def\@ifNoSub#1.{\@ifundefined{Cps@FS@#1}} +\def\Cps@FontMade#1=#2.{\expandafter\edef\csname Made@#1\endcsname{#2}% + \typeout{#1=#2}} +\def\Cps@FontSubst#1=#2.{\expandafter\edef\csname Subst@#1\endcsname{#2}% + \typeout{#1->#2}} +\def\@ifIgnoreFont#1.#2#3{% + \edef\ZW@tempa{\@nameuse{Cps@FD@#1}}% + \ifx\ZW@tempa\empty \def\ZW@tempa{#2}\else \def\ZW@tempa{#3}\fi + \ZW@tempa} +\def\@ifFontMade#1.#2#3{\@ifundefined{Made@#1}{#3}{#2}} +\def\@ifFontSubst#1.#2#3{\@ifundefined{Subst@#1}{#3}{#2}} +\def\@ifFontExists#1.{% + \edef\ZW@tempa{\Cps@fontpath#1.tfm}\IfFileExists{\ZW@tempa}} +\def\Cps@FirstPass{% + \@for\s@ries:=\Series@List\do{% + \@for\sh@pe:=\Shape@List\do{\Cps@First@Pass}}} +\def\Cps@First@Pass{% + \edef\Cps@font{\s@ries/\sh@pe}% + \expandafter\@ifNoFont\Cps@font.% + {\edef\f@name + {\Cps@base\@nameuse{Cps@ser@\s@ries}\@nameuse{Cps@sh@\sh@pe}\Cps@sfx}}% + {\expandafter\@ifIgnoreFont\Cps@font.% + {\let\f@name\relax}% + {\edef\f@name{\@nameuse{Cps@FD@\Cps@font}}}}% + \@ifundefined{f@name}{}{% + \@ifFontExists\f@name.% + {\Cps@FontMade\Cps@font=\f@name.\Cps@WriteFdef}{}}} +\def\Cps@WriteFdef{% + \immediate\write\Cps@Pkg@Write + {\string\DeclareFontShape + {\Cps@enc}{\Cps@fam}{\s@ries}{\sh@pe}{<-> \f@name}% + {\@ifundefined{Cps@\s@ries/\sh@pe @STP}{}% + {\@nameuse{Cps@\s@ries/\sh@pe @STP}}}}} +\def\Cps@bxb{% + \ifBasBX@ + \@for\sh@pe:=\Shape@List\do{\Cps@repl{b}{bx}}% + \fi + \ifBXasB@ + \@for\sh@pe:=\Shape@List\do{\Cps@repl{bx}{b}}% + \fi} +\def\Cps@repl#1#2{% + \edef\Cps@font{#1/\sh@pe}% + \edef\s@ries{#1}% + \expandafter\@ifFontMade\Cps@font.{}{% + \expandafter\@ifNoFont\Cps@font.{% + \edef\tri@lf@nt{#2/\sh@pe}% + \expandafter\@ifFontMade\tri@lf@nt.% + {\edef\f@name{\@nameuse{Made@\tri@lf@nt}}% + \Cps@FontMade\Cps@font=\f@name.\Cps@WriteFdef}% + {}% + }% + {}% + }} +\def\Cps@SecondPass{% + \@for\s@ries:=\Series@List\do{% + \@for\sh@pe:=\Shape@List\do{\Cps@Second@Pass}}} +\def\Cps@Second@Pass{% + \edef\Cps@font{\s@ries/\sh@pe}% + \expandafter\@ifFontMade\Cps@font.{}{% + \expandafter\@ifNoFont\Cps@font.{% + \expandafter\@ifNoSub\Cps@font.{}% + {\edef\f@name{\@nameuse{Cps@FS@\Cps@font}}\Cps@Try@Subst}% + \expandafter\@ifFontSubst\Cps@font.{}% + {\Cps@TryShape\s@ries.}% + \expandafter\@ifFontSubst\Cps@font.{}% + {\Cps@TrySeries}% + }{}% + }} +\def\Cps@Try@Subst{\expandafter + \@ifFontMade\f@name.{% + \Cps@FontSubst\Cps@font=\f@name.% + {\edef\f@name{sub * \f@name}\Cps@WriteFdef}}% + {}} +\def\Cps@TryShape#1.{% + \@ifundefined{Cps@shal@\sh@pe}{}% + {\edef\f@name{#1/\@nameuse{Cps@shal@\sh@pe}}\Cps@Try@Subst}} +\def\Cps@TrySeries{% + \@ifundefined{Cps@seral@\s@ries}{}% + {\edef\f@name{\@nameuse{Cps@seral@\s@ries}/\sh@pe}\Cps@Try@Subst + \expandafter\@ifFontSubst\Cps@font.{}% + {\Cps@TryShape\@nameuse{Cps@seral@\s@ries}.}}} +\def\Cps@ThirdPass{% + \edef\f@name{\Cps@default}% + \expandafter\@ifFontMade\f@name.{}% + {\expandafter\@ifFontSubst\f@name.{}{\let\f@name\empty}}% + \ifx\f@name\empty + \else + \@for\s@ries:=\Series@List\do{% + \@for\sh@pe:=\Shape@List\do{\Cps@Third@Pass}}% + \fi} +\def\Cps@Third@Pass{% + \edef\Cps@font{\s@ries/\sh@pe}% + \expandafter\@ifNoFont\Cps@font.{% + \expandafter\@ifFontMade\Cps@font.{}{% + \expandafter\@ifFontSubst\Cps@font.{}{\Cps@Try@Subst}}}% + {}} + +\restoreAt +\endinput +%% +%% End of file `cspsfont.tex'. |