diff options
Diffstat (limited to 'Master/texmf-dist/source/fonts/lh/tex/cod-edt.tex')
-rw-r--r-- | Master/texmf-dist/source/fonts/lh/tex/cod-edt.tex | 372 |
1 files changed, 372 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/fonts/lh/tex/cod-edt.tex b/Master/texmf-dist/source/fonts/lh/tex/cod-edt.tex new file mode 100644 index 00000000000..71acf874d8b --- /dev/null +++ b/Master/texmf-dist/source/fonts/lh/tex/cod-edt.tex @@ -0,0 +1,372 @@ +% +% cod-edt.tex +% +%% Cyrillic font container with T2 encoding beta-support +% +% This file is future part of lxfonts package +% Version 3.5 // Patchlevel=0 +% (c) O.Lapko +% +% This package is freeware product under conditions similar to +% those of D. E. Knuth specified for the Computer Modern family of fonts. +% In particular, only the authors are entitled to modify this file +% (and all this package as well) and to save it under the same name. +% +% Content: +% +% Generating Cyrillic codings for both MF and TeX +% and uccode/lccode/mathcode for TeX +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\lhvercheck(3,5) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode`\_=11 +\catcode`\~=11 +% +\ifx\encodingletters\undefined\let\encodingletters\fonttwoletters\fi +\ifBabel\Berestafalse\fi +% +\long\def\CodesToBeGenerated{\input \codebase} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The idea and macros were borrowed from +% dcstdedt.tex (V1.1/22.3.92) (DC fonts package) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let\EA\expandafter +\def\empty{} +\def\minus{-} +\def\blank{ } +\def\Del#1{} + +%%% TeX encoding config files creation macros +\def\singlecode#1 { + \def\lettercode{#1}% + \ifx\lettercode\blank\let\next\singlecode + \else + \ifx\lettercode\empty\let\next\singlecode + \else + \ifx\lettercode\minus\Del\lettercode\let\next\relax + \else + \advance\tablecount1 + \ifnum\tablecount=\currtable\let\next\docode + \else + \ifnum\tablecount<\currtable\let\next\singlecode + \else + \ifnum\currtable=0 + \message{Wrong currtable: currtable=\the\currtable}% + \Del\lettercode\let\next\singlecode + \fi + \Del\lettercode\let\next\singlecode + \fi\fi + \fi\fi\fi + \next} + +\def\singletablevalue#1 {% + \edef\lettercode{#1}% + \ifx\lettercode\blank\let\next\singletablevalue + \else + \ifx\minus\lettercode\Del\lettercode\let\next\relax + \else + \ifx\encodingletters\lettercode\currtable\codecount + \let\next\singletablevalue + \else\advance\codecount1\let\next\singletablevalue + \fi + \fi\fi + \next} + +\def\tablevalues(#1){\codecount=0\singletablevalue#1 - + } + +\def\Makecod #1 #2 (#3){% + \edef\letternamemf{#1}% + \edef\letnamestring{#2}% + \tablecount=0\singlecode #3 - + } + +\def\makecod{\chardeffalse\upperfalse\Makecod + } +\def\makeCOD{\chardeffalse\uppertrue\Makecod + } +\def\makechr{\chardeftrue\accentfalse\Makecod + } +\def\makeacc{\chardeftrue\accenttrue\Makecod + } + +\def\makechardef#1#2{% + \def\charletter{#1}\edef\charcode{#2}\Dochfile% + } +\def\makeaccdef#1#2{% + \def\charletter{#1}\edef\charcode{#2}\Doacfile% + } + +\def\makeuclcletter#1#2#3#4{% + \ifx#1\undefined %relax + \else + \def\upperletter{#1}\def\uppercode{#2}% + \ifx#3\undefined % + \message{\string#1: Uppercase letter has not pair} + \else + \def\lowerletter{#3}\def\lowercode{#4}\Doucfile + \fi + \fi + } + +\def\docodetest#1[#2]#3\nothing{% +\def\lettercode{#2}% +\ifx\lettercode\empty + \def\lettercodelig{#1}% + \def\lettercode{#1}% +\else + \def\lettercode{#1}% + \def\lettercodelig{#2}% +\fi} + +\def\docode{\expandafter\docodetest\lettercode[]\nothing + \expandafter\codesUP\lettercode\endcodesUP +\Docode} + +\def\LetA{A}\def\LetB{B}\def\LetC{C}\def\LetD{D}\def\LetE{E}\def\LetF{F} +\def\Leta{a}\def\Letb{b}\def\Letc{c}\def\Letd{d}\def\Lete{e}\def\Letf{f} +\def\codesUP#1#2\endcodesUP{\gdef\firstlet{#1}\gdef\secondlet{#2}% + \ifx\firstlet\Leta\let\firstlet\LetA\else + \ifx\firstlet\Letb\let\firstlet\LetB\else + \ifx\firstlet\Letc\let\firstlet\LetC\else + \ifx\firstlet\Letd\let\firstlet\LetD\else + \ifx\firstlet\Lete\let\firstlet\LetE\else + \ifx\firstlet\Letf\let\firstlet\LetF\else + \fi\fi\fi\fi\fi\fi + \ifx\secondlet\Leta\let\secondlet\LetA\else + \ifx\secondlet\Letb\let\secondlet\LetB\else + \ifx\secondlet\Letc\let\secondlet\LetC\else + \ifx\secondlet\Letd\let\secondlet\LetD\else + \ifx\secondlet\Lete\let\secondlet\LetE\else + \ifx\secondlet\Letf\let\secondlet\LetF\else + \fi\fi\fi\fi\fi\fi\Del\firstlet\Del\secondlet +} + +{\catcode`\%=11 \catcode`\|=14 +\gdef\MakeHeadFileDefinition#1#2{| + \immediate\write#1{% This is #2\space in text format as of \today^^J%\space + created by LHfonts (TeX4MF) version\space + \number\lhmajver.\number\lhminver^^J%^^J%^^J}| +} +\ifchartest| + \gdef\Docode{| + \edef\dowrite{| + \ifnum\chartestcount>\charteststart + \ifnum\chartestcount<\chartestfinish + \def\csname MF\letternamemf\endcsname{-1}|for ligs&kerning file + \immediate\write\encfontoutput{CYR_.\letternamemf\space:=-1;}| + \immediate\write\testfontoutput{testchar (\letternamemf);}| + \immediate\write16{CYR_.\letternamemf:= \number\chartestcount;\blank}| + \fi\fi\advance\chartestcount1 + }\dowrite\singlecode + } +\else + \catcode`\{=12 \catcode`\}=12 + \catcode`\(=1 \catcode`\)=2 + \catcode`\^=12 + \gdef\Docode(| + \edef\dowrite(| + \ifx\lettercode\nolettercode|relax + \else + \ifx\letnamestring\nolettercode|relax + \else + \ifMakeFontEnc + \ifBeresta\else + \ifchardef + \immediate\write\chardefoutput(| + \ifaccent + \string\makeaccdef {\letnamestring} {"\firstlet\secondlet}| + \else + \string\makechardef {\letnamestring} {"\firstlet\secondlet}| + \fi)| + \else + \immediate\write\rusdefoutput(| + \ifupper + \string\makeuclcletter\expandafter\string\csname\letnamestring\endcsname{\firstlet\secondlet}%|tempdefinition + \else + \|\expandafter\string\csname\letnamestring\endcsname{\firstlet\secondlet} + \fi)| + \expandafter\def\expandafter\csname\letnamestring\endcsname(\lettercode)|for lccode/uccode file + \fi + \fi + \ifBabel\else + \ifchardef + \ifBeresta + \immediate\write\codeoutput(| + \string\def\expandafter\string\csname\berestachar CYR_\letternamemf\endcsname{\ifcodehats\string\char"\firstlet\secondlet\else--\fi}| + )| + \fi + \else|only letters + \immediate\write\codeoutput(| + \ifx\lettercode\lettercodelig|no letter ligatures + \ifcodehats|Cyrillic letter defined as ^^hex + \ifBeresta + \string\def\expandafter\string\csname\berestachar CYR_\letternamemf\endcsname{\ifcodehats\string\char"\firstlet\secondlet\else--\fi}| + \else + \string\def\expandafter\string\csname\letnamestring\endcsname{^^\lettercode}| + \fi + \else + \ifBeresta + \string\def\expandafter\string\csname\berestachar CYR_\letternamemf\endcsname{\ifcodehats\string\char"\firstlet\secondlet\else--\fi}| + \else + \string\chardef\expandafter\string\csname\letnamestring\endcsname="\firstlet\secondlet| + \fi + \fi + \else + \ifBeresta + \string\def\expandafter\string\csname\berestachar CYR_\letternamemf\endcsname{\ifcodehats\string\char"\firstlet\secondlet\else--\fi}| + \else + \string\def\expandafter\string\csname\letnamestring\endcsname{\lettercodelig}| + \fi + \fi + )| + \fi + \fi + \fi + \fi + \def\csname MF\letternamemf\endcsname(\lettercode)|for ligs&kerning file + \immediate\write\encfontoutput(CYR_.\letternamemf\space:= hex"\lettercode";)| + \immediate\write16(CYR_.\letternamemf:=hex"\lettercode";\blank)| + \fi + )\dowrite\singlecode + ) +\fi +\ifchartest| +\else| +(\catcode`\#=12 |\catcode`\^=7 +\gdef\Doucfile(| + \edef\dowrite(| + \ifBabel + \immediate\write\codeoutput(| + \string\@tmpb\expandafter\string\upperletter{\uppercode}| + \expandafter\string\lowerletter{\lowercode}| + )| + \else + \ifBeresta\else + \immediate\write\codeoutput(| + \string\letter{^^\upperletter}{^^\lowerletter} + )| + \fi + \fi + )\dowrite|\singlecode +) +\gdef\Dochfile(| + \edef\dowrite(| + \immediate\write\codeoutput(| + \ifBabel + \string\@tmpd\expandafter\string\csname\charletter\endcsname{\charcode} + \else + \ifBeresta + \string\def\expandafter\string\csname\berestachar CYR_\letternamemf\endcsname{\ifcodehats\string\char\charcode\else--\fi}| + \else + \string\chardef\expandafter\string\csname\charletter\endcsname=\charcode + \fi + \fi)| + )\dowrite|\singlecode +) +\gdef\Doacfile(| + \edef\dowrite(| + \immediate\write\codeoutput(| + \ifBabel + \string\@tmpc\expandafter\string\csname\charletter\endcsname{\charcode} + \else + \ifBeresta + \string\def\expandafter\string\csname\berestachar CYR_\letternamemf\endcsname{\ifcodehats\string\char\charcode\else--\fi}| + \else + \string\def\expandafter\string\csname\charletter\endcsname{\string\accent\charcode} + \fi + \fi)| + )\dowrite|\singlecode +) +\gdef\Doucfilehead(\ifBabel\else\ifBeresta\else| + \edef\dowrite(| + \immediate\write\codeoutput(%) + \immediate\write\codeoutput(\string\def\string\letter#1#2{%\space + catcodes for Russian letters = \string\letter\space + \string(like A-Z,a-z\string)) + \immediate\write\codeoutput(\string\catcode`#1=11\string\catcode`#2=11%) + \immediate\write\codeoutput(\string\uccode`#1=`#1\string\lccode`#1=`#2%) + \immediate\write\codeoutput(\string\uccode`#2=`#1\string\lccode`#2=`#2%) + \immediate\write\codeoutput(| + \string\count0`#1\string\advance\string\count0 by7000| + \string\mathcode`#1=\string\count0%) + \immediate\write\codeoutput(| + \string\count0`#2\string\advance\string\count0 by7000| + \string\mathcode`#2=\string\count0%) + \immediate\write\codeoutput(}) + )\dowrite\fi\fi|\singlecode + )\catcode`\#=6) +\gdef\Doucfilefoot(\ifBabel\else\ifBeresta\else| + \edef\dowrite(| + \immediate\write\codeoutput(\string\def\string\letter{}%) + \immediate\write\codeoutput(%) + )\dowrite\fi\fi|\singlecode +)| +\fi +\catcode`\{=1 \catcode`\}=2 +} + +\immediate\write16{generated letters:} +\immediate\write16{==================} + +\immediate\openout\encfontoutput=\encfontname +\ifchartest + \immediate\openout\testfontoutput=\testfontname +\fi +\MakeHeadFileDefinition\encfontoutput{\Nencfontname} +\ifMakeFontEnc + \immediate\openout\codeoutput =\codefilename + \MakeHeadFileDefinition\codeoutput{\Ncodefilename} + \ifBabel + {\catcode`\{=12 \catcode`\}=12 + \catcode`\(=1 \catcode`\)=2 + \immediate\write\codeoutput(% + \string\ifx\string\ProvidesFile\string\undefined^^J% + \|\def\string\ProvidesFile\string#1[\string#2]{}^^J\string\fi^^J^^J% + \string\ProvidesFile{\Ncodefilename}^^J% + \|\|\|[\today\space v1.1^^J% + \|\|\|8-bit Cyrillic font encoding based on CM fonts^^J% + \|\|\|created by LHfonts version\space + \number\lhmajver.\number\lhminver]) + \catcode`\{=1 \catcode`\}=2 + } + \fi + \ifBeresta\else + \immediate\openout\rusdefoutput =\rusdefname + \immediate\openout\chardefoutput=\chardefname + \fi +\fi +% +\CodesToBeGenerated +% +\immediate\closeout\encfontoutput +\ifchartest + \immediate\closeout\testfontoutput +\fi +\ifMakeFontEnc + \ifBeresta\else + \immediate\closeout\rusdefoutput + \immediate\closeout\chardefoutput + \fi + \Doucfilehead + \ifBeresta\else + \input \rusdefname + \fi + \Doucfilefoot + \ifBeresta\else + \input \chardefname + \fi + \ifBabel\else\ifBeresta\else\begingroup\catcode`\%=11 + \immediate\write\codeoutput{%^^J\string\input\space rusdef %input additional macros} + \endgroup\fi\fi + \immediate\closeout\codeoutput +\fi +\catcode`\~=13 +\endinput |