summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/ofs
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:46:03 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:46:03 +0000
commit873660d1a83ece926fe7206288dda9c36b349c1b (patch)
treea48f77125c309a355b5d0eb58d6b24446abe9d62 /Master/texmf-dist/tex/generic/ofs
parent2939242967231097459df0fc3150fabc2f639111 (diff)
generic 1
git-svn-id: svn://tug.org/texlive/trunk@613 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/ofs')
-rw-r--r--Master/texmf-dist/tex/generic/ofs/a117.tex223
-rw-r--r--Master/texmf-dist/tex/generic/ofs/a35.sty25
-rw-r--r--Master/texmf-dist/tex/generic/ofs/a35.tex95
-rw-r--r--Master/texmf-dist/tex/generic/ofs/allfonts.sty20
-rw-r--r--Master/texmf-dist/tex/generic/ofs/allfonts.tex14
-rw-r--r--Master/texmf-dist/tex/generic/ofs/amsfn.tex134
-rw-r--r--Master/texmf-dist/tex/generic/ofs/mtfn.tex83
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-6a.tex259
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-6c.tex249
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-6k.tex202
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-6s.tex358
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-6t.tex242
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-6x.tex289
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-6y.tex258
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-8c.tex332
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-8t.tex251
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-8x.tex229
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-8z.tex362
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-ams.tex237
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-cm.tex285
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-mt.tex122
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-ps.tex207
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-px.tex98
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-slt.tex1004
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs-tx.tex357
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs.sty301
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofs.tex1184
-rw-r--r--Master/texmf-dist/tex/generic/ofs/ofsdef.tex414
-rw-r--r--Master/texmf-dist/tex/generic/ofs/pantyk.tex126
-rw-r--r--Master/texmf-dist/tex/generic/ofs/txfn.tex262
30 files changed, 8222 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/ofs/a117.tex b/Master/texmf-dist/tex/generic/ofs/a117.tex
new file mode 100644
index 00000000000..cdca5aba8fa
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/a117.tex
@@ -0,0 +1,223 @@
+% The file a117.tex (C) Petr Olsak, Jan 2004
+% 117 standard PostScript fonts (level 3) from Adobe declared for OFS macro
+
+% After "\input a117", you can use
+%
+% \showfonts ... to show the loaded fontfamilies on terminal
+% \fontusage ... to show the usage of new TeX macros on terminal
+% \input ofs-8z ... macros for spec. characters and accented sequences
+%
+% See ofsdoc.tex manual for more details.
+% This file is a part of OFS macro package by Petr Olsak.
+
+\ifx \ofsdeclarefamily\undefined \input ofs \fi
+\protectreading a117.tex % This is part of OFS package
+
+\input a35 % 35 standard PostScript fonts (level 2)
+
+\ofsputfamlist {^^Ja117.tex:}
+
+\ofsdeclarefamily [AlbertusMT] {% -------------------- AlbertusMT
+ \loadtextfam () pabr\fotenc;%
+ ;%
+ (Italic) pabri\fotenc;%
+ ;;%
+ \newvariant0 \lr (Light) pabl\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [AntiqueOlive] {% ------------------ AntiqueOlive
+ \loadtextfam (Roman) paor\fotenc;%
+ (Bold) paob\fotenc;%
+ (Italic) paori\fotenc;%
+ ;;%
+ \newvariant4 \kr (Compact) paoc\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Bodoni] {% ------------------------ Bodoni
+ \loadtextfam () pbdr\fotenc;%
+ (Bold) pbdb\fotenc;%
+ (Italic) pbdri\fotenc;%
+ (BoldItalic) pbdri\fotenc;;%
+ \newvariant4 \kr (Poster) pbdp\fotenc;;%
+ \newvariant6 \crm (PosterCompressed) pbdpc\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Carta] {% ------------------------- Carta
+ \loadtextfam rpcar;%
+ ;%
+ ;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Clarendon] {% --------------------- Clarendon
+ \loadtextfam () pcdr\fotenc;%
+ (Bold) pcdb\fotenc;%
+ ;%
+ ;;%
+ \newvariant0 \lr (Light) pcdl\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [CooperBlack] {% ------------------ CooperBlack
+ \loadtextfam () pcbr\fotenc;%
+ ;%
+ (Italic) pcbri\fotenc;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Copperplate] {% ------------------ Copperplate
+ \loadtextfam (ThirtyTwoBC) pcpr\fotenc;%
+ (ThirtyThreeBC) pcpb\fotenc;%
+ ;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Coronet] {% ----------------------- Coronet
+ \loadtextfam (Regular) pcor\fotenc;%
+ ;%
+ ;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Eurostile] {% --------------------- Eurostile
+ \loadtextfam () peur\fotenc;%
+ (Bold) peub\fotenc;%
+ ;%
+ ;;%
+ \newvariant8 \erm (ExtendedTwo) peurx\fotenc;;%
+ \newvariant9 \ebf (BoldExtendedTwo) peubx\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [GillSans] {% ---------------------- GillSans
+ \loadtextfam () pgsr\fotenc;%
+ (Bold) pgsb\fotenc;%
+ (Italic) pgsri\fotenc;%
+ (BoldItalic) pgsbi\fotenc;;%
+ \newvariant0 \lr (Light) pgsl\fotenc;;%
+ \newvariant1 \li (LightItalic) pgsli\fotenc;;%
+ \newvariant4 \kr (ExtraBold) pgsbx\fotenc;;%
+ \newvariant6 \crm (Condensed) pgsrc\fotenc;;%
+ \newvariant7 \cbf (BoldCondensed) pgsbc\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Goudy] {% ------------------------- Goudy
+ \loadtextfam () pgyr\fotenc;%
+ (Bold) pgyb\fotenc;%
+ (Italic) pgyri\fotenc;%
+ (BoldItalic) pgybi\fotenc;;%
+ \newvariant4 \kr (ExtraBold) pgybx\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [HelveticaCondensed] {% ------------ HelveticaCondensed
+ \loadtextfam () phvrc\fotenc;%
+ (Bold) phvbc\fotenc;%
+ (Oblique) phvoc\fotenc;%
+ (BoldObl) phvboc\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [JoannaMT] {% ---------------------- JoannaMT
+ \loadtextfam () pjmr\fotenc;%
+ (Bold) pjmb\fotenc;%
+ (Italic) pjmri\fotenc;%
+ (BoldItalic) pjmbi\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [LetterGothic] {% ------------------ LetterGothic
+ \loadtextfam () plgr\fotenc;%
+ (Bold) plgb\fotenc;%
+ (Slanted) plgrs\fotenc;%
+ (BoldSlanted) plgbs\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [LubalinGraph] {% ------------------ LubalinGraph
+ \loadtextfam (Book) plrb\fotenc;%
+ (Demi) plrd\fotenc;%
+ (BookOblique) plrbo\fotenc;%
+ (DemiOblique) plrdo\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Marigold] {% ---------------------- Marigold
+ \loadtextfam () pmrr\fotenc;%
+ ;%
+ ;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [MonaLisa] {% ---------------------- MonaLisa
+ \loadtextfam (Recut) pmlr\fotenc;%
+ ;%
+ ;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Optima] {% ------------------------ Optima
+ \loadtextfam () popr\fotenc;%
+ (Bold) popb\fotenc;%
+ (Italic) popri\fotenc;%
+ (BoldItalic) popbi\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Oxford] {% ------------------------ Oxford
+ \loadtextfam () poxr\fotenc;%
+ ;%
+ ;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [StempelGaramond] {% --------------- StempelGaramond
+ \loadtextfam (Roman) psgr\fotenc;%
+ (Bold) psgb\fotenc;%
+ (Italic) psgri\fotenc;%
+ (BoldItalic) psgbi\fotenc;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Tekton] {% ------------------------ Tekton
+ \loadtextfam () ptkr\fotenc;%
+ ;%
+ ;%
+ ;;%
+}
+\registerenc: 8z
+
+\ofsdeclarefamily [Univers] {% ----------------------- Univers
+ \loadtextfam () punr\fotenc;%
+ (Bold) punb\fotenc;%
+ (Oblique) punro\fotenc;%
+ (BoldOblique) punbo\fotenc;;%
+ \newvariant0 \lr (Light) punl\fotenc;;%
+ \newvariant1 \li (LightOblique) punlo\fotenc;;%
+ \newvariant4 \crm (Condensed) punc\fotenc;;%
+ \newvariant5 \cbf (CondensedBold) puncb\fotenc;;%
+ \newvariant6 \cit (CondensedOblique) punco\fotenc;;%
+ \newvariant7 \cbi (CondensedBoldOblique) puncbo\fotenc;;%
+ \newvariant8 \ebf (BoldExt) punbx\fotenc;;%
+ \newvariant9 \ebi (BoldExtObl) punbxo\fotenc;;%
+}
+\registerenc: 8z
+
+\endinput
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/a35.sty b/Master/texmf-dist/tex/generic/ofs/a35.sty
new file mode 100644
index 00000000000..1e7d8edc5c1
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/a35.sty
@@ -0,0 +1,25 @@
+%%% OSF-style file, see ofsdoc.tex for more details
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Jul 2001 Petr Olsak
+
+% See ofsdoc.tex manual for more details.
+% This file is a part of OFS macro package by Petr Olsak.
+
+\ifx\OFSprocessoptions\undefined
+ \ProvidesPackage {a35}
+ \RequirePackage {ofs}
+\fi
+
+\OFSputfamlist {a35.sty:}
+
+\OFSdeclarefamily [AvantGarde] {pag} \OFSnormalvariants
+\OFSdeclarefamily [Bookman] {pbk} \OFSnormalvariants
+\OFSdeclarefamily [NewCentury] {pnc} \OFSnormalvariants
+\OFSdeclarefamily [Palatino] {ppl} \OFSnormalvariants
+\OFSdeclarefamily [ZapfChancery] {pzc}
+\OFSputfamlist {\string\rm, \space- , \string\it, \space -}
+\OFSdeclarefamily [ZapfDingbats] {pzd}
+\OFSputfamlist {\string\rm, \space- , \space- , \space -}
+\OFSdeclarefamily [Symbol] {psy}
+\OFSputfamlist {\string\rm, \space- , \string\it, \space -}
+
diff --git a/Master/texmf-dist/tex/generic/ofs/a35.tex b/Master/texmf-dist/tex/generic/ofs/a35.tex
new file mode 100644
index 00000000000..88bef46c0df
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/a35.tex
@@ -0,0 +1,95 @@
+% The file a35.tex (C) Petr Olsak, Jun 2001
+% 35 standard PostScript fonts from Adobe declared for OFS macro
+
+% After "\input a35", you can use
+%
+% \showfonts ... to show the loaded fontfamilies on terminal
+% \fontusage ... to show the usage of new TeX macros on terminal
+% \input ofs-8z ... macros for spec. characters and accented sequences
+%
+% See ofsdoc.tex manual for more details.
+% This file is a part of OFS macro package by Petr Olsak.
+
+\ifx \ofsdeclarefamily\undefined \input ofs \fi
+\protectreading a35.tex % This is part of OFS package
+
+\ofsputfamlist {^^Ja35.tex:}
+
+%%% Times, Helvetica, Courier is in OFS defaults
+
+\ofsdeclarefamily [AvantGarde] {% -------------------- AvantGarde
+ \loadtextfam (Book) pagk\fotenc;%
+ (Demi) pagd\fotenc;%
+ (BookOblique) pagko\fotenc;%
+ (DemiOblique) pagdo\fotenc;\defaultextraenc;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+\ofsdeclarefamily [Bookman] {% ----------------------- Bookman
+ \loadtextfam (Light) pbkl\fotenc;%
+ (Demi) pbkd\fotenc;%
+ (LightItalic) pbkli\fotenc;%
+ (DemiItalic) pbkdi\fotenc;\defaultextraenc;%
+ \def\TeX{T\kern-.14em\lower.4ex\hbox{E}\kern-.125emX}%
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+\ofsdeclarefamily [NewCentury] {% -------------------- NewCenturySchlbk
+ \loadtextfam (Roman) pncr\fotenc;%
+ pncb\fotenc;%
+ pncri\fotenc;%
+ pncbi\fotenc;\defaultextraenc;%
+ \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}%
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+\ofsdeclarefamily [Palatino] {% ---------------------- Palatino
+ \loadtextfam (Roman) pplr\fotenc;%
+ pplb\fotenc;%
+ pplri\fotenc;%
+ pplbi\fotenc;\defaultextraenc;%
+ \def\TeX{T\kern-.1667em\lower.3333ex\hbox{E}\kern-.125emX}%
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+%%% The variants of \TeX macros above
+%%% was developed by Ivo Jancik
+
+\ofsdeclarefamily [ZapfChancery] {% ------------------ ZapfChancery
+ \loadtextfam (MediumItalic) pzcmi\fotenc;%
+ ;%
+ (MediumItalic) pzcmi\fotenc;%
+ ;\defaultextraenc;%
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+\ofsdeclarefamily [ZapfDingbats] {% ------------------ ZapfDingbats
+ \loadtextfam pzdr;%
+ ;%
+ ;%
+ ;;%
+}
+\ofsdeclarefamily [Symbol] {% ------------------------ Symbol
+ \loadtextfam psyr;%
+ ;%
+ (Slanted) psyro;% slanted geometrically
+ ;;%
+}
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/ofs/allfonts.sty b/Master/texmf-dist/tex/generic/ofs/allfonts.sty
new file mode 100644
index 00000000000..a18d554ae7d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/allfonts.sty
@@ -0,0 +1,20 @@
+% This file may be used by OFS (Olsak Font System)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx\OFSprocessoptions\undefined
+ \ProvidesPackage {allfonts}
+ \RequirePackage {ofs}
+\fi
+
+% The contents of this file is depend on the fonts installed in your TeX
+% system. If you install some fonts supported by OFS (or you write
+% the OFS support yourself), add the \RequirePackage {<package>}
+% in the following list:
+
+\RequirePackage{a35}
+
+% example:
+% \RequirePackage {skatalog}
+% after you install the fonts from Storm Type Foundry.
+%
+% See ofsdoc.tex for more information about OFS.
diff --git a/Master/texmf-dist/tex/generic/ofs/allfonts.tex b/Master/texmf-dist/tex/generic/ofs/allfonts.tex
new file mode 100644
index 00000000000..c45ae0fb450
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/allfonts.tex
@@ -0,0 +1,14 @@
+% This file may be used by OFS (Olsak Font System)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The contents of this file is depend on the fonts installed in your TeX
+% system. If you install some fonts supported by OFS (or you write
+% the OFS support yourself), add the \input <file> in the following list:
+
+\input a35
+
+% example:
+% \input skatalog
+% after you install the fonts from Storm Type Foundry.
+%
+% See ofsdoc.tex for more information about OFS.
diff --git a/Master/texmf-dist/tex/generic/ofs/amsfn.tex b/Master/texmf-dist/tex/generic/ofs/amsfn.tex
new file mode 100644
index 00000000000..c3690072147
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/amsfn.tex
@@ -0,0 +1,134 @@
+% OFS: AMS fonts, declaration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+%% see more info at the end of this file
+
+\protectreading amsfn.tex % This is part of OFS package
+
+\def\loadAMSnormalmath{%
+ \loadCMnormalmath
+ \chardef\msamfam 8
+ \loadmathfam \msamfam [/msam]% MSAM, symbols from ASMTeX
+ \chardef\msbmfam 9
+ \loadmathfam \msbmfam [/msbm]% MSBM, symbols from AMSTeX
+ \lastfam =9
+}
+\def\loadAMSboldmath{%
+ \loadCMboldmath
+ \chardef\msamfam 8
+ \loadmathfam \msamfam [/msam]% MSAM, symbols from ASMTeX
+ \chardef\msbmfam 9
+ \loadmathfam \msbmfam [/msbm]% MSBM, symbols from AMSTeX
+ \lastfam =9
+}
+\def\setAMSmathchars{\mathencread ofs-ams;}
+
+\def\registerAMSfonts #1 {%
+ \registertfm #1 - #110 %
+ \registertfm #1 0pt-6pt #15 %
+ \registertfm #1 6pt-7pt #16 %
+ \registertfm #1 7pt-8pt #17 %
+ \registertfm #1 8pt-9pt #18 %
+ \registertfm #1 9pt-10pt #19 %
+ \registertfm #1 10pt-* #110 %
+}
+\registerAMSfonts msam %
+\registerAMSfonts msbm %
+\registerAMSfonts eufm %
+\registerAMSfonts eufb %
+\registerAMSfonts eurm %
+\registerAMSfonts eurb %
+\registerAMSfonts eusm %
+\registerAMSfonts eusb %
+
+\registertfm cmbsy - - % reset
+\registerAMSfonts cmbsy %
+\registertfm cmex - - % reset
+\registerAMSfonts cmex %
+\registertfm cmmib - - % reset
+\registerAMSfonts cmmib %
+
+\registertfm euex - euex10 %
+\registertfm euex 0pt-8pt euex7 %
+\registertfm euex 8pt-9pt euex8 %
+\registertfm euex 9pt-10pt euex9 %
+\registertfm euex 10pt-* euex10 %
+
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+You can use all AMS symbol sequences together with CM fonts in
+math formulae after:
+
+\input amsfn
+\def\fomenc{AMS}
+\setmath[//]
+
+You can add the Euler Fraktur to the math fonts by the following
+commands (before \setmath command):
+
+\addcmd\mathfonts {\def\tmpa{bold}%
+ \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{m}\fi
+ \newmathfam\frakfam \loadmathfam\frakfam [/euf\tmpa]}
+\def\frak#1{{\fam\frakfam#1}}
+
+You can add the Euler Script to the math fonts:
+
+\addcmd\mathfonts {\def\tmpa{bold}%
+ \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{m}\fi
+ \newmathfam\scriptfam \loadmathfam\scriptfam [/eus\tmpa]}
+\def\script#1{{\fam\scriptfam#1}}
+
+You can add the Euler Upright italic to the math fonts:
+
+\addcmd\mathfonts {\def\tmpa{bold}%
+ \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{m}\fi
+ \newmathfam\upitfam \loadmathfam\upitfam [/eur\tmpa]}
+\def\upright#1{{\fam\upitfam#1}}
+
+You can replace standard CM operators \sum, \int, etc. by the
+operators from Euler extension font by the following commands:
+
+\addcmd\mathfonts{\newmathfam\euexfam \loadmathfam\euexfam [/euex]}
+\addcmd\mathchars{%
+ \mathchardef \ointop "1\hex\euexfam 48
+ \mathchardef \sum "1\hex\euexfam 50
+ \mathchardef \prod "1\hex\euexfam 51
+ \mathchardef \intop "1\hex\euexfam 52
+ \mathchardef \uprod "1\hex\euexfam 60
+ \edef \lbrace {\delimiter "4266\hex\euexfam 08 }%
+ \edef \rbrace {\delimiter "5267\hex\euexfam 09 }%
+ \let\{=\lbrace
+ \let\}=\rbrace
+ \mathchardef \letfharpoonup "3\hex\euexfam 18
+ \mathchardef \leftharpoondown "3\hex\euexfam 19
+ \mathchardef \rightharpoonup "3\hex\euexfam 1A
+ \mathchardef \rightharpoondown "3\hex\euexfam 1B
+ \mathchardef \leftarrow "3\hex\euexfam 20
+ \mathchardef \rightarrow "3\hex\euexfam 21
+ \mathchardef \leftrightarrow "3\hex\euexfam 24
+ \mathchardef \nearrow "3\hex\euexfam 25
+ \mathchardef \searrow "3\hex\euexfam 26
+ \mathchardef \Leftarrow "3\hex\euexfam 28
+ \mathchardef \Rightarrow "3\hex\euexfam 29
+ \mathchardef \Leftrightarrow "3\hex\euexfam 2C
+ \mathchardef \nwarrow "3\hex\euexfam 2D
+ \mathchardef \swarrow "3\hex\euexfam 2E
+ \mathchardef \infty "0\hex\euexfam 31
+ \edef \uparrow {\delimiter "3\hex\euexfam 22378 }%
+ \edef \downarrow {\delimiter "3\hex\euexfam 23379 }%
+ \edef \Uparrow {\delimiter "3\hex\euexfam 2A37E }%
+ \edef \Downarrow {\delimiter "3\hex\euexfam 2B37F }%
+ \edef \updownarrow {\delimiter "3\hex\euexfam 6C33F }%
+ \edef \Updownarrow {\delimiter "3\hex\euexfam 6D377 }%
+}
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/mtfn.tex b/Master/texmf-dist/tex/generic/ofs/mtfn.tex
new file mode 100644
index 00000000000..85c742c3d20
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/mtfn.tex
@@ -0,0 +1,83 @@
+% This file declares the MathTimes fonts using OFS macros
+% See ofsdoc.tex (OFS -- Olsak's Font System) for more details
+% Remember that the MathTimes fonts is non free package.
+
+\protectreading mtfn.tex % This is part of OFS package
+
+\def\Timestext{Times}
+\def\iftimes{\ifx\currentfamily\Timestext}
+
+\def\loadMTnormalmath{%
+ \loadmathfam 0[-rm/]% Actual Roman font
+ \iftimes
+ \fontmessage { \space\space MathTimes used for MathItalics}%
+ \defaultskewchar=45
+ \loadmathfam 1[/mtmi]% MathTimes italic font for variables
+ \else
+ \fontmessage { \space\space \currentfamily-it used for MathItalics}%
+ \loadmathfam 1[-it/]% Actual Italic font for variables
+ \fi
+ \defaultskewchar=48
+ \loadmathfam 2[/mtsyn]% Symbols from MathTimes
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/mtex]% Extra symbols from MathTimes
+ \chardef\mtifam 4
+ \defaultskewchar=45
+ \loadmathfam \mtifam [/mtmi]% MathTimes italic (for greek)
+ \defaultskewchar=-1
+ \chardef \itfam 5
+ \loadmathfam \itfam [-it/]% Actual Italic
+ \chardef \bffam 6
+ \loadmathfam \bffam [-bf/]% Actual Bold font
+ \chardef \bifam 7
+ \loadmathfam \bifam [-bi/]% Actual Bold Italic font
+ \chardef \gufam 8
+ \loadmathfam \gufam [/mtgu]% MathTimes greek unslanted
+ \chardef \scrfam 9
+ \loadmathfam \scrfam [/mtms]% MathTimes script
+ \lastfam =9
+ \let\ttfam=\undefined
+}
+\def\loadMTboldmath{%
+ \loadmathfam 0[-bf/]% Actual Bold font
+ \iftimes
+ \fontmessage { \space\space MathTimes used for bold MathItalics}%
+ \defaultskewchar=45
+ \loadmathfam 1[/mtmib]% MathTimes Bold-Italic font
+ \else
+ \fontmessage { \space\space \currentfamily-bi used for bold MathItalics}%
+ \loadmathfam 1[-bi/]% Actual Bold-Italic font
+ \fi
+ \defaultskewchar=48
+ \loadmathfam 2[/mtsyb]% Bold symbols from MathTimes
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/mtexb]% Extra bold symbols from MathTimes
+ \chardef\bffam=0
+ \chardef \mtifam 4
+ \defaultskewchar=45
+ \loadmathfam \mtifam [/mtmib]% MathTimes bold italic (for greek)
+ \defaultskewchar=-1
+ \chardef\itfam 5 \chardef\bifam 5
+ \loadmathfam \bifam [-bi/]% Actual Bold Italic font
+ \chardef \itfam 6
+ \loadmathfam \bffam [-bf/]% Actual Bold font
+ \chardef \gufam 8
+ \loadmathfam \gufam [/mtgub]% MathTimes greek bold unslanted
+ \chardef \scrfam 9
+ \loadmathfam \scrfam [/mtmsb]% MathTimes script bold
+ \lastfam =9
+ \let\ttfam=\undefined
+}
+\def\setMTmathchars{\mathencread ofs-mt;}
+
+\def\cal{\fam\scrfam}
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-6a.tex b/Master/texmf-dist/tex/generic/ofs/ofs-6a.tex
new file mode 100644
index 00000000000..ea20bc0400c
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-6a.tex
@@ -0,0 +1,259 @@
+% OFS: Declaration of Cyrrilic T2A encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mar 2004 Petr Olsak
+
+% 6a = T2A encoding
+
+\protectreading ofs-6a.tex % This is part of OFS package
+
+\accentdef \` * 6a {\accent 0}
+\accentdef \' * 6a {\accent 1}
+\accentdef \^ * 6a {\accent 2}
+\accentdef \~ * 6a {\accent 3}
+\accentdef \" * 6a {\accent 4}
+\accentdef \H * 6a {\accent 5}
+\accentdef \r * 6a {\accent 6}
+\accentdef \v * 6a {\accent 7}
+\accentdef \u * 6a {\accent 8}
+\accentdef \= * 6a {\accent 9}
+\accentdef \. * 6a {\accent 10}
+\accentdef \f * 6a {\accent 18}
+\accentdef \C * 6a {\accent 19}
+\accentdef \U * 6a {\accent 20}
+\accentdef \b * 6a {\accentbelow {\char9}{.15ex}}
+\accentdef \c * 6a {\accentbelow {\char11}{0pt}}
+\accentdef \d * 6a {\accentbelow {.}{.1ex}}
+\accentdef \k * 6a {\accentbelow {\char12}{0pt}}
+
+\let\promile=\relax
+\characterdef \promile 6a {\%\char 24 }
+\characterdef \pertenthousand 6a {\%\char 24\char 24 }
+
+\characterdef \textendash 6a 21
+\characterdef \cyrdash 6a 22
+\characterdef \textemdash 6a 22
+\characterdef \textcompwordmark 6a 23
+\characterdef \textvisiblespace 6a 32
+\characterdef \textdollar 6a 36
+\characterdef \textless 6a 60
+\characterdef \textgreater 6a 62
+\characterdef \textbackslash 6a 92
+\characterdef \textasciicircum 6a 94
+\characterdef \textunderscore 6a 95
+\characterdef \textbraceleft 6a 123
+\characterdef \textbar 6a 124
+\characterdef \textbraceright 6a 125
+\characterdef \textasciitilde 6a 126
+\characterdef \textnumero 6a 157
+\characterdef \textcurrency 6a 158
+\characterdef \textsection 6a 159
+\characterdef \textquotedbl 6a 34
+\characterdef \textquoteleft 6a 96
+\characterdef \textquoteright 6a 39
+\characterdef \textquotedblleft 6a 16
+\characterdef \textquotedblright 6a 17
+\characterdef \quotedblbase 6a 189
+\characterdef \CYRpalochka 6a 13
+\characterdef \cyrlangle 6a 14
+\characterdef \cyrrangle 6a 15
+\characterdef \guillemotleft 6a 190
+\characterdef \guillemotright 6a 191
+\characterdef \dotlessi 6a 25
+\characterdef \dotlessj 6a 26
+
+\let\i=\dotlessi \let\j=\dotlessj
+\accentdef \. i 6a `\i
+\accentdef \` i 6a {\accent0 \i}
+\accentdef \` {\i} 6a {\accent0 \i}
+\accentdef \' i 6a {\accent1 \i}
+\accentdef \' {\i} 6a {\accent1 \i}
+\accentdef \^ i 6a {\accent2 \i}
+\accentdef \^ {\i} 6a {\accent2 \i}
+\accentdef \" i 6a {\accent4 \i}
+\accentdef \" {\i} 6a {\accent4 \i}
+
+\characterdef \CYRA 6a 192
+\characterdef \cyra 6a 224
+\characterdef \CYRB 6a 193
+\characterdef \cyrb 6a 225
+\characterdef \CYRV 6a 194
+\characterdef \cyrv 6a 226
+\characterdef \CYRG 6a 195
+\characterdef \cyrg 6a 227
+\characterdef \CYRD 6a 196
+\characterdef \cyrd 6a 228
+\characterdef \CYRE 6a 197
+\characterdef \cyre 6a 229
+\characterdef \CYRZH 6a 198
+\characterdef \cyrzh 6a 230
+\characterdef \CYRZ 6a 199
+\characterdef \cyrz 6a 231
+\characterdef \CYRI 6a 200
+\characterdef \cyri 6a 232
+\characterdef \CYRISHRT 6a 201
+\characterdef \cyrishrt 6a 233
+\characterdef \CYRK 6a 202
+\characterdef \cyrk 6a 234
+\characterdef \CYRL 6a 203
+\characterdef \cyrl 6a 235
+\characterdef \CYRM 6a 204
+\characterdef \cyrm 6a 236
+\characterdef \CYRN 6a 205
+\characterdef \cyrn 6a 237
+\characterdef \CYRO 6a 206
+\characterdef \cyro 6a 238
+\characterdef \CYRP 6a 207
+\characterdef \cyrp 6a 239
+\characterdef \CYRR 6a 208
+\characterdef \cyrr 6a 240
+\characterdef \CYRS 6a 209
+\characterdef \cyrs 6a 241
+\characterdef \CYRT 6a 210
+\characterdef \cyrt 6a 242
+\characterdef \CYRU 6a 211
+\characterdef \cyru 6a 243
+\characterdef \CYRF 6a 212
+\characterdef \cyrf 6a 244
+\characterdef \CYRH 6a 213
+\characterdef \cyrh 6a 245
+\characterdef \CYRC 6a 214
+\characterdef \cyrc 6a 246
+\characterdef \CYRCH 6a 215
+\characterdef \cyrch 6a 247
+\characterdef \CYRSH 6a 216
+\characterdef \cyrsh 6a 248
+\characterdef \CYRSHCH 6a 217
+\characterdef \cyrshch 6a 249
+\characterdef \CYRHRDSN 6a 218
+\characterdef \cyrhrdsn 6a 250
+\characterdef \CYRERY 6a 219
+\characterdef \cyrery 6a 251
+\characterdef \CYRSFTSN 6a 220
+\characterdef \cyrsftsn 6a 252
+\characterdef \CYREREV 6a 221
+\characterdef \cyrerev 6a 253
+\characterdef \CYRYU 6a 222
+\characterdef \cyryu 6a 254
+\characterdef \CYRYA 6a 223
+\characterdef \cyrya 6a 255
+\characterdef \CYRGUP 6a 128
+\characterdef \cyrgup 6a 160
+\characterdef \CYRGHCRS 6a 129
+\characterdef \cyrghcrs 6a 161
+\characterdef \CYRDJE 6a 130
+\characterdef \cyrdje 6a 162
+\characterdef \CYRTSHE 6a 131
+\characterdef \cyrtshe 6a 163
+\characterdef \CYRSHHA 6a 132
+\characterdef \cyrshha 6a 164
+\characterdef \CYRZHDSC 6a 133
+\characterdef \cyrzhdsc 6a 165
+\characterdef \CYRZDSC 6a 134
+\characterdef \cyrzdsc 6a 166
+\characterdef \CYRLJE 6a 135
+\characterdef \cyrlje 6a 167
+\characterdef \CYRYI 6a 136
+\characterdef \cyryi 6a 168
+\characterdef \CYRKDSC 6a 137
+\characterdef \cyrkdsc 6a 169
+\characterdef \CYRKBEAK 6a 138
+\characterdef \cyrkbeak 6a 170
+\characterdef \CYRKVCRS 6a 139
+\characterdef \cyrkvcrs 6a 171
+\characterdef \CYRAE 6a 140
+\characterdef \cyrae 6a 172
+\characterdef \CYRNDSC 6a 141
+\characterdef \cyrndsc 6a 173
+\characterdef \CYRNG 6a 142
+\characterdef \cyrng 6a 174
+\characterdef \CYRDZE 6a 143
+\characterdef \cyrdze 6a 175
+\characterdef \CYROTLD 6a 144
+\characterdef \cyrotld 6a 176
+\characterdef \CYRSDSC 6a 145
+\characterdef \cyrsdsc 6a 177
+\characterdef \CYRUSHRT 6a 146
+\characterdef \cyrushrt 6a 178
+\characterdef \CYRY 6a 147
+\characterdef \cyry 6a 179
+\characterdef \CYRYHCRS 6a 148
+\characterdef \cyryhcrs 6a 180
+\characterdef \CYRHDSC 6a 149
+\characterdef \cyrhdsc 6a 181
+\characterdef \CYRDZHE 6a 150
+\characterdef \cyrdzhe 6a 182
+\characterdef \CYRCHVCRS 6a 151
+\characterdef \cyrchvcrs 6a 183
+\characterdef \CYRCHRDSC 6a 152
+\characterdef \cyrchrdsc 6a 184
+\characterdef \CYRIE 6a 153
+\characterdef \cyrie 6a 185
+\characterdef \CYRSCHWA 6a 154
+\characterdef \cyrschwa 6a 186
+\characterdef \CYRNJE 6a 155
+\characterdef \cyrnje 6a 187
+\characterdef \CYRYO 6a 156
+\characterdef \cyryo 6a 188
+\characterdef \CYRII 6a 73
+\characterdef \cyrii 6a 105
+\characterdef \CYRJE 6a 74
+\characterdef \cyrje 6a 106
+\characterdef \CYRQ 6a 81
+\characterdef \cyrq 6a 113
+\characterdef \CYRW 6a 87
+\characterdef \cyrw 6a 119
+
+\accentdef \" \CYRE 6a 156
+\accentdef \" \cyre 6a 188
+\accentdef \U \CYRI 6a 201
+\accentdef \U \cyri 6a 233
+\accentdef \" \CYRII 6a 136
+\accentdef \" \cyrii 6a 168
+\accentdef \c \CYRZ 6a 134
+\accentdef \c \cyrz 6a 166
+\accentdef \k \CYRS 6a 145
+\accentdef \k \cyrs 6a 177
+\accentdef \U \CYRU 6a 146
+\accentdef \U \cyru 6a 178
+
+%%% lccodes, uccodes:
+
+\modifydef 6a:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodesloop ^^a0^^bc^^80% from \cyrgup to \cyryo, first cap: \CYRGUP
+ \lccodesloop ^^e0^^ff^^c0% from \cyra to \cyrya, first cap: \CYRA
+ \def\lccodesback {\zerolccodes ^^80^^ff}%
+}
+
+
+%%% The CM font metric mapping:
+
+\registerECfont cmr6a larm %
+\registerECfont cmbx6a labx %
+\registerECfont cmti6a lati %
+\registerECfont cmbxti6a labi %
+\registerECfont cmsl6a lasl %
+\registerECfont cmbxsl6a labl %
+
+\registerECfont cmss6a lass %
+\registerECfont cmssbx6a lasx %
+\registerECfont cmssi6a lasi %
+\registerECfont cmssbxti6a laso %
+
+\registerECTTfont cmtt6a latt %
+\registerECTTfont cmitt6a lait %
+\registerECTTfont cmsltt6a last %
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-6c.tex b/Master/texmf-dist/tex/generic/ofs/ofs-6c.tex
new file mode 100644
index 00000000000..f3a2ff2230e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-6c.tex
@@ -0,0 +1,249 @@
+% OFS: Declaration of Cyrrilic T2A encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mar 2004 Petr Olsak
+
+% 6c = T2C encoding
+
+\protectreading ofs-6c.tex % This is part of OFS package
+
+\accentdef \` * 6c {\accent 0}
+\accentdef \' * 6c {\accent 1}
+\accentdef \^ * 6c {\accent 2}
+\accentdef \~ * 6c {\accent 3}
+\accentdef \" * 6c {\accent 4}
+\accentdef \H * 6c {\accent 5}
+\accentdef \r * 6c {\accent 6}
+\accentdef \v * 6c {\accent 7}
+\accentdef \u * 6c {\accent 8}
+\accentdef \= * 6c {\accent 9}
+\accentdef \. * 6c {\accent 10}
+\accentdef \f * 6c {\accent 18}
+\accentdef \C * 6c {\accent 19}
+\accentdef \U * 6c {\accent 20}
+\accentdef \b * 6c {\accentbelow {\char9}{.15ex}}
+\accentdef \c * 6c {\accentbelow {\char11}{0pt}}
+\accentdef \d * 6c {\accentbelow {.}{.1ex}}
+\accentdef \k * 6c {\accentbelow {\char12}{0pt}}
+
+\let\promile=\relax
+\characterdef \promile 6c {\%\char 24 }
+\characterdef \pertenthousand 6c {\%\char 24\char 24 }
+
+\characterdef \textendash 6c 21
+\characterdef \cyrdash 6c 22
+\characterdef \textemdash 6c 22
+\characterdef \textcompwordmark 6c 23
+\characterdef \textvisiblespace 6c 32
+\characterdef \textdollar 6c 36
+\characterdef \textless 6c 60
+\characterdef \textgreater 6c 62
+\characterdef \textbackslash 6c 92
+\characterdef \textasciicircum 6c 94
+\characterdef \textunderscore 6c 95
+\characterdef \textbraceleft 6c 123
+\characterdef \textbar 6c 124
+\characterdef \textbraceright 6c 125
+\characterdef \textasciitilde 6c 126
+\characterdef \textnumero 6c 157
+\characterdef \textcurrency 6c 158
+\characterdef \textsection 6c 159
+\characterdef \textquotedbl 6c 34
+\characterdef \textquoteleft 6c 96
+\characterdef \textquoteright 6c 39
+\characterdef \textquotedblleft 6c 16
+\characterdef \textquotedblright 6c 17
+\characterdef \quotedblbase 6c 189
+\characterdef \CYRpalochka 6c 13
+\characterdef \cyrlangle 6c 14
+\characterdef \cyrrangle 6c 15
+\characterdef \guillemotleft 6c 190
+\characterdef \guillemotright 6c 191
+\characterdef \dotlessi 6c 25
+\characterdef \dotlessj 6c 26
+
+\let\i=\dotlessi \let\j=\dotlessj
+\accentdef \. i 6c `\i
+\accentdef \` i 6c {\accent0 \i}
+\accentdef \` {\i} 6c {\accent0 \i}
+\accentdef \' i 6c {\accent1 \i}
+\accentdef \' {\i} 6c {\accent1 \i}
+\accentdef \^ i 6c {\accent2 \i}
+\accentdef \^ {\i} 6c {\accent2 \i}
+\accentdef \" i 6c {\accent4 \i}
+\accentdef \" {\i} 6c {\accent4 \i}
+
+\characterdef \CYRA 6c 192
+\characterdef \cyra 6c 224
+\characterdef \CYRB 6c 193
+\characterdef \cyrb 6c 225
+\characterdef \CYRV 6c 194
+\characterdef \cyrv 6c 226
+\characterdef \CYRG 6c 195
+\characterdef \cyrg 6c 227
+\characterdef \CYRD 6c 196
+\characterdef \cyrd 6c 228
+\characterdef \CYRE 6c 197
+\characterdef \cyre 6c 229
+\characterdef \CYRZH 6c 198
+\characterdef \cyrzh 6c 230
+\characterdef \CYRZ 6c 199
+\characterdef \cyrz 6c 231
+\characterdef \CYRI 6c 200
+\characterdef \cyri 6c 232
+\characterdef \CYRISHRT 6c 201
+\characterdef \cyrishrt 6c 233
+\characterdef \CYRK 6c 202
+\characterdef \cyrk 6c 234
+\characterdef \CYRL 6c 203
+\characterdef \cyrl 6c 235
+\characterdef \CYRM 6c 204
+\characterdef \cyrm 6c 236
+\characterdef \CYRN 6c 205
+\characterdef \cyrn 6c 237
+\characterdef \CYRO 6c 206
+\characterdef \cyro 6c 238
+\characterdef \CYRP 6c 207
+\characterdef \cyrp 6c 239
+\characterdef \CYRR 6c 208
+\characterdef \cyrr 6c 240
+\characterdef \CYRS 6c 209
+\characterdef \cyrs 6c 241
+\characterdef \CYRT 6c 210
+\characterdef \cyrt 6c 242
+\characterdef \CYRU 6c 211
+\characterdef \cyru 6c 243
+\characterdef \CYRF 6c 212
+\characterdef \cyrf 6c 244
+\characterdef \CYRH 6c 213
+\characterdef \cyrh 6c 245
+\characterdef \CYRC 6c 214
+\characterdef \cyrc 6c 246
+\characterdef \CYRCH 6c 215
+\characterdef \cyrch 6c 247
+\characterdef \CYRSH 6c 216
+\characterdef \cyrsh 6c 248
+\characterdef \CYRSHCH 6c 217
+\characterdef \cyrshch 6c 249
+\characterdef \CYRHRDSN 6c 218
+\characterdef \cyrhrdsn 6c 250
+\characterdef \CYRERY 6c 219
+\characterdef \cyrery 6c 251
+\characterdef \CYRSFTSN 6c 220
+\characterdef \cyrsftsn 6c 252
+\characterdef \CYREREV 6c 221
+\characterdef \cyrerev 6c 253
+\characterdef \CYRYU 6c 222
+\characterdef \cyryu 6c 254
+\characterdef \CYRYA 6c 223
+\characterdef \cyrya 6c 255
+\characterdef \CYRPHK 6c 128
+\characterdef \cyrphk 6c 160
+\characterdef \CYRTETSE 6c 129
+\characterdef \cyrtetse 6c 161
+\characterdef \CYRTDSC 6c 130
+\characterdef \cyrtdsc 6c 162
+\characterdef \CYRGHK 6c 131
+\characterdef \cyrghk 6c 163
+\characterdef \CYRSHHA 6c 132
+\characterdef \cyrshha 6c 164
+\characterdef \CYRRDSC 6c 133
+\characterdef \cyrrdsc 6c 165
+\characterdef \CYRRTICK 6c 134
+\characterdef \cyrrtick 6c 166
+\characterdef \CYRABHDZE 6c 135
+\characterdef \cyrabhdze 6c 167
+\characterdef \CYRMDSC 6c 136
+\characterdef \cyrmdsc 6c 168
+\characterdef \CYRKDSC 6c 137
+\characterdef \cyrkdsc 6c 169
+\characterdef \CYRLDSC 6c 138
+\characterdef \cyrldsc 6c 170
+\characterdef \CYRKHCRS 6c 139
+\characterdef \cyrkhcrs 6c 171
+\characterdef \CYRLHK 6c 140
+\characterdef \cyrlhk 6c 172
+\characterdef \CYRNDSC 6c 141
+\characterdef \cyrndsc 6c 173
+\characterdef \CYRMHK 6c 142
+\characterdef \cyrmhk 6c 174
+\characterdef \CYRNHK 6c 143
+\characterdef \cyrnhk 6c 175
+\characterdef \CYROTLD 6c 144
+\characterdef \cyrotld 6c 176
+\characterdef \CYRABHCH 6c 145
+\characterdef \cyrabhch 6c 177
+\characterdef \CYRABHCHDSC 6c 146
+\characterdef \cyrabhchdsc 6c 178
+\characterdef \CYRSEMISFTSN 6c 147
+\characterdef \cyrsemisftsn 6c 179
+\characterdef \CYRISHRTDSC 6c 148
+\characterdef \cyrishrtdsc 6c 180
+\characterdef \CYRHDSC 6c 149
+\characterdef \cyrhdsc 6c 181
+\characterdef \CYRDZHE 6c 150
+\characterdef \cyrdzhe 6c 182
+\characterdef \CYRABHHA 6c 151
+\characterdef \cyrabhha 6c 183
+\characterdef \CYRCHRDSC 6c 152
+\characterdef \cyrchrdsc 6c 184
+\characterdef \CYRNLHK 6c 153
+\characterdef \cyrnlhk 6c 185
+\characterdef \CYRSCHWA 6c 154
+\characterdef \cyrschwa 6c 186
+\characterdef \CYRRHK 6c 155
+\characterdef \cyrrhk 6c 187
+\characterdef \CYRYO 6c 156
+\characterdef \cyryo 6c 188
+\characterdef \CYRII 6c 73
+\characterdef \cyrii 6c 105
+\characterdef \CYRJE 6c 74
+\characterdef \cyrje 6c 106
+\characterdef \CYRQ 6c 81
+\characterdef \cyrq 6c 113
+\characterdef \CYRDZE 6c 83
+\characterdef \cyrdze 6c 115
+\characterdef \CYRW 6c 87
+\characterdef \cyrw 6c 119
+
+\accentdef \" \CYRE 6c 156
+\accentdef \" \cyre 6c 188
+\accentdef \U \CYRI 6c 201
+\accentdef \U \cyri 6c 233
+\accentdef \k \CYRABHCH 6c 201
+\accentdef \k \cyrabhch 6c 233
+
+%% lccodes, uccodes:
+
+\modifydef 6c:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodesloop ^^a0^^bc^^80% from \cyrgup to \cyryo, first cap: \CYRGUP
+ \lccodesloop ^^e0^^ff^^c0% from \cyra to \cyrya, first cap: \CYRA
+ \def\lccodesback {\zerolccodes ^^80^^ff}%
+}
+
+
+%%% The CM font metric mapping:
+
+\registerECfont cmr6c lcrm %
+\registerECfont cmbx6c lcbx %
+\registerECfont cmti6c lcti %
+\registerECfont cmbxti6c lcbi %
+\registerECfont cmsl6c lcsl %
+\registerECfont cmbxsl6c lcbl %
+
+\registerECfont cmss6c lcss %
+\registerECfont cmssbx6c lcsx %
+\registerECfont cmssi6c lcsi %
+\registerECfont cmssbxti6c lcso %
+
+\registerECTTfont cmtt6c lctt %
+\registerECTTfont cmitt6c lcit %
+\registerECTTfont cmsltt6c lcst %
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-6k.tex b/Master/texmf-dist/tex/generic/ofs/ofs-6k.tex
new file mode 100644
index 00000000000..4014e4d2e4a
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-6k.tex
@@ -0,0 +1,202 @@
+% OFS: Declaration of Cyrrilic T2A encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mar 2004 Petr Olsak
+
+% 6k = Koi8 encoding + Computer Modern
+
+\protectreading ofs-6k.tex % This is part of OFS package
+
+\accentdef \` * 6k {\accent 18 } % grave
+\accentdef \' * 6k {\accent 19 } % acute
+\accentdef \v * 6k {\accent 20 } % caron
+\accentdef \u * 6k {\accent 21 } % breve
+\accentdef \= * 6k {\accent 22 } % macron
+\accentdef \r * 6k {\accent 23 } % ring
+\accentdef \^ * 6k {\accent 94 } % circumflex
+\accentdef \. * 6k {\accent 95 } % dot-accent
+\accentdef \H * 6k {\accent 125 } % hungar-umlaut
+\accentdef \~ * 6k {\accent 126 } % tilde
+\accentdef \" * 6k {\accent 127 } % dieresis
+\accentdef \c * 6k {\accentbelow {\char24}{0pt}} % cedilla
+\accentdef \k * 6k {\accentbelow {\char157}{0pt}} % ogonek
+\accentdef \m * 6k {\accentbelow {,}{.1ex}} % comma-accent
+\accentdef \b * 6k {\accentbelow {\char22}{.15ex}} % underscore
+\accentdef \d * 6k {\accentbelow {.}{.1ex}} % dot below
+
+\def\aa{\r a}
+\def\AA{\r A}
+
+\characterdef \dotlessi 6k 16
+\characterdef \dotlessj 6k 17
+\let\i=\dotlessi \let\j=\dotlessj
+
+\accentdef \" i 6k {\accent 127 \dotlessi}
+\accentdef \" {\i} 6k {\accent 127 \dotlessi}
+
+\let\SS=\relax \let\AE=\relax \let\OE=\relax \let\O=\relax
+\characterdef \SS 6k {SS}
+\characterdef \AE 6k 29
+\characterdef \OE 6k 30
+\characterdef \O 6k 31
+
+\let\ss=\relax \let\ae=\relax \let\oe=\relax \let\o=\relax
+\characterdef \ss 6k 25
+\characterdef \ae 6k 26
+\characterdef \oe 6k 27
+\characterdef \o 6k 28
+\characterdef \ellipsis 6k {\dots}
+
+\let\elqq=\relax \let\erqq=\relax \let\elq=\relax \let\erq=\relax
+\characterdef \elqq 6k 92
+\characterdef \erqq 6k 34
+\characterdef \elq 6k `\`
+\characterdef \erq 6k `\'
+
+\characterdef \exclamdown 6k 60
+\characterdef \questiondown 6k 62
+
+\characterdef \CYRA 6k 225
+\characterdef \CYRB 6k 226
+\characterdef \CYRV 6k 247
+\characterdef \CYRG 6k 231
+\characterdef \CYRD 6k 228
+\characterdef \CYRE 6k 229
+\characterdef \CYRYO 6k 179
+\characterdef \CYRZH 6k 246
+\characterdef \CYRZ 6k 250
+\characterdef \CYRI 6k 233
+\characterdef \CYRISHRT 6k 234
+\characterdef \CYRK 6k 235
+\characterdef \CYRL 6k 236
+\characterdef \CYRM 6k 237
+\characterdef \CYRN 6k 238
+\characterdef \CYRO 6k 239
+\characterdef \CYRP 6k 240
+\characterdef \CYRR 6k 242
+\characterdef \CYRS 6k 243
+\characterdef \CYRT 6k 244
+\characterdef \CYRU 6k 245
+\characterdef \CYRF 6k 230
+\characterdef \CYRH 6k 232
+\characterdef \CYRC 6k 227
+\characterdef \CYRCH 6k 254
+\characterdef \CYRSH 6k 251
+\characterdef \CYRSHCH 6k 253
+\characterdef \CYRHRDSN 6k 255
+\characterdef \CYRERY 6k 249
+\characterdef \CYRSFTSN 6k 248
+\characterdef \CYREREV 6k 252
+\characterdef \CYRYU 6k 224
+\characterdef \CYRYA 6k 241
+\characterdef \cyra 6k 193
+\characterdef \cyrb 6k 194
+\characterdef \cyrv 6k 215
+\characterdef \cyrg 6k 199
+\characterdef \cyrd 6k 196
+\characterdef \cyre 6k 197
+\characterdef \cyryo 6k 163
+\characterdef \cyrzh 6k 214
+\characterdef \cyrz 6k 218
+\characterdef \cyri 6k 201
+\characterdef \cyrishrt 6k 202
+\characterdef \cyrk 6k 203
+\characterdef \cyrl 6k 204
+\characterdef \cyrm 6k 205
+\characterdef \cyrn 6k 206
+\characterdef \cyro 6k 207
+\characterdef \cyrp 6k 208
+\characterdef \cyrr 6k 210
+\characterdef \cyrs 6k 211
+\characterdef \cyrt 6k 212
+\characterdef \cyru 6k 213
+\characterdef \cyrf 6k 198
+\characterdef \cyrh 6k 200
+\characterdef \cyrc 6k 195
+\characterdef \cyrch 6k 222
+\characterdef \cyrsh 6k 219
+\characterdef \cyrshch 6k 221
+\characterdef \cyrhrdsn 6k 223
+\characterdef \cyrery 6k 217
+\characterdef \cyrsftsn 6k 216
+\characterdef \cyrerev 6k 220
+\characterdef \cyryu 6k 192
+\characterdef \cyrya 6k 209
+
+\modifydef 6k:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodesloop ^^c0^^df^^e0%
+ \lccodes ^^a3^^b3%
+ \def\lccodesback {\zerolccodes ^^c0^^ff%
+ \zerolccodes ^^a3^^a3%
+ \zerolccodes ^^b3^^b3}%
+}
+
+\registertfm cmr6k - kcr10 %
+\registertfm cmr6k 0pt-6pt kcr5 %
+\registertfm cmr6k 6pt-7pt kcr6 %
+\registertfm cmr6k 7pt-8pt kcr7 %
+\registertfm cmr6k 8pt-9pt kcr8 %
+\registertfm cmr6k 9pt-10pt kcr9 %
+\registertfm cmr6k 10pt-12pt kcr10 %
+\registertfm cmr6k 12pt-17pt kcr12 %
+\registertfm cmr6k 17pt-* kcr17 %
+
+\registertfm cmbx6k - kcbx10 %
+\registertfm cmbx6k 0pt-6pt kcbx5 %
+\registertfm cmbx6k 6pt-7pt kcbx6 %
+\registertfm cmbx6k 7pt-8pt kcbx7 %
+\registertfm cmbx6k 8pt-9pt kcbx8 %
+\registertfm cmbx6k 9pt-10pt kcbx9 %
+\registertfm cmbx6k 10pt-12pt kcbx10 %
+\registertfm cmbx6k 12pt-* kcbx12 %
+
+\registertfm cmti6k - kcti10 %
+\registertfm cmti6k 0pt-8pt kcti7 %
+\registertfm cmti6k 8pt-9pt kcti8 %
+\registertfm cmti6k 9pt-10pt kcti9 %
+\registertfm cmti6k 10pt-12pt kcti10 %
+\registertfm cmti6k 12pt-17pt kcti12 %
+\registertfm cmti6k 17pt-* kcti17 %
+
+\registertfm cmbxti6k - kcbxti10 %
+\registertfm cmbxti6k 0pt-12pt kcbxti10 %
+\registertfm cmbxti6k 12pt-17pt kcbxti12 %
+\registertfm cmbxti6k 17pt-* kcbxti17 %
+
+\registertfm cmsl6k - kcsl10 %
+\registertfm cmsl6k 0pt-6pt kcsl5 %
+\registertfm cmsl6k 6pt-7pt kcsl6 %
+\registertfm cmsl6k 7pt-8pt kcsl7 %
+\registertfm cmsl6k 8pt-9pt kcsl8 %
+\registertfm cmsl6k 9pt-10pt kcsl9 %
+\registertfm cmsl6k 10pt-12pt kcsl10 %
+\registertfm cmsl6k 12pt-17pt kcsl12 %
+\registertfm cmsl6k 17pt-* kcsl17 %
+
+\registertfm cmbxsl6k - kcbxsl10 %
+\registertfm cmsltt6k - kcsltt10 %
+
+\registertfm cmss6k - kcss10 %
+\registertfm cmss6k 0pt-9pt kcss8 %
+\registertfm cmss6k 9pt-10pt kcss9 %
+\registertfm cmss6k 10pt-12pt kcss10 %
+\registertfm cmss6k 12pt-17pt kcss12 %
+\registertfm cmss6k 17pt-* kcss17 %
+
+\registertfm cmssbx6k - kcssbx10 %
+
+\registertfm cmssi6k - kcssi10 %
+\registertfm cmssi6k 0pt-9pt kcssi8 %
+\registertfm cmssi6k 9pt-10pt kcssi9 %
+\registertfm cmssi6k 10pt-12pt kcssi10 %
+\registertfm cmssi6k 12pt-17pt kcssi12 %
+\registertfm cmssi6k 17pt-* kcssi17 %
+
+\registertfm cmtt6k - kctt10 %
+\registertfm cmtt6k 0pt-9pt kctt8 %
+\registertfm cmtt6k 9pt-10pt kctt9 %
+\registertfm cmtt6k 10pt-12pt kctt10 %
+\registertfm cmtt6k 12pt-* kctt12 %
+
+\registertfm cmitt6k - kcitt10 %
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-6s.tex b/Master/texmf-dist/tex/generic/ofs/ofs-6s.tex
new file mode 100644
index 00000000000..2f41493fd2a
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-6s.tex
@@ -0,0 +1,358 @@
+% Encoding definition of fonts by Storm Type Foundry
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Jun 2001 Petr Olsak
+% Feb 2004
+
+% See stormtex.html and ofsdoc.tex manuals for more details.
+
+\ifx \characterdef \undefined \input ofs \fi
+\protectreading ofs-6s.tex % This is part of OFS package
+
+\ifx \characterdef \undefined \input ofs \fi
+
+\fontmessage {\ofsmessageheader
+ Characters + accents of fonts by Storm Type Foundry defined.}
+
+%% Extra encoding, characters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\characterdef \onesuperior 6s 1
+\characterdef \twosuperior 6s 2
+\characterdef \threesuperior 6s 3
+\characterdef \textleq 6s 4
+\characterdef \textneq 6s 5
+\characterdef \textgeq 6s 6
+\characterdef \textpm 6s 7
+\characterdef \onequarter 6s 8
+\characterdef \onehalf 6s 9
+\characterdef \threequarters 6s 10
+\characterdef \fraction 6s 11
+\characterdef \degree 6s 12
+\characterdef \brokenbar 6s 13
+\characterdef \fullbar 6s 124
+\characterdef \textsum 6s 16
+
+\characterdef \textOmega 6s 17
+\characterdef \textminus 6s 0
+\characterdef \textmu 6s 19
+\characterdef \textDelta 6s 20
+\characterdef \textneg 6s 21
+\characterdef \textinfty 6s 22
+\characterdef \textradical 6s 23
+\characterdef \textbackslash 6s 92
+\characterdef \textbraceleft 6s 123
+\characterdef \textbraceright 6s 125
+\characterdef \textless 6s 60
+\characterdef \textgreater 6s 62
+\characterdef \texttimes 6s 14
+\characterdef \textdiv 6s 15
+
+\characterdef \quotedbl 6s 34
+\characterdef \asciicircum 6s 94
+\characterdef \underscore 6s 95
+\characterdef \asciitilde 6s 126
+\characterdef \periodcentered 6s 127
+
+\characterdef \ordfeminine 6s 24
+\characterdef \ordmasculine 6s 25
+
+\characterdef \vargrave 6s 26
+\characterdef \varacute 6s 27
+\characterdef \varcaron 6s 28
+\characterdef \varcircumflex 6s 29
+\characterdef \varbreve 6s 30
+\characterdef \varring 6s 31
+\characterdef \varmacron 6s 35
+\characterdef \vardotaccent 6s 36
+\characterdef \varhungarumlaut 6s 37
+\characterdef \varogonek 6s 38
+\characterdef \varcedilla 6s 39
+\characterdef \vartilde 6s 40
+\characterdef \vardieresis 6s 41
+\characterdef \commaaccent 6s 42
+
+\characterdef \euro 6s 136 \let\Euro=\euro
+
+\characterdef \franc 6s 137
+\characterdef \cent 6s 168
+\characterdef \yen 6s 169
+
+\characterdef \varv 6s 18 % This character has a bad internal
+ % Type1 name: pi, sometimes it looks
+ % as pi, sometimes as varv :-(
+\characterdef \ligct 6s 128
+\characterdef \ligst 6s 129
+\characterdef \ligft 6s 130
+\characterdef \longst 6s 131
+\characterdef \longs 6s 132
+\characterdef \florin 6s 134
+
+\characterdef \dag 6s 160
+\characterdef \ddag 6s 161
+\characterdef \textbullet 6s 162
+\characterdef \paragraph 6s 163
+\characterdef \ellipsis 6s 164
+\characterdef \trademark 6s 165
+\let\copyright=\relax
+\characterdef \copyright * {\ofscopyright}
+\characterdef \copyright 6s 166
+\characterdef \registered 6s 167
+\characterdef \currency 6s 168 % Does not work in Storm fonts
+
+\characterdef \varzero 6s 48
+\characterdef \varone 6s 49
+\characterdef \vartwo 6s 50
+\characterdef \varthree 6s 51
+\characterdef \varfour 6s 52
+\characterdef \varfive 6s 53
+\characterdef \varsix 6s 54
+\characterdef \varseven 6s 55
+\characterdef \vareight 6s 56
+\characterdef \varnine 6s 57
+
+\characterdef \Eth 6s 144
+\characterdef \eth 6s 176
+\characterdef \Thorn 6s 145
+\characterdef \thorn 6s 177
+\characterdef \IJ 6s 156
+\characterdef \ij 6s 188
+\characterdef \O 6s 216
+\characterdef \o 6s 248
+
+%%% Extra encoding, accented letters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\accentdef \~ A 6s 195
+\accentdef \= A 6s 196
+\accentdef \r A 6s 197
+\accentdef \~ a 6s 227
+\accentdef \= a 6s 228
+\accentdef \r a 6s 229
+\accentdef \^ C 6s 198
+\accentdef \. C 6s 199
+\accentdef \^ c 6s 230
+\accentdef \. c 6s 231
+\accentdef \= d 6s 135
+\accentdef \` E 6s 200
+\accentdef \u E 6s 201
+\accentdef \^ E 6s 202
+\accentdef \= E 6s 203
+\accentdef \. E 6s 193
+\accentdef \` e 6s 232
+\accentdef \u e 6s 233
+\accentdef \^ e 6s 234
+\accentdef \= e 6s 235
+\accentdef \. e 6s 225
+\accentdef \u G 6s 154
+\accentdef \^ G 6s 218
+\accentdef \. G 6s 219
+\accentdef \c G 6s 220
+\accentdef \u g 6s 186
+\accentdef \^ g 6s 250
+\accentdef \. g 6s 251
+\accentdef \c g 6s 252
+\accentdef \' g 6s 185
+\accentdef \^ H 6s 222
+\accentdef \= H 6s 223
+\accentdef \^ h 6s 254
+\accentdef \= h 6s 255
+\accentdef \. I 6s 157
+\accentdef \` I 6s 204
+\accentdef \~ I 6s 205
+\accentdef \= I 6s 206
+\accentdef \" I 6s 207
+\accentdef \k I 6s 208
+\accentdef \. i 6s `\i
+\accentdef \` i 6s 236
+\accentdef \~ i 6s 237
+\accentdef \= i 6s 238
+\accentdef \" i 6s 239
+\accentdef \k i 6s 240
+\accentdef \^ J 6s 155
+\accentdef \^ j 6s 187
+\accentdef \c K 6s 215
+\accentdef \c k 6s 247
+\accentdef \c L 6s 158
+\accentdef \. L 6s 159
+\accentdef \c l 6s 190
+\accentdef \. l 6s 191
+\accentdef \~ N 6s 209
+\accentdef \c N 6s 214
+\accentdef \m n 6s 184
+\accentdef \~ n 6s 241
+\accentdef \c n 6s 246
+\accentdef \` O 6s 210
+\accentdef \= O 6s 211
+\accentdef \u O 6s 212
+\accentdef \~ O 6s 213
+\accentdef \` o 6s 242
+\accentdef \= o 6s 243
+\accentdef \u o 6s 244
+\accentdef \~ o 6s 245
+\accentdef \c R 6s 147
+\accentdef \c r 6s 179
+\accentdef \m S 6s 221
+\accentdef \^ S 6s 148
+\accentdef \m s 6s 253
+\accentdef \^ s 6s 180
+\accentdef \= T 6s 140
+\accentdef \m T 6s 141
+\accentdef \= t 6s 172
+\accentdef \m t 6s 173
+\accentdef \= U 6s 142
+\accentdef \u U 6s 143
+\accentdef \^ U 6s 149
+\accentdef \k U 6s 150
+\accentdef \~ U 6s 151
+\accentdef \` U 6s 217
+\accentdef \= u 6s 174
+\accentdef \u u 6s 175
+\accentdef \^ u 6s 181
+\accentdef \k u 6s 182
+\accentdef \~ u 6s 183
+\accentdef \` u 6s 249
+\accentdef \^ W 6s 192
+\accentdef \^ w 6s 224
+\accentdef \^ Y 6s 194
+\accentdef \" Y 6s 146
+\accentdef \^ y 6s 226
+\accentdef \" y 6s 178
+
+%%% Extra characters from StormL2Encoding (no present in 8z standard)
+
+\modifydef 8z:storm; {%
+ \characterdef \degree 8z 176
+ \characterdef \euro 8z 134
+ \characterdef \trademark 8z 136
+ \characterdef \copyright 8z 137
+ \characterdef \registered 8z 138
+ \characterdef \flq 8z 142
+ \characterdef \frq 8z 143
+ \characterdef \clq 8z 154
+ \characterdef \crq 8z 155
+ \characterdef \ligct 8z 145
+ \characterdef \ligst 8z 146
+ \characterdef \ligft 8z 147
+ \characterdef \longst 8z 148
+ \characterdef \longs 8z 149
+ \characterdef \varv 8z 144
+ \characterdef \florin 8z 151
+}
+
+%%% Differences between StormT1Encoding and standard T1 encoding %%%%%
+
+\modifydef 8t:storm;{%
+ \characterdel \promile 8t {\%\char 24 }
+ \characterdef \promile 8t 24 % the "perzero" is missing in Storm fonts
+ \characterdel \textpertenthousand 8t {\%\char 24\char 24 }
+ \characterdel \dotlessj 8t 26
+ \characterdef \varv 8t 26 % dotlessj is missing in Storm fonts
+}
+\modifydef 6s:noligs; {%
+ \characterdel \ligct 6s 128
+ \characterdel \ligst 6s 129
+ \characterdel \ligft 6s 130
+}
+
+\modifydef 6s:vardigits;{%
+ \characterdef \vardigits * {\setextrafont}
+}
+
+%%% The \CAP? macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% variant accents for capital letters
+
+\def\CAP#1{\csname CAP\string#1\endcsname}
+\def\CAPdef #1 {\expandafter\def\csname CAP\string#1\endcsname}
+
+\def\CAPv {\aboveCAP \varcaron \v}
+\def\CAPu {\aboveCAP \varbreve \u}
+\def\CAPr {\aboveCAP \varring \r}
+\def\CAPH {\aboveCAP \varhungarumlaut \H}
+\CAPdef ` {\aboveCAP \vargrave \`}
+\CAPdef ' {\aboveCAP \varacute \'}
+\CAPdef = {\aboveCAP \varmacron \=}
+\CAPdef ^ {\aboveCAP \varcircumflex \^}
+\CAPdef . {\aboveCAP \vardotaccent \.}
+\CAPdef " {\aboveCAP \vardieresis \"}
+\CAPdef ~ {\aboveCAP \vartilde \~}
+
+\def\aboveCAP #1#2{%
+ \ifx\expandaction\noexpand
+ \noexpand\aboveCAP \noexpand#1\noexpand#2%
+ \else
+ \csname fragilecommand!\endcsname
+ \setbox2=\hbox{X}\dimen4=\ht2
+ \setbox0=\hbox{#1}\dimen0=\ht0 \advance\dimen0 by-.2ex
+ \ifdim\dimen4>\dimen0 \def\tmpa{#2}%
+ \else \def\tmpa{\accentabove {#1}{-\dimen4}}%
+ \fi \expandafter \tmpa
+ \fi
+}
+
+%%% \stmath sets some math characters from extra encoding %%%%%%
+
+% use in this order: \setfonts [Family/] \stmath \setmath[//]
+
+\def\stmath{\ifx\extraenc\stextraenc
+ \def\mathfonts{\defaultmathfonts
+ \csname st\mathversion math\endcsname}%
+ \def\mathchars{\defaultmathchars \stmathchars \let\mathchars=\relax}%
+ \else \displaymessage{\ofsmessageheader WARNING.
+ No extra enc 6s defined. \noexpand\stmath ignored.}%
+ \fi
+}
+\def\stextraenc{6s}
+
+\def\stnormalmath{%
+ \newmathfam \Xrmfam
+ \loadmathfam \Xrmfam [Xtenrm/]%
+}
+\def\stboldmath{%
+ \newmathfam \Xrmfam
+ \loadmathfam \Xrmfam [Xtenbf/]%
+}
+\def\stmathchars{%
+ \mathcode`\- "2\hex\Xrmfam 00
+ \mathcode`\< "3\hex\Xrmfam 3C
+ \mathcode`\> "3\hex\Xrmfam 3E
+ %
+ \edef\lbrace{\delimiter"4\hex\Xrmfam 7B308 }\let\{=\lbrace
+ \edef\vert {\delimiter"2\hex\Xrmfam 7C30C }\let\|=\vert
+ \edef\rbrace{\delimiter"5\hex\Xrmfam 7D309 }\let\}=\rbrace
+ %
+ \mathchardef \leq "3\hex\Xrmfam 04 \let\le=\leq
+ \mathchardef \neq "3\hex\Xrmfam 05 \let\ne=\neq
+ \mathchardef \geq "3\hex\Xrmfam 06 \let\ge=\geq
+ \mathchardef \neg "3\hex\Xrmfam 15 \let\lnot=\neg
+ \mathchardef \pm "2\hex\Xrmfam 07
+ \mathchardef \times "2\hex\Xrmfam 0E
+ \mathchardef \div "2\hex\Xrmfam 0F
+ \mathchardef \infty "2\hex\Xrmfam 16
+ %
+ \safemathchardef \onesuperior "\hex\Xrmfam 01
+ \safemathchardef \twosuperior "\hex\Xrmfam 02
+ \safemathchardef \threesuperior "\hex\Xrmfam 03
+ \safemathchardef \onequarter "\hex\Xrmfam 08
+ \safemathchardef \onehalf "\hex\Xrmfam 09
+ \safemathchardef \threequarters "\hex\Xrmfam 0A
+ \safemathchardef \fraction "\hex\Xrmfam 0B
+ \mathchardef \dagger "2\hex\Xrmfam A0
+ \mathchardef \ddagger "2\hex\Xrmfam A1
+ \safemathchardef \dag "\hex\Xrmfam A0
+ \safemathchardef \ddag "\hex\Xrmfam A1
+ \let\bullet=\textbullet
+ \safemathchardef \bullet "2\hex\Xrmfam A2
+}
+
+%%% eof
+
+\endinput %%% the following macros will be included in LANG style files
+
+%%% Macros for quotes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\singleuv#1{\clq#1\crq}
+\def\doubleuv#1{\clqq#1\crqq}
+\def\singlefuv#1{\frq#1\flq}
+\def\doublefuv#1{\frqq#1\flqq}
+\let\uv=\doubleuv
+\let\fuv=\doublefuv
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-6t.tex b/Master/texmf-dist/tex/generic/ofs/ofs-6t.tex
new file mode 100644
index 00000000000..ef3c0b0541e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-6t.tex
@@ -0,0 +1,242 @@
+% OFS: Declaration of Cyrrilic T2A encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mar 2004 Petr Olsak
+
+% 6t = T2B encoding
+
+\protectreading ofs-6t.tex % This is part of OFS package
+
+\accentdef \` * 6t {\accent 0}
+\accentdef \' * 6t {\accent 1}
+\accentdef \^ * 6t {\accent 2}
+\accentdef \~ * 6t {\accent 3}
+\accentdef \" * 6t {\accent 4}
+\accentdef \H * 6t {\accent 5}
+\accentdef \r * 6t {\accent 6}
+\accentdef \v * 6t {\accent 7}
+\accentdef \u * 6t {\accent 8}
+\accentdef \= * 6t {\accent 9}
+\accentdef \. * 6t {\accent 10}
+\accentdef \f * 6t {\accent 18}
+\accentdef \C * 6t {\accent 19}
+\accentdef \U * 6t {\accent 20}
+\accentdef \b * 6t {\accentbelow {\char9}{.15ex}}
+\accentdef \c * 6t {\accentbelow {\char11}{0pt}}
+\accentdef \d * 6t {\accentbelow {.}{.1ex}}
+\accentdef \k * 6t {\accentbelow {\char12}{0pt}}
+
+\let\promile=\relax
+\characterdef \promile 6t {\%\char 24 }
+\characterdef \pertenthousand 6t {\%\char 24\char 24 }
+
+\characterdef \textendash 6t 21
+\characterdef \cyrdash 6t 22
+\characterdef \textemdash 6t 22
+\characterdef \textcompwordmark 6t 23
+\characterdef \textvisiblespace 6t 32
+\characterdef \textdollar 6t 36
+\characterdef \textless 6t 60
+\characterdef \textgreater 6t 62
+\characterdef \textbackslash 6t 92
+\characterdef \textasciicircum 6t 94
+\characterdef \textunderscore 6t 95
+\characterdef \textbraceleft 6t 123
+\characterdef \textbar 6t 124
+\characterdef \textbraceright 6t 125
+\characterdef \textasciitilde 6t 126
+\characterdef \textnumero 6t 157
+\characterdef \textcurrency 6t 158
+\characterdef \textsection 6t 159
+\characterdef \textquotedbl 6t 34
+\characterdef \textquoteleft 6t 96
+\characterdef \textquoteright 6t 39
+\characterdef \textquotedblleft 6t 16
+\characterdef \textquotedblright 6t 17
+\characterdef \quotedblbase 6t 189
+\characterdef \CYRpalochka 6t 13
+\characterdef \cyrlangle 6t 14
+\characterdef \cyrrangle 6t 15
+\characterdef \guillemotleft 6t 190
+\characterdef \guillemotright 6t 191
+\characterdef \dotlessi 6t 25
+\characterdef \dotlessj 6t 26
+
+\let\i=\dotlessi \let\j=\dotlessj
+\accentdef \. i 6t `\i
+\accentdef \` i 6t {\accent0 \i}
+\accentdef \` {\i} 6t {\accent0 \i}
+\accentdef \' i 6t {\accent1 \i}
+\accentdef \' {\i} 6t {\accent1 \i}
+\accentdef \^ i 6t {\accent2 \i}
+\accentdef \^ {\i} 6t {\accent2 \i}
+\accentdef \" i 6t {\accent4 \i}
+\accentdef \" {\i} 6t {\accent4 \i}
+
+\characterdef \CYRA 6t 192
+\characterdef \cyra 6t 224
+\characterdef \CYRB 6t 193
+\characterdef \cyrb 6t 225
+\characterdef \CYRV 6t 194
+\characterdef \cyrv 6t 226
+\characterdef \CYRG 6t 195
+\characterdef \cyrg 6t 227
+\characterdef \CYRD 6t 196
+\characterdef \cyrd 6t 228
+\characterdef \CYRE 6t 197
+\characterdef \cyre 6t 229
+\characterdef \CYRZH 6t 198
+\characterdef \cyrzh 6t 230
+\characterdef \CYRZ 6t 199
+\characterdef \cyrz 6t 231
+\characterdef \CYRI 6t 200
+\characterdef \cyri 6t 232
+\characterdef \CYRISHRT 6t 201
+\characterdef \cyrishrt 6t 233
+\characterdef \CYRK 6t 202
+\characterdef \cyrk 6t 234
+\characterdef \CYRL 6t 203
+\characterdef \cyrl 6t 235
+\characterdef \CYRM 6t 204
+\characterdef \cyrm 6t 236
+\characterdef \CYRN 6t 205
+\characterdef \cyrn 6t 237
+\characterdef \CYRO 6t 206
+\characterdef \cyro 6t 238
+\characterdef \CYRP 6t 207
+\characterdef \cyrp 6t 239
+\characterdef \CYRR 6t 208
+\characterdef \cyrr 6t 240
+\characterdef \CYRS 6t 209
+\characterdef \cyrs 6t 241
+\characterdef \CYRT 6t 210
+\characterdef \cyrt 6t 242
+\characterdef \CYRU 6t 211
+\characterdef \cyru 6t 243
+\characterdef \CYRF 6t 212
+\characterdef \cyrf 6t 244
+\characterdef \CYRH 6t 213
+\characterdef \cyrh 6t 245
+\characterdef \CYRC 6t 214
+\characterdef \cyrc 6t 246
+\characterdef \CYRCH 6t 215
+\characterdef \cyrch 6t 247
+\characterdef \CYRSH 6t 216
+\characterdef \cyrsh 6t 248
+\characterdef \CYRSHCH 6t 217
+\characterdef \cyrshch 6t 249
+\characterdef \CYRHRDSN 6t 218
+\characterdef \cyrhrdsn 6t 250
+\characterdef \CYRERY 6t 219
+\characterdef \cyrery 6t 251
+\characterdef \CYRSFTSN 6t 220
+\characterdef \cyrsftsn 6t 252
+\characterdef \CYREREV 6t 221
+\characterdef \cyrerev 6t 253
+\characterdef \CYRYU 6t 222
+\characterdef \cyryu 6t 254
+\characterdef \CYRYA 6t 223
+\characterdef \cyrya 6t 255
+\characterdef \CYRGDSCHCRS 6t 128
+\characterdef \cyrgdschcrs 6t 160
+\characterdef \CYRGHCRS 6t 129
+\characterdef \cyrghcrs 6t 161
+\characterdef \CYRGDSC 6t 130
+\characterdef \cyrgdsc 6t 162
+\characterdef \CYRGHK 6t 131
+\characterdef \cyrghk 6t 163
+\characterdef \CYRSHHA 6t 132
+\characterdef \cyrshha 6t 164
+\characterdef \CYRZHDSC 6t 133
+\characterdef \cyrzhdsc 6t 165
+\characterdef \CYRDELTA 6t 134
+\characterdef \cyrdelta 6t 166
+\characterdef \CYRABHDZE 6t 135
+\characterdef \cyrabhdze 6t 167
+\characterdef \CYRLJE 6t 136
+\characterdef \cyrlje 6t 168
+\characterdef \CYRKDSC 6t 137
+\characterdef \cyrkdsc 6t 169
+\characterdef \CYRLDSC 6t 138
+\characterdef \cyrldsc 6t 170
+\characterdef \CYRKHK 6t 139
+\characterdef \cyrkhk 6t 171
+\characterdef \CYRLHK 6t 140
+\characterdef \cyrlhk 6t 172
+\characterdef \CYRNDSC 6t 141
+\characterdef \cyrndsc 6t 173
+\characterdef \CYRNG 6t 142
+\characterdef \cyrng 6t 174
+\characterdef \CYRNHK 6t 143
+\characterdef \cyrnhk 6t 175
+\characterdef \CYROTLD 6t 144
+\characterdef \cyrotld 6t 176
+\characterdef \CYRSACRS 6t 145
+\characterdef \cyrsacrs 6t 177
+\characterdef \CYRUSHRT 6t 146
+\characterdef \cyrushrt 6t 178
+\characterdef \CYRY 6t 147
+\characterdef \cyry 6t 179
+\characterdef \CYRHHCRS 6t 148
+\characterdef \cyrhhcrs 6t 180
+\characterdef \CYRHDSC 6t 149
+\characterdef \cyrhdsc 6t 181
+\characterdef \CYRHHK 6t 150
+\characterdef \cyrhhk 6t 182
+\characterdef \CYRCHLDSC 6t 151
+\characterdef \cyrchldsc 6t 183
+\characterdef \CYRCHRDSC 6t 152
+\characterdef \cyrchrdsc 6t 184
+\characterdef \CYRNJE 6t 153
+\characterdef \cyrnje 6t 185
+\characterdef \CYRSCHWA 6t 154
+\characterdef \cyrschwa 6t 186
+\characterdef \CYREPS 6t 155
+\characterdef \cyreps 6t 187
+\characterdef \CYRYO 6t 156
+\characterdef \cyryo 6t 188
+\characterdef \CYRII 6t 73
+\characterdef \cyrii 6t 105
+\characterdef \CYRJE 6t 74
+\characterdef \cyrje 6t 106
+\characterdef \CYRQ 6t 81
+\characterdef \cyrq 6t 113
+\characterdef \CYRDZE 6t 83
+\characterdef \cyrdze 6t 115
+\characterdef \CYRW 6t 87
+\characterdef \cyrw 6t 119
+
+\accentdef \" \CYRE 6a 156
+\accentdef \" \cyre 6a 188
+\accentdef \U \CYRI 6a 201
+\accentdef \U \cyri 6a 233
+\accentdef \U \CYRU 6a 146
+\accentdef \U \cyru 6a 178
+
+%%% lccodes, uccodes:
+
+\modifydef 6t:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodesloop ^^a0^^bc^^80% from \cyrgup to \cyryo, first cap: \CYRGUP
+ \lccodesloop ^^e0^^ff^^c0% from \cyra to \cyrya, first cap: \CYRA
+ \def\lccodesback {\zerolccodes ^^80^^ff}%
+}
+
+
+%%% The CM font metric mapping:
+
+\registerECfont cmr6t lbrm %
+\registerECfont cmbx6t lbbx %
+\registerECfont cmti6t lbti %
+\registerECfont cmbxti6t lbbi %
+\registerECfont cmsl6t lbsl %
+\registerECfont cmbxsl6t lbbl %
+
+\registerECfont cmss6t lbss %
+\registerECfont cmssbx6t lbsx %
+\registerECfont cmssi6t lbsi %
+\registerECfont cmssbxti6t lbso %
+
+\registerECTTfont cmtt6t lbtt %
+\registerECTTfont cmitt6t lbit %
+\registerECTTfont cmsltt6t lbst %
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-6x.tex b/Master/texmf-dist/tex/generic/ofs/ofs-6x.tex
new file mode 100644
index 00000000000..ffdd3c08180
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-6x.tex
@@ -0,0 +1,289 @@
+% OFS: Declaration of Cyrrilic T2A encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mar 2004 Petr Olsak
+
+% 6x = X2 encoding
+
+\protectreading ofs-6x.tex % This is part of OFS package
+
+\accentdef \` * 6a {\accent 0}
+\accentdef \' * 6a {\accent 1}
+\accentdef \^ * 6a {\accent 2}
+\accentdef \~ * 6a {\accent 3}
+\accentdef \" * 6a {\accent 4}
+\accentdef \H * 6a {\accent 5}
+\accentdef \r * 6a {\accent 6}
+\accentdef \v * 6a {\accent 7}
+\accentdef \u * 6a {\accent 8}
+\accentdef \= * 6a {\accent 9}
+\accentdef \. * 6a {\accent 10}
+\accentdef \f * 6a {\accent 18}
+\accentdef \C * 6a {\accent 19}
+\accentdef \U * 6a {\accent 20}
+\accentdef \b * 6a {\accentbelow {\char9}{.15ex}}
+\accentdef \c * 6a {\accentbelow {\char11}{0pt}}
+\accentdef \d * 6a {\accentbelow {.}{.1ex}}
+\accentdef \k * 6a {\accentbelow {\char12}{0pt}}
+
+\let\promile=\relax
+\characterdef \promile 6a {\%\char 24 }
+\characterdef \pertenthousand 6a {\%\char 24\char 24 }
+
+\characterdef \textendash 6x 21
+\characterdef \cyrdash 6x 22
+\characterdef \textemdash 6x 22
+\characterdef \textcompwordmark 6x 23
+\characterdef \textvisiblespace 6x 32
+\characterdef \textdollar 6x 36
+\characterdef \textless 6x 60
+\characterdef \textgreater 6x 62
+\characterdef \textbackslash 6x 92
+\characterdef \textasciicircum 6x 94
+\characterdef \textunderscore 6x 95
+\characterdef \textbraceleft 6x 123
+\characterdef \textbar 6x 124
+\characterdef \textbraceright 6x 125
+\characterdef \textasciitilde 6x 126
+\characterdef \textnumero 6x 157
+\characterdef \textcurrency 6x 158
+\characterdef \textsection 6x 159
+\characterdef \textquotedbl 6x 34
+\characterdef \textquoteleft 6x 96
+\characterdef \textquoteright 6x 39
+\characterdef \textquotedblleft 6x 16
+\characterdef \textquotedblright 6x 17
+\characterdef \quotedblbase 6x 189
+\characterdef \CYRpalochka 6x 13
+\characterdef \cyrlangle 6x 14
+\characterdef \cyrrangle 6x 15
+\characterdef \guillemotleft 6x 190
+\characterdef \guillemotright 6x 191
+
+\accentdef \. i 6a `\i
+
+\characterdef \CYRA 6x 192
+\characterdef \cyra 6x 224
+\characterdef \CYRB 6x 193
+\characterdef \cyrb 6x 225
+\characterdef \CYRV 6x 194
+\characterdef \cyrv 6x 226
+\characterdef \CYRG 6x 195
+\characterdef \cyrg 6x 227
+\characterdef \CYRD 6x 196
+\characterdef \cyrd 6x 228
+\characterdef \CYRE 6x 197
+\characterdef \cyre 6x 229
+\characterdef \CYRZH 6x 198
+\characterdef \cyrzh 6x 230
+\characterdef \CYRZ 6x 199
+\characterdef \cyrz 6x 231
+\characterdef \CYRI 6x 200
+\characterdef \cyri 6x 232
+\characterdef \CYRISHRT 6x 201
+\characterdef \cyrishrt 6x 233
+\characterdef \CYRK 6x 202
+\characterdef \cyrk 6x 234
+\characterdef \CYRL 6x 203
+\characterdef \cyrl 6x 235
+\characterdef \CYRM 6x 204
+\characterdef \cyrm 6x 236
+\characterdef \CYRN 6x 205
+\characterdef \cyrn 6x 237
+\characterdef \CYRO 6x 206
+\characterdef \cyro 6x 238
+\characterdef \CYRP 6x 207
+\characterdef \cyrp 6x 239
+\characterdef \CYRR 6x 208
+\characterdef \cyrr 6x 240
+\characterdef \CYRS 6x 209
+\characterdef \cyrs 6x 241
+\characterdef \CYRT 6x 210
+\characterdef \cyrt 6x 242
+\characterdef \CYRU 6x 211
+\characterdef \cyru 6x 243
+\characterdef \CYRF 6x 212
+\characterdef \cyrf 6x 244
+\characterdef \CYRH 6x 213
+\characterdef \cyrh 6x 245
+\characterdef \CYRC 6x 214
+\characterdef \cyrc 6x 246
+\characterdef \CYRCH 6x 215
+\characterdef \cyrch 6x 247
+\characterdef \CYRSH 6x 216
+\characterdef \cyrsh 6x 248
+\characterdef \CYRSHCH 6x 217
+\characterdef \cyrshch 6x 249
+\characterdef \CYRHRDSN 6x 218
+\characterdef \cyrhrdsn 6x 250
+\characterdef \CYRERY 6x 219
+\characterdef \cyrery 6x 251
+\characterdef \CYRSFTSN 6x 220
+\characterdef \cyrsftsn 6x 252
+\characterdef \CYREREV 6x 221
+\characterdef \cyrerev 6x 253
+\characterdef \CYRYU 6x 222
+\characterdef \cyryu 6x 254
+\characterdef \CYRYA 6x 223
+\characterdef \cyrya 6x 255
+\characterdef \CYRGUP 6x 128
+\characterdef \cyrgup 6x 160
+\characterdef \CYRGHCRS 6x 129
+\characterdef \cyrghcrs 6x 161
+\characterdef \CYRGDSC 6x 130
+\characterdef \cyrgdsc 6x 162
+\characterdef \CYRGHK 6x 131
+\characterdef \cyrghk 6x 163
+\characterdef \CYRSHHA 6x 132
+\characterdef \cyrshha 6x 164
+\characterdef \CYRZHDSC 6x 133
+\characterdef \cyrzhdsc 6x 165
+\characterdef \CYRZDSC 6x 134
+\characterdef \cyrzdsc 6x 166
+\characterdef \CYRABHDZE 6x 135
+\characterdef \cyrabhdze 6x 167
+\characterdef \CYRYI 6x 136
+\characterdef \cyryi 6x 168
+\characterdef \CYRKDSC 6x 137
+\characterdef \cyrkdsc 6x 169
+\characterdef \CYRKBEAK 6x 138
+\characterdef \cyrkbeak 6x 170
+\characterdef \CYRKHK 6x 139
+\characterdef \cyrkhk 6x 171
+\characterdef \CYRLHK 6x 140
+\characterdef \cyrlhk 6x 172
+\characterdef \CYRNDSC 6x 141
+\characterdef \cyrndsc 6x 173
+\characterdef \CYRNG 6x 142
+\characterdef \cyrng 6x 174
+\characterdef \CYRNHK 6x 143
+\characterdef \cyrnhk 6x 175
+\characterdef \CYROTLD 6x 144
+\characterdef \cyrotld 6x 176
+\characterdef \CYRSDSC 6x 145
+\characterdef \cyrsdsc 6x 177
+\characterdef \CYRUSHRT 6x 146
+\characterdef \cyrushrt 6x 178
+\characterdef \CYRY 6x 147
+\characterdef \cyry 6x 179
+\characterdef \CYRYHCRS 6x 148
+\characterdef \cyryhcrs 6x 180
+\characterdef \CYRHDSC 6x 149
+\characterdef \cyrhdsc 6x 181
+\characterdef \CYRHHK 6x 150
+\characterdef \cyrhhk 6x 182
+\characterdef \CYRCHLDSC 6x 151
+\characterdef \cyrchldsc 6x 183
+\characterdef \CYRCHRDSC 6x 152
+\characterdef \cyrchrdsc 6x 184
+\characterdef \CYRIE 6x 153
+\characterdef \cyrie 6x 185
+\characterdef \CYRSCHWA 6x 154
+\characterdef \cyrschwa 6x 186
+\characterdef \CYREPS 6x 155
+\characterdef \cyreps 6x 187
+\characterdef \CYRYO 6x 156
+\characterdef \cyryo 6x 188
+\characterdef \CYRAE 6x 65
+\characterdef \cyrae 6x 97
+\characterdef \CYRDJE 6x 66
+\characterdef \cyrdje 6x 98
+\characterdef \CYRTSHE 6x 67
+\characterdef \cyrtshe 6x 99
+\characterdef \CYRABHCH 6x 68
+\characterdef \cyrabhch 6x 100
+\characterdef \CYRABHCHDSC 6x 69
+\characterdef \cyrabhchdsc 6x 101
+\characterdef \CYRKVCRS 6x 70
+\characterdef \cyrkvcrs 6x 102
+\characterdef \CYRKHCRS 6x 71
+\characterdef \cyrkhcrs 6x 103
+\characterdef \CYRLDSC 6x 72
+\characterdef \cyrldsc 6x 104
+\characterdef \CYRII 6x 73
+\characterdef \cyrii 6x 105
+\characterdef \CYRJE 6x 74
+\characterdef \cyrje 6x 106
+\characterdef \CYRLJE 6x 75
+\characterdef \cyrlje 6x 107
+\characterdef \CYRMDSC 6x 76
+\characterdef \cyrmdsc 6x 108
+\characterdef \CYRNJE 6x 77
+\characterdef \cyrnje 6x 109
+\characterdef \CYRABHHA 6x 78
+\characterdef \cyrabhha 6x 110
+\characterdef \CYRPHK 6x 79
+\characterdef \cyrphk 6x 111
+\characterdef \CYRRDSC 6x 80
+\characterdef \cyrrdsc 6x 112
+\characterdef \CYRQ 6x 81
+\characterdef \cyrq 6x 113
+\characterdef \CYRTDSC 6x 82
+\characterdef \cyrtdsc 6x 114
+\characterdef \CYRDZE 6x 83
+\characterdef \cyrdze 6x 115
+\characterdef \CYRTETSE 6x 84
+\characterdef \cyrtetse 6x 116
+\characterdef \CYRDZHE 6x 85
+\characterdef \cyrdzhe 6x 117
+\characterdef \CYRCHVCRS 6x 86
+\characterdef \cyrchvcrs 6x 118
+\characterdef \CYRW 6x 87
+\characterdef \cyrw 6x 119
+\characterdef \CYRYAT 6x 88
+\characterdef \cyryat 6x 120
+\characterdef \CYRBYUS 6x 89
+\characterdef \cyrbyus 6x 121
+\characterdef \CYRIZH 6x 90
+\characterdef \cyrizh 6x 122
+\characterdef \CYRDELTA 6x 28
+\characterdef \cyrdelta 6x 29
+\characterdef \CYRNLHK 6x 30
+\characterdef \cyrnlhk 6x 31
+
+\accentdef \" \CYRE 6x 156
+\accentdef \" \cyre 6x 188
+\accentdef \U \CYRI 6x 201
+\accentdef \U \cyri 6x 233
+\accentdef \" \CYRII 6x 136
+\accentdef \" \cyrii 6x 168
+\accentdef \c \CYRZ 6x 134
+\accentdef \c \cyrz 6x 166
+\accentdef \k \CYRS 6x 145
+\accentdef \k \cyrs 6x 177
+\accentdef \U \CYRU 6x 146
+\accentdef \U \cyru 6x 178
+\accentdef \k \CYRABHCH 6x 69
+\accentdef \k \cyrabhch 6x 101
+
+%%% lccodes, uccodes:
+
+\modifydef 6x:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodesloop ^^a0^^bc^^80% from \cyrgup to \cyryo, first cap: \CYRGUP
+ \lccodesloop ^^e0^^ff^^c0% from \cyra to \cyrya, first cap: \CYRA
+ \def\lccodesback {\zerolccodes ^^80^^ff}%
+}
+
+
+%%% The CM font metric mapping:
+
+\registerECfont cmr6x rxrm %
+\registerECfont cmbx6x rxbx %
+\registerECfont cmti6x rxti %
+\registerECfont cmbxti6x rxbi %
+\registerECfont cmsl6x rxsl %
+\registerECfont cmbxsl6x rxbl %
+
+\registerECfont cmss6x rxss %
+\registerECfont cmssbx6x rxsx %
+\registerECfont cmssi6x rxsi %
+\registerECfont cmssbxti6x rxso %
+
+\registerECTTfont cmtt6x rxtt %
+\registerECTTfont cmitt6x rxit %
+\registerECTTfont cmsltt6x rxst %
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-6y.tex b/Master/texmf-dist/tex/generic/ofs/ofs-6y.tex
new file mode 100644
index 00000000000..dd0dc44a85c
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-6y.tex
@@ -0,0 +1,258 @@
+% OFS: Declaration of Cyrrilic T2A encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mar 2004 Petr Olsak
+
+% 6y = LCY encoding (Computer Modern + Cyrrilic)
+
+\protectreading ofs-6y.tex % This is part of OFS package
+
+\accentdef \" * 6y {\accent 127}
+\accentdef \' * 6y {\accent 19}
+\accentdef \. * 6y {\accent 95}
+\accentdef \= * 6y {\accent 22}
+\accentdef \^ * 6y {\accent 94}
+\accentdef \` * 6y {\accent 18}
+\accentdef \~ * 6y {\accent 126}
+\accentdef \H * 6y {\accent 125}
+\accentdef \u * 6y {\accent 21}
+\accentdef \v * 6y {\accent 20}
+\accentdef \r * 6y {\accent 23}
+\accentdef \b * 6y {\accentbelow {\char22}{.15ex}} % underscore
+\accentdef \d * 6y {\accentbelow {.}{.1ex}} % dot below
+
+\def\aa{\r a}
+\def\AA{\r A}
+
+\let\SS=\relax \let\AE=\relax \let\OE=\relax \let\O=\relax
+\let\ss=\relax \let\ae=\relax \let\oe=\relax \let\o=\relax
+\characterdef \AE 6y 29
+\characterdef \OE 6y 30
+\characterdef \O 6y 31
+\characterdef \ae 6y 26
+\characterdef \dotlessi 6y 16
+\characterdef \dotlessj 6y 17
+\characterdef \oe 6y 27
+\characterdef \o 6y 28
+\characterdef \ss 6y 25
+\characterdef \textemdash 6y 124
+\characterdef \textendash 6y 123
+\characterdef \textexclamdown 6y 60
+\characterdef \textquestiondown 6y 62
+\characterdef \textquotedblleft 6y 92
+\characterdef \textquotedblright 6y `\"
+\characterdef \textquoteleft 6y `\`
+\characterdef \textquoteright 6y `\'
+
+\characterdef \Lslash 6y {\plainL}
+\characterdef \lslash 6y {\char32l}
+
+\let\i=\dotlessi \let\j=\dotlessj
+\let\L=\Lslash \let\l=\lslash
+
+\characterdef \CYRA 6y 128
+\characterdef \CYRB 6y 129
+\characterdef \CYRV 6y 130
+\characterdef \CYRG 6y 131
+\characterdef \CYRD 6y 132
+\characterdef \CYRE 6y 133
+\characterdef \CYRZH 6y 134
+\characterdef \CYRZ 6y 135
+\characterdef \CYRI 6y 136
+\characterdef \CYRISHRT 6y 137
+\characterdef \CYRK 6y 138
+\characterdef \CYRL 6y 139
+\characterdef \CYRM 6y 140
+\characterdef \CYRN 6y 141
+\characterdef \CYRO 6y 142
+\characterdef \CYRP 6y 143
+\characterdef \CYRR 6y 144
+\characterdef \CYRS 6y 145
+\characterdef \CYRT 6y 146
+\characterdef \CYRU 6y 147
+\characterdef \CYRF 6y 148
+\characterdef \CYRH 6y 149
+\characterdef \CYRC 6y 150
+\characterdef \CYRCH 6y 151
+\characterdef \CYRSH 6y 152
+\characterdef \CYRSHCH 6y 153
+\characterdef \CYRHRDSN 6y 154
+\characterdef \CYRERY 6y 155
+\characterdef \CYRSFTSN 6y 156
+\characterdef \CYREREV 6y 157
+\characterdef \CYRYU 6y 158
+\characterdef \CYRYA 6y 159
+\characterdef \cyra 6y 160
+\characterdef \cyrb 6y 161
+\characterdef \cyrv 6y 162
+\characterdef \cyrg 6y 163
+\characterdef \cyrd 6y 164
+\characterdef \cyre 6y 165
+\characterdef \cyrzh 6y 166
+\characterdef \cyrz 6y 167
+\characterdef \cyri 6y 168
+\characterdef \cyrishrt 6y 169
+\characterdef \cyrk 6y 170
+\characterdef \cyrl 6y 171
+\characterdef \cyrm 6y 172
+\characterdef \cyrn 6y 173
+\characterdef \cyro 6y 174
+\characterdef \cyrp 6y 175
+\characterdef \cyrr 6y 224
+\characterdef \cyrs 6y 225
+\characterdef \cyrt 6y 226
+\characterdef \cyru 6y 227
+\characterdef \cyrf 6y 228
+\characterdef \cyrh 6y 229
+\characterdef \cyrc 6y 230
+\characterdef \cyrch 6y 231
+\characterdef \cyrsh 6y 232
+\characterdef \cyrshch 6y 233
+\characterdef \cyrhrdsn 6y 234
+\characterdef \cyrery 6y 235
+\characterdef \cyrsftsn 6y 236
+\characterdef \cyrerev 6y 237
+\characterdef \cyryu 6y 238
+\characterdef \cyrya 6y 239
+\characterdef \CYRYO 6y 240
+\characterdef \cyryo 6y 241
+\characterdef \CYRGUP 6y 242
+\characterdef \cyrgup 6y 243
+\characterdef \CYRIE 6y 244
+\characterdef \cyrie 6y 245
+\characterdef \CYRII 6y 246
+\characterdef \cyrii 6y 247
+\characterdef \CYRYI 6y 248
+\characterdef \cyryi 6y 249
+\characterdef \CYRUSHRT 6y 250
+\characterdef \cyrushrt 6y 251
+\characterdef \cyrdash 6y 196
+\characterdef \textcurrency 6y 197
+\characterdef \textnumero 6y 252
+\characterdef \guillemotleft 6y 253
+\characterdef \guillemotright 6y 254
+\characterdef \quotedblbase 6y 255
+
+\accentdef \" \CYRE 6y 240
+\accentdef \" \cyre 6y 241
+\accentdef \U \CYRI 6y 137
+\accentdef \U \cyri 6y 169
+\accentdef \" \CYRII 6y 248
+\accentdef \" \cyrii 6y 249
+\accentdef \U \CYRU 6y 250
+\accentdef \U \cyru 6y 251
+
+\modifydef 6y:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodes ^^80^^a0
+ \lccodes ^^81^^a1
+ \lccodes ^^82^^a2
+ \lccodes ^^83^^a3
+ \lccodes ^^84^^a4
+ \lccodes ^^85^^a5
+ \lccodes ^^86^^a6
+ \lccodes ^^87^^a7
+ \lccodes ^^88^^a8
+ \lccodes ^^89^^a9
+ \lccodes ^^8a^^aa
+ \lccodes ^^8b^^ab
+ \lccodes ^^8c^^ac
+ \lccodes ^^8d^^ad
+ \lccodes ^^8e^^ae
+ \lccodes ^^8f^^af
+ \lccodes ^^90^^e0
+ \lccodes ^^91^^e1
+ \lccodes ^^92^^e2
+ \lccodes ^^93^^e3
+ \lccodes ^^94^^e4
+ \lccodes ^^95^^e5
+ \lccodes ^^96^^e6
+ \lccodes ^^97^^e7
+ \lccodes ^^98^^e8
+ \lccodes ^^99^^e9
+ \lccodes ^^9a^^ea
+ \lccodes ^^9b^^ab
+ \lccodes ^^9c^^ec
+ \lccodes ^^9d^^ed
+ \lccodes ^^9e^^ee
+ \lccodes ^^9f^^ef
+ \lccodes ^^f0^^f1
+ \lccodes ^^f2^^f3
+ \lccodes ^^f4^^f5
+ \lccodes ^^f6^^f7
+ \lccodes ^^f8^^f9
+ \lccodes ^^fa^^fb
+ \def\lccodesback {\zerolccodes^^80^^ff}%
+}
+
+\registertfm cmr6y - lhr10 %
+\registertfm cmr6y 0pt-6pt lhr5 %
+\registertfm cmr6y 6pt-7pt lhr6 %
+\registertfm cmr6y 7pt-8pt lhr7 %
+\registertfm cmr6y 8pt-9pt lhr8 %
+\registertfm cmr6y 9pt-10pt lhr9 %
+\registertfm cmr6y 10pt-12pt lhr10 %
+\registertfm cmr6y 12pt-17pt lhr12 %
+\registertfm cmr6y 17pt-* lhr17 %
+
+\registertfm cmbx6y - lhbx10 %
+\registertfm cmbx6y 0pt-6pt lhbx5 %
+\registertfm cmbx6y 6pt-7pt lhbx6 %
+\registertfm cmbx6y 7pt-8pt lhbx7 %
+\registertfm cmbx6y 8pt-9pt lhbx8 %
+\registertfm cmbx6y 9pt-10pt lhbx9 %
+\registertfm cmbx6y 10pt-12pt lhbx10 %
+\registertfm cmbx6y 12pt-* lhbx12 %
+
+\registertfm cmti6y - lhti10 %
+\registertfm cmti6y 0pt-8pt lhti7 %
+\registertfm cmti6y 8pt-9pt lhti8 %
+\registertfm cmti6y 9pt-10pt lhti9 %
+\registertfm cmti6y 10pt-12pt lhti10 %
+\registertfm cmti6y 12pt-17pt lhti12 %
+\registertfm cmti6y 17pt-* lhti17 %
+
+\registertfm cmbxti6y - lhbxti10 %
+\registertfm cmbxti6y 0pt-12pt lhbxti10 %
+\registertfm cmbxti6y 12pt-17pt lhbxti12 %
+\registertfm cmbxti6y 17pt-* lhbxti17 %
+
+\registertfm cmsl6y - lhsl10 %
+\registertfm cmsl6y 0pt-6pt lhsl5 %
+\registertfm cmsl6y 6pt-7pt lhsl6 %
+\registertfm cmsl6y 7pt-8pt lhsl7 %
+\registertfm cmsl6y 8pt-9pt lhsl8 %
+\registertfm cmsl6y 9pt-10pt lhsl9 %
+\registertfm cmsl6y 10pt-12pt lhsl10 %
+\registertfm cmsl6y 12pt-17pt lhsl12 %
+\registertfm cmsl6y 17pt-* lhsl17 %
+
+\registertfm cmbxsl6y - lhbxsl10 %
+\registertfm cmsltt6y - lhsltt10 %
+
+\registertfm cmss6y - lhss10 %
+\registertfm cmss6y 0pt-9pt lhss8 %
+\registertfm cmss6y 9pt-10pt lhss9 %
+\registertfm cmss6y 10pt-12pt lhss10 %
+\registertfm cmss6y 12pt-17pt lhss12 %
+\registertfm cmss6y 17pt-* lhss17 %
+
+\registertfm cmssbx6y - lhssbx10 %
+
+\registertfm cmssi6y - lhssi10 %
+\registertfm cmssi6y 0pt-9pt lhssi8 %
+\registertfm cmssi6y 9pt-10pt lhssi9 %
+\registertfm cmssi6y 10pt-12pt lhssi10 %
+\registertfm cmssi6y 12pt-17pt lhssi12 %
+\registertfm cmssi6y 17pt-* lhssi17 %
+
+\registertfm cmtt6y - lhtt10 %
+\registertfm cmtt6y 0pt-9pt lhtt8 %
+\registertfm cmtt6y 9pt-10pt lhtt9 %
+\registertfm cmtt6y 10pt-12pt lhtt10 %
+\registertfm cmtt6y 12pt-* lhtt12 %
+
+\registertfm cmitt6y - lhitt10 %
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-8c.tex b/Master/texmf-dist/tex/generic/ofs/ofs-8c.tex
new file mode 100644
index 00000000000..8106f46d895
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-8c.tex
@@ -0,0 +1,332 @@
+% OFS: Declaration of TS1 extra encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Feb 2004 Petr Olsak
+
+% See ofsdoc.tex manual for more details.
+
+\protectreading ofs-8c.tex % This is part of OFS package
+
+\ifx \characterdef \undefined \input ofs \fi
+
+\fontmessage {\ofsmessageheader
+ Extra characters + accents of 8c encoding defined.}
+
+\accentdef \capitalgrave * 8c {\accent0 }
+\accentdef \capitalacute * 8c {\accent1 }
+\accentdef \capitalcircumflex * 8c {\accent2 }
+\accentdef \capitaltilde * 8c {\accent3 }
+\accentdef \capitaldieresis * 8c {\accent4 }
+\accentdef \capitalhungarumlaut * 8c {\accent5 }
+\accentdef \capitalring * 8c {\accent6 }
+\accentdef \capitalcaron * 8c {\accent7 }
+\accentdef \capitalbreve * 8c {\accent8 }
+\accentdef \capitalmacron * 8c {\accent9 }
+\accentdef \capitaldotaccent * 8c {\accent10 }
+\accentdef \t * 8c {\accent26 }
+\accentdef \capitaltie * 8c {\accent27 }
+\accentdef \newtie * 8c {\accent28 }
+\accentdef \capitalnewtie * 8c {\accent29 }
+
+% the \text... prefix is used only for names where math-character
+% with the same name is defined in plain.tex
+
+\characterdef \capitalcompwordmark 8c 23
+\characterdef \ascendercompwordmark 8c 31
+\characterdef \quotestraightbase 8c 13
+\characterdef \quotestraightdblbase 8c 18
+\characterdef \twelveudash 8c 21
+\characterdef \threequartersemdash 8c 22
+\characterdef \textleftarrow 8c 24
+\characterdef \textrightarrow 8c 25
+\characterdef \blank 8c 32
+\characterdef \dollar 8c 36
+\characterdef \quotesingle 8c 39
+\characterdef \asteriskcentered 8c 42
+\characterdef \dblhyphen 8c 45
+\characterdef \fractionsolidus 8c 47
+\characterdef \textlangle 8c 60
+\characterdef \textminus 8c 61
+\characterdef \textrangle 8c 62
+\characterdef \mho 8c 77
+\characterdef \bigcircle 8c 79
+\characterdef \ohm 8c 87
+\characterdef \lbrackdbl 8c 91
+\characterdef \rbrackdbl 8c 93
+\characterdef \textuparrow 8c 94
+\characterdef \textdownarrow 8c 95
+\characterdef \asciigrave 8c 96
+\characterdef \born 8c 98
+\characterdef \divorced 8c 99
+\characterdef \died 8c 100
+\characterdef \leaf 8c 108
+\characterdef \married 8c 109
+\characterdef \musicalnote 8c 110
+\characterdef \tildelow 8c 126
+\characterdef \dblhyphenchar 8c 127
+\characterdef \asciibreve 8c 128
+\characterdef \asciicaron 8c 129
+\characterdef \acutedbl 8c 130
+\characterdef \gravedbl 8c 131
+\let\dag=\relax \let\ddag=\relax
+\characterdef \dag 8c 132
+\characterdef \ddag 8c 133
+\characterdef \bardbl 8c 134
+\characterdef \perthousand 8c 135
+\characterdef \textbullet 8c 136
+\characterdef \celsius 8c 137
+\characterdef \dollaroldstyle 8c 138
+\characterdef \centoldstyle 8c 139
+\characterdef \florin 8c 140
+\characterdef \colonmonetary 8c 141
+\characterdef \won 8c 142
+\characterdef \naira 8c 143
+\characterdef \guarani 8c 144
+\characterdef \peso 8c 145
+\characterdef \lira 8c 146
+\characterdef \recipe 8c 147
+\characterdef \interrobang 8c 148
+\characterdef \interrobangdown 8c 149
+\characterdef \dong 8c 150
+\characterdef \trademark 8c 151
+\characterdef \pertenthousand 8c 152
+\characterdef \pilcrow 8c 153
+\characterdef \baht 8c 154
+\characterdef \numero 8c 155
+\characterdef \discount 8c 156
+\characterdef \estimated 8c 157
+\characterdef \openbullet 8c 158
+\characterdef \servicemark 8c 159
+\characterdef \lquill 8c 160
+\characterdef \rquill 8c 161
+\characterdef \cent 8c 162
+\characterdef \sterling 8c 163
+\characterdef \currency 8c 164
+\characterdef \yen 8c 165
+\characterdef \brokenbar 8c 166
+\characterdef \section 8c 167
+\characterdef \asciidieresis 8c 168
+\let\copyright=\relax
+\characterdef \copyright * {\ofscopyright}
+\characterdef \copyright 8c 169
+\characterdef \ordfeminine 8c 170
+\characterdef \copyleft 8c 171
+\characterdef \textlnot 8c 172
+\characterdef \circledP 8c 173
+\characterdef \registered 8c 174
+\characterdef \asciimacron 8c 175
+\characterdef \degree 8c 176
+\characterdef \textpm 8c 177
+\characterdef \twosuperior 8c 178
+\characterdef \threesuperior 8c 179
+\characterdef \asciiacute 8c 180
+\characterdef \textmu 8c 181 % micro sign
+\characterdef \paragraph 8c 182
+\characterdef \periodcentered 8c 183
+\characterdef \referencemark 8c 184
+\characterdef \onesuperior 8c 185
+\characterdef \ordmasculine 8c 186
+\characterdef \textsurd 8c 187
+\characterdef \onequarter 8c 188
+\characterdef \onehalf 8c 189
+\characterdef \threequarters 8c 190
+\characterdef \euro 8c 191
+\characterdef \texttimes 8c 214
+\characterdef \textdiv 8c 246
+
+%%% Commands:
+
+\characterdef \circled 8c {\aftergroup\circledcmd}
+\characterdef \capitalcedilla 8c {\aftergroup\capitalcedillacmd}
+\characterdef \capitalogonek 8c {\aftergroup\capitalogonekcmd}
+
+\def \circledcmd #1{{%
+ \ooalign{%
+ \hfil \raise .07ex\hbox {#1}\hfil \crcr
+ {\setextrafont\char 79}% '117 = "4F
+ }%
+}}
+\def \capitalcedillacmd #1{{\ooalign{\null#1\crcr
+ \hidewidth{\setextrafont\char11}\hidewidth}}}
+\def \capitalogonekcmd #1{{\ooalign{\null#1\crcr
+ \hidewidth\setextrafont{\char12}\hidewidth}}}
+
+%%% Extensions / reductions
+
+\modifydef 8c:vardigits;{%
+ \characterdef \vardigits * {\setextrafont}
+ \characterdef \zerooldstyle 8c 48
+ \characterdef \oneoldstyle 8c 49
+ \characterdef \twooldstyle 8c 50
+ \characterdef \threeoldstyle 8c 51
+ \characterdef \fouroldstyle 8c 52
+ \characterdef \fiveoldstyle 8c 53
+ \characterdef \sixoldstyle 8c 54
+ \characterdef \sevenoldstyle 8c 55
+ \characterdef \eightoldstyle 8c 56
+ \characterdef \nineoldstyle 8c 57
+}
+\modifydef 8c:poor;{%
+ \characterdel \capitalcompwordmark 8c 23
+ \characterdel \ascendercompwordmark 8c 31
+ \characterdel \twelveudash 8c 21
+ \characterdel \textleftarrow 8c 24
+ \characterdel \textrightarrow 8c 25
+ \characterdel \blank 8c 32
+ \characterdel \asteriskcentered 8c 42
+ \characterdel \dblhyphen 8c 45
+ \characterdel \fractionsolidus 8c 47
+ \characterdel \textlangle 8c 60
+ \characterdel \textminus 8c 61
+ \characterdel \textrangle 8c 62
+ \characterdel \mho 8c 77
+ \characterdel \bigcircle 8c 79
+ \characterdel \ohm 8c 87
+ \characterdel \lbrackdbl 8c 91
+ \characterdel \rbrackdbl 8c 93
+ \characterdel \textuparrow 8c 94
+ \characterdel \textdownarrow 8c 95
+ \characterdel \asciigrave 8c 96
+ \characterdel \born 8c 98
+ \characterdel \divorced 8c 99
+ \characterdel \died 8c 100
+ \characterdel \leaf 8c 108
+ \characterdel \married 8c 109
+ \characterdel \musicalnote 8c 110
+ \characterdel \dblhyphenchar 8c 127
+ \characterdel \asciibreve 8c 128
+ \characterdel \textbullet 8c 136
+ \characterdel \dollaroldstyle 8c 138
+ \characterdel \centoldstyle 8c 139
+ \characterdel \colonmonetary 8c 141
+ \characterdel \won 8c 142
+ \characterdel \naira 8c 143
+ \characterdel \guarani 8c 144
+ \characterdel \peso 8c 145
+ \characterdel \lira 8c 146
+ \characterdel \recipe 8c 147
+ \characterdel \interrobang 8c 148
+ \characterdel \interrobangdown 8c 149
+ \characterdel \dong 8c 150
+ \characterdel \pertenthousand 8c 152
+ \characterdel \pilcrow 8c 153
+ \characterdel \baht 8c 154
+ \characterdel \numero 8c 155
+ \characterdel \discount 8c 156
+ \characterdel \estimated 8c 157
+ \characterdel \openbullet 8c 158
+ \characterdel \servicemark 8c 159
+ \characterdel \lquill 8c 160
+ \characterdel \rquill 8c 161
+ \characterdel \copyleft 8c 171
+ \characterdel \circledP 8c 173
+ \characterdel \referencemark 8c 184
+ \characterdel \textsurd 8c 187
+ \characterdel \euro 8c 191
+ \characterdel \circled 8c {\aftergroup\circledcmd}
+ %
+ \accentdel \t * 8c 26
+ \accentdel \capitaltie * 8c 27
+ \accentdel \newtie * 8c 28
+ \accentdel \capitalnewtie * 8c 29
+}
+
+% For LaTeX name space compatibility:
+
+\let \textcapitalcompwordmark \capitalcompwordmark
+\let \textascendercompwordmark \ascendercompwordmark
+\let \textquotestraightbase \quotestraightbase
+\let \textquotestraightdblbase \quotestraightdblbase
+\let \texttwelveudash \twelveudash
+\let \textthreequartersemdash \threequartersemdash
+\let \textblank \blank
+\let \textdollar \dollar
+\let \textquotesingle \quotesingle
+\let \textasteriskcentered \asteriskcentered
+\let \textdblhyphen \dblhyphen
+\let \textfractionsolidus \fractionsolidus
+\let \textzerooldstyle \zerooldstyle
+\let \textoneoldstyle \oneoldstyle
+\let \texttwooldstyle \twooldstyle
+\let \textthreeoldstyle \threeoldstyle
+\let \textfouroldstyle \fouroldstyle
+\let \textfiveoldstyle \fiveoldstyle
+\let \textsixoldstyle \sixoldstyle
+\let \textsevenoldstyle \sevenoldstyle
+\let \texteightoldstyle \eightoldstyle
+\let \textnineoldstyle \nineoldstyle
+\let \textmho \mho
+\let \textbigcircle \bigcircle
+\let \textohm \ohm
+\let \textlbrackdbl \lbrackdbl
+\let \textrbrackdbl \rbrackdbl
+\let \textasciigrave \asciigrave
+\let \textborn \born
+\let \textdivorced \divorced
+\let \textdied \died
+\let \textleaf \leaf
+\let \textmarried \married
+\let \textmusicalnote \musicalnote
+\let \texttildelow \tildelow
+\let \textdblhyphenchar \dblhyphenchar
+\let \textasciibreve \asciibreve
+\let \textasciicaron \asciicaron
+\let \textacutedbl \acutedbl
+\let \textgravedbl \gravedbl
+\let \textdagger \dag
+\let \textdaggerdbl \ddag
+\let \textbardbl \bardbl
+\let \textperthousand \perthousand
+\let \textcelsius \celsius
+\let \textdollaroldstyle \dollaroldstyle
+\let \textcentoldstyle \centoldstyle
+\let \textflorin \florin
+\let \textcolonmonetary \colonmonetary
+\let \textwon \won
+\let \textnaira \naira
+\let \textguarani \guarani
+\let \textpeso \peso
+\let \textlira \lira
+\let \textrecipe \recipe
+\let \textinterrobang \interrobang
+\let \textinterrobangdown \interrobangdown
+\let \textdong \dong
+\let \texttrademark \trademark
+\let \textpertenthousand \pertenthousand
+\let \textpilcrow \pilcrow
+\let \textbaht \baht
+\let \textnumero \numero
+\let \textdiscount \discount
+\let \textestimated \estimated
+\let \textopenbullet \openbullet
+\let \textservicemark \servicemark
+\let \textlquill \lquill
+\let \textrquill \rquill
+\let \textcent \cent
+\let \textsterling \sterling
+\let \textcurrency \currency
+\let \textyen \yen
+\let \textbrokenbar \brokenbar
+\let \textsection \section
+\let \textasciidieresis \asciidieresis
+\let \textcopyright \copyright
+\let \textordfeminine \ordfeminine
+\let \textcopyleft \copyleft
+\let \textcircledP \circledP
+\let \textregistered \registered
+\let \textasciimacron \asciimacron
+\let \textdegree \degree
+\let \texttwosuperior \twosuperior
+\let \textthreesuperior \threesuperior
+\let \textasciiacute \asciiacute
+\let \textparagraph \paragraph
+\let \textperiodcentered \periodcentered
+\let \textreferencemark \referencemark
+\let \textonesuperior \onesuperior
+\let \textordmasculine \ordmasculine
+\let \textonequarter \onequarter
+\let \textonehalf \onehalf
+\let \textthreequarters \threequarters
+\let \texteuro \euro
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-8t.tex b/Master/texmf-dist/tex/generic/ofs/ofs-8t.tex
new file mode 100644
index 00000000000..75946ad1629
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-8t.tex
@@ -0,0 +1,251 @@
+% OFS: Declaration of Cork (alias T1) encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Jun 2001 Petr Olsak
+% Feb 2004
+
+% See ofsdoc.tex manual for more details.
+
+\protectreading ofs-8t.tex % This is part of OFS package
+
+\fontmessage {\ofsmessageheader
+ Characters + accents of 8t encoding defined.}
+
+%%% Default accents
+
+\accentdef \` * 8t {\accent 0 }
+\accentdef \' * 8t {\accent 1 }
+\accentdef \^ * 8t {\accent 2 }
+\accentdef \~ * 8t {\accent 3 }
+\accentdef \" * 8t {\accent 4 }
+\accentdef \H * 8t {\accent 5 }
+\accentdef \r * 8t {\accent 6 }
+\accentdef \v * 8t {\accent 7 }
+\accentdef \u * 8t {\accent 8 }
+\accentdef \= * 8t {\accent 9 }
+\accentdef \. * 8t {\accent 10 }
+\accentdef \c * 8t {\accentbelow {\char11}{0pt}}
+\accentdef \k * 8t {\accentbelow {\char12}{0pt}}
+\accentdef \m * 8t {\accentbelow {,}{.1ex}}
+\accentdef \b * 8t {\accentbelow {\char9}{.15ex}}
+\accentdef \d * 8t {\accentbelow {.}{.1ex}}
+
+%%% Standard characters in plain (redefined here)
+
+\def\aa{\r a}
+\def\AA{\r A}
+
+\characterdef \dotlessi 8t 25
+\characterdef \dotlessj 8t 26
+\let\i=\dotlessi \let\j=\dotlessj
+
+\let\SS=\relax \let\AE=\relax \let\OE=\relax \let\O=\relax
+\characterdef \SS 8t 223
+\characterdef \AE 8t 198
+\characterdef \OE 8t 215
+\characterdef \O 8t 216
+
+\let\ss=\relax \let\ae=\relax \let\oe=\relax \let\o=\relax
+\characterdef \ss 8t 255
+\characterdef \ae 8t 230
+\characterdef \oe 8t 247
+\characterdef \o 8t 248
+
+%%% Extra characters from Cork encoding
+
+\let\promile=\relax
+\characterdef \promile 8t {\%\char 24 }
+\characterdef \pertenthousand 8t {\%\char 24\char 24 }
+
+\characterdef \Eth 8t 208
+\characterdef \NG 8t 141
+\characterdef \Thorn 8t 222
+\characterdef \eth 8t 240
+\characterdef \ng 8t 173
+\characterdef \thorn 8t 254
+\characterdef \Lslash 8t 138 \let\L=\Lslash
+\characterdef \lslash 8t 170 \let\l=\lslash
+
+\let\flqq=\relax \let\frqq=\relax \let\flq=\relax \let\frq=\relax
+\characterdef \flqq 8t 19
+\characterdef \frqq 8t 20
+\characterdef \flq 8t 14
+\characterdef \frq 8t 15
+
+\let\clqq=\relax \let\crqq=\relax \let\clq=\relax \let\crq=\relax
+\characterdef \clqq 8t 18
+\characterdef \crqq 8t 16
+\characterdef \clq 8t 13
+\characterdef \crq 8t `\`
+
+\let\elqq=\relax \let\erqq=\relax \let\elq=\relax \let\erq=\relax
+\characterdef \elqq 8t 16
+\characterdef \erqq 8t 17
+\characterdef \elq 8t `\`
+\characterdef \erq 8t `\'
+
+\characterdef \asciicircum 8t `\^
+\characterdef \asciitilde 8t `\~
+\characterdef \textbackslash 8t `\\
+\characterdef \fullbar 8t `\|
+\characterdef \textbraceleft 8t `\{
+\characterdef \textbraceright 8t `\}
+\characterdef \textcompwordmark 8t 23
+\characterdef \exclamdown 8t 189
+\characterdef \questiondown 8t 190
+\characterdef \textgreater 8t `\>
+\characterdef \textless 8t `\<
+\characterdef \section 8t 159
+\characterdef \sterling 8t 191
+\characterdef \underscore 8t 95
+\characterdef \quotedbl 8t 34
+
+\let\pound=\sterling
+\let\S=\section
+
+%%% Accented letters from Cork encoding
+
+\accentdef \. i 8t `\i
+\accentdef \u A 8t 128
+\accentdef \k A 8t 129
+\accentdef \' C 8t 130
+\accentdef \v C 8t 131
+\accentdef \v D 8t 132
+\accentdef \v E 8t 133
+\accentdef \k E 8t 134
+\accentdef \u G 8t 135
+\accentdef \' L 8t 136
+\accentdef \v L 8t 137
+\accentdef \' N 8t 139
+\accentdef \v N 8t 140
+\accentdef \H O 8t 142
+\accentdef \' R 8t 143
+\accentdef \v R 8t 144
+\accentdef \' S 8t 145
+\accentdef \v S 8t 146
+\accentdef \c S 8t 147
+\accentdef \v T 8t 148
+\accentdef \c T 8t 149
+\accentdef \H U 8t 150
+\accentdef \r U 8t 151
+\accentdef \" Y 8t 152
+\accentdef \' Z 8t 153
+\accentdef \v Z 8t 154
+\accentdef \. Z 8t 155
+\accentdef \. I 8t 157
+\accentdef \= d 8t 158
+\accentdef \u a 8t 160
+\accentdef \k a 8t 161
+\accentdef \' c 8t 162
+\accentdef \v c 8t 163
+\accentdef \v d 8t 164
+\accentdef \v e 8t 165
+\accentdef \k e 8t 166
+\accentdef \u g 8t 167
+\accentdef \' l 8t 168
+\accentdef \v l 8t 169
+\accentdef \' n 8t 171
+\accentdef \v n 8t 172
+\accentdef \H o 8t 174
+\accentdef \' r 8t 175
+\accentdef \v r 8t 176
+\accentdef \' s 8t 177
+\accentdef \v s 8t 178
+\accentdef \c s 8t 179
+\accentdef \v t 8t 180
+\accentdef \c t 8t 181
+\accentdef \H u 8t 182
+\accentdef \r u 8t 183
+\accentdef \" y 8t 184
+\accentdef \' z 8t 185
+\accentdef \v z 8t 186
+\accentdef \. z 8t 187
+\accentdef \` A 8t 192
+\accentdef \' A 8t 193
+\accentdef \^ A 8t 194
+\accentdef \~ A 8t 195
+\accentdef \" A 8t 196
+\accentdef \r A 8t 197
+\accentdef \c C 8t 199
+\accentdef \` E 8t 200
+\accentdef \' E 8t 201
+\accentdef \^ E 8t 202
+\accentdef \" E 8t 203
+\accentdef \` I 8t 204
+\accentdef \' I 8t 205
+\accentdef \^ I 8t 206
+\accentdef \" I 8t 207
+\accentdef \~ N 8t 209
+\accentdef \` O 8t 210
+\accentdef \' O 8t 211
+\accentdef \^ O 8t 212
+\accentdef \~ O 8t 213
+\accentdef \" O 8t 214
+\accentdef \` U 8t 217
+\accentdef \' U 8t 218
+\accentdef \^ U 8t 219
+\accentdef \" U 8t 220
+\accentdef \' Y 8t 221
+\accentdef \` a 8t 224
+\accentdef \' a 8t 225
+\accentdef \^ a 8t 226
+\accentdef \~ a 8t 227
+\accentdef \" a 8t 228
+\accentdef \r a 8t 229
+\accentdef \c c 8t 231
+\accentdef \` e 8t 232
+\accentdef \' e 8t 233
+\accentdef \^ e 8t 234
+\accentdef \" e 8t 235
+\accentdef \` i 8t 236
+\accentdef \` {\i} 8t 236
+\accentdef \' i 8t 237
+\accentdef \' {\i} 8t 237
+\accentdef \^ i 8t 238
+\accentdef \^ {\i} 8t 238
+\accentdef \" i 8t 239
+\accentdef \" {\i} 8t 239
+\accentdef \~ n 8t 241
+\accentdef \` o 8t 242
+\accentdef \' o 8t 243
+\accentdef \^ o 8t 244
+\accentdef \~ o 8t 245
+\accentdef \" o 8t 246
+\accentdef \` u 8t 249
+\accentdef \' u 8t 250
+\accentdef \^ u 8t 251
+\accentdef \" u 8t 252
+\accentdef \' y 8t 253
+
+%%% Times etc.:
+
+\modifydef 8t:losschars; {%
+ \characterdel \dotlessj 8t 26
+ \characterdel \promile 8t {\%\char 24 }
+ \characterdel \NG 8t 141
+ \characterdel \ng 8t 173
+}
+\modifydef 8t:ienc; {% For \ienc, see iencdoc.tex
+ \skipfirststep
+ \csname 8t:losschars\endcsname
+}
+\modifydef 8t:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodesloop ^^a0^^bc^^80% from a-breve to ij, first cap: A-breve
+ \lccodesloop ^^e0^^ff^^c0% from a-grave to ss, first cap: A-grave
+ \def\lccodesback {\zerolccodes ^^80^^ff}%
+}
+
+\endinput %%% the following macros will be included in LANG style files
+
+%%% Macros for quotes
+
+\def\singleuv#1{\clq#1\crq}
+\def\doubleuv#1{\clqq#1\crqq}
+\def\singlefuv#1{\frq#1\flq}
+\def\doublefuv#1{\frqq#1\flqq}
+\def\singleauv#1{\elq#1\erq}
+\def\doubleauv#1{\elqq#1\erqq}
+\let\uv=\doubleuv
+\let\fuv=\doublefuv
+\let\auv=\doubleauv
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-8x.tex b/Master/texmf-dist/tex/generic/ofs/ofs-8x.tex
new file mode 100644
index 00000000000..ec2ca3e9813
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-8x.tex
@@ -0,0 +1,229 @@
+% Encoding definition of expert encoding of AntykwaTorunska
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% May 2004 Petr Olsak
+
+% See stormtex.html and ofsdoc.tex manuals for more details.
+
+\protectreading ofs-8x.tex % This is part of OFS package
+
+\characterdef \minusalt 8x 1
+\characterdef \plusalt 8x 2
+\characterdef \equalalt 8x 3
+\characterdef \dividealt 8x 4
+\characterdef \multiplyalt 8x 5
+\characterdef \plusminusalt 8x 6
+\characterdef \minusplusalt 8x 7
+\characterdef \lessalt 8x 8
+\characterdef \greateralt 8x 9
+\characterdef \greaterequalaltpl 8x 10
+\characterdef \lessequalaltpl 8x 11
+\characterdef \textminusplus 8x 12
+\characterdef \textless 8x 13
+\characterdef \textgreater 8x 14
+\characterdef \textlessequal 8x 15
+\characterdef \textgreaterequal 8x 16
+\characterdef \lessequalalt 8x 17
+\characterdef \greaterequalalt 8x 18
+\characterdef \dotlessisuperior 8x 19
+\characterdef \onehalf 8x 20
+\characterdef \onequarter 8x 21
+\characterdef \onethird 8x 22
+\characterdef \oneeighth 8x 23
+\characterdef \threeeighths 8x 24
+\characterdef \fiveeighths 8x 25
+\characterdef \seveneighths 8x 26
+\characterdef \threequarters 8x 27
+\characterdef \twothirds 8x 28
+\characterdef \ligfj 8x 29
+\characterdef \ligffj 8x 30
+\characterdef \ligst 8x 33
+\characterdef \ligct 8x 34
+\characterdef \ligTh 8x 35
+\characterdef \dollarsuperior 8x 36
+\characterdef \parenleftsuperior 8x 40
+\characterdef \parenrightsuperior 8x 41
+\characterdef \commasuperior 8x 44
+\characterdef \hyphensuperior 8x 45
+\characterdef \periodsuperior 8x 46
+\characterdef \fraction 8x 47
+\characterdef \zerosuperior 8x 48
+\characterdef \onesuperior 8x 49
+\characterdef \twosuperior 8x 50
+\characterdef \threesuperior 8x 51
+\characterdef \foursuperior 8x 52
+\characterdef \fivesuperior 8x 53
+\characterdef \sixsuperior 8x 54
+\characterdef \sevensuperior 8x 55
+\characterdef \eightsuperior 8x 56
+\characterdef \ninesuperior 8x 57
+\characterdef \sterlingsuperior 8x 91
+\characterdef \yensuperior 8x 92
+\characterdef \dotaccentsuperior 8x 95
+\characterdef \asuperior 8x 97
+\characterdef \bsuperior 8x 98
+\characterdef \csuperior 8x 99
+\characterdef \dsuperior 8x 100
+\characterdef \esuperior 8x 101
+\characterdef \fsuperior 8x 102
+\characterdef \hsuperior 8x 104
+\characterdef \isuperior 8x 105
+\characterdef \lsuperior 8x 108
+\characterdef \msuperior 8x 109
+\characterdef \nsuperior 8x 110
+\characterdef \osuperior 8x 111
+\characterdef \rsuperior 8x 114
+\characterdef \ssuperior 8x 115
+\characterdef \tsuperior 8x 116
+\characterdef \centsuperior 8x 124
+\characterdef \florinsuperior 8x 125
+\characterdef \euro 8x 128
+\characterdef \eurosuperior 8x 129
+\characterdef \zeronumr 8x 130
+\characterdef \onenumr 8x 131
+\characterdef \twonumr 8x 132
+\characterdef \threenumr 8x 133
+\characterdef \fournumr 8x 134
+\characterdef \fivenumr 8x 135
+\characterdef \sixnumr 8x 136
+\characterdef \sevennumr 8x 137
+\characterdef \eightnumr 8x 138
+\characterdef \ninenumr 8x 139
+\characterdef \zerodnom 8x 140
+\characterdef \onednom 8x 141
+\characterdef \twodnom 8x 142
+\characterdef \threednom 8x 143
+\characterdef \fourdnom 8x 144
+\characterdef \fivednom 8x 145
+\characterdef \sixdnom 8x 146
+\characterdef \sevendnom 8x 147
+\characterdef \eightdnom 8x 148
+\characterdef \ninednom 8x 149
+\characterdef \zeroinferior 8x 150
+\characterdef \oneinferior 8x 151
+\characterdef \twoinferior 8x 152
+\characterdef \threeinferior 8x 153
+\characterdef \fourinferior 8x 154
+\characterdef \fiveinferior 8x 155
+\characterdef \sixinferior 8x 156
+\characterdef \seveninferior 8x 157
+\characterdef \eightinferior 8x 158
+\characterdef \nineinferior 8x 159
+\characterdef \equivasymptotic 8x 160
+\characterdef \equivalence 8x 161
+\characterdef \precedes 8x 162
+\characterdef \precedesequal 8x 163
+\characterdef \lessmuch 8x 164
+\characterdef \greatermuch 8x 165
+\characterdef \follows 8x 166
+\characterdef \followsequal 8x 167
+\characterdef \element 8x 168
+\characterdef \owner 8x 169
+\characterdef \propersubset 8x 170
+\characterdef \reflexsubset 8x 171
+\characterdef \propersuperset 8x 172
+\characterdef \reflexsuperset 8x 173
+\characterdef \arrowsouthwest 8x 174
+\characterdef \arrowsoutheast 8x 175
+\characterdef \arrownorthwest 8x 176
+\characterdef \arrownortheast 8x 177
+\characterdef \arrowleft 8x 178
+\characterdef \arrowright 8x 179
+\characterdef \arrowboth 8x 180
+\characterdef \arrowup 8x 181
+\characterdef \arrowdown 8x 182
+\characterdef \arrowdblleft 8x 183
+\characterdef \arrowdblright 8x 184
+\characterdef \arrowdblup 8x 185
+\characterdef \arrowdbldown 8x 186
+\characterdef \arrowdblboth 8x 187
+\characterdef \arrowlefttophalf 8x 188
+\characterdef \arrowrighttophalf 8x 189
+\characterdef \arrowleftbothalf 8x 190
+\characterdef \arrowrightbothalf 8x 191
+\characterdef \similar 8x 192
+\characterdef \asymptoticallyequal 8x 193
+\characterdef \union 8x 194
+\characterdef \intersection 8x 195
+\characterdef \unionmulti 8x 196
+\characterdef \unionsq 8x 197
+\characterdef \intersectionsq 8x 198
+\characterdef \subsetsqequal 8x 199
+\characterdef \supersetsqequal 8x 200
+\characterdef \openbullet 8x 201
+\characterdef \circleminus 8x 202
+\characterdef \circleplus 8x 203
+\characterdef \circledivide 8x 204
+\characterdef \circlemultiply 8x 205
+\characterdef \circledot 8x 206
+\characterdef \circlecopyrt 8x 207
+\characterdef \diamondmath 8x 208
+\characterdef \asteriskmath 8x 209
+\characterdef \latticetop 8x 210
+\characterdef \perpendicular 8x 211
+\characterdef \turnstileleft 8x 212
+\characterdef \turnstileright 8x 213
+\characterdef \floorleft 8x 214
+\characterdef \floorright 8x 215
+\characterdef \ceilingleft 8x 216
+\characterdef \ceilingright 8x 217
+\characterdef \textlangle 8x 218
+\characterdef \textrangle 8x 219
+\characterdef \dblverticalbar 8x 220
+\characterdef \arrowupdndbl 8x 221
+\characterdef \arrowupdn 8x 222
+\characterdef \universal 8x 223
+\characterdef \existential 8x 224
+\characterdef \wreathproduct 8x 225
+\characterdef \club 8x 226
+\characterdef \spade 8x 227
+\characterdef \heart 8x 228
+\characterdef \diamond 8x 229
+\characterdef \logicaland 8x 230
+\characterdef \logicalor 8x 231
+\characterdef \triangle 8x 232
+\characterdef \triangleinv 8x 233
+\characterdef \triangleright 8x 234
+\characterdef \triangleleft 8x 235
+\characterdef \proportional 8x 236
+\characterdef \arrowhookleft 8x 237
+\characterdef \arrowhookright 8x 238
+\characterdef \flat 8x 239
+\characterdef \vector 8x 240
+\characterdef \tie 8x 241
+\characterdef \nabla 8x 242
+\characterdef \dollarinferior 8x 243
+\characterdef \euroinferior 8x 244
+\characterdef \sterlinginferior 8x 245
+\characterdef \yeninferior 8x 246
+\characterdef \centinferior 8x 247
+\characterdef \parenleftinferior 8x 248
+\characterdef \periodinferior 8x 249
+\characterdef \hypheninferior 8x 250
+\characterdef \commainferior 8x 251
+\characterdef \parenrightinferior 8x 252
+\characterdef \trademark 8x 253
+\characterdef \estimated 8x 254
+
+\modifydef 8z:antt; {%
+ \characterdef \degree 8z 176
+ \characterdef \euro 8z 134
+ \characterdef \trademark 8z 136
+ \characterdef \copyright 8z 137
+ \characterdef \registered 8z 138
+ \characterdef \flq 8z 142
+ \characterdef \frq 8z 143
+ \characterdef \clq 8z 154
+ \characterdef \crq 8z 155
+ \characterdef \longs 8z 149
+ \characterdef \florin 8z 151
+ \accentdel \c T 8z 222
+ \accentdel \c t 8z 189
+}
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-8z.tex b/Master/texmf-dist/tex/generic/ofs/ofs-8z.tex
new file mode 100644
index 00000000000..1fc65b8c72a
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-8z.tex
@@ -0,0 +1,362 @@
+% OFS: Declaration of CS-fonts encoding
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Jun 2001 Petr Olsak
+% Feb 2004
+
+% See ofsdoc.tex manual for more details.
+
+\ifx \characterdef \undefined \input ofs \fi
+\protectreading ofs-8z.tex % This is part of OFS package
+
+\fontmessage {\ofsmessageheader
+ Characters + accents of 8z encoding defined.}
+
+%%% Default accents
+
+\accentdef \` * 8z {\accent 18 } % grave
+\accentdef \' * 8z {\accent 19 } % acute
+\accentdef \v * 8z {\accent 20 } % caron
+\accentdef \u * 8z {\accent 21 } % breve
+\accentdef \= * 8z {\accent 22 } % macron
+\accentdef \r * 8z {\accent 23 } % ring
+\accentdef \^ * 8z {\accent 94 } % circumflex
+\accentdef \. * 8z {\accent 95 } % dot-accent
+\accentdef \H * 8z {\accent 125 } % hungar-umlaut
+\accentdef \~ * 8z {\accent 126 } % tilde
+\accentdef \" * 8z {\accent 127 } % dieresis
+\accentdef \c * 8z {\accentbelow {\char24}{0pt}} % cedilla
+\accentdef \k * 8z {\accentbelow {\char157}{0pt}} % ogonek
+\accentdef \m * 8z {\accentbelow {,}{.1ex}} % comma-accent
+\accentdef \b * 8z {\accentbelow {\char22}{.15ex}} % underscore
+\accentdef \d * 8z {\accentbelow {.}{.1ex}} % dot below
+
+%%% Standard characters in plain (redefined here)
+
+\def\aa{\r a}
+\def\AA{\r A}
+
+\characterdef \dotlessi 8z 16
+\characterdef \dotlessj 8z 17
+\let\i=\dotlessi \let\j=\dotlessj
+
+\accentdef \" i 8z {\accent 127 \dotlessi}
+\accentdef \" {\i} 8z {\accent 127 \dotlessi}
+
+\let\SS=\relax \let\AE=\relax \let\OE=\relax \let\O=\relax
+\characterdef \SS 8z {SS}
+\characterdef \AE 8z 29
+\characterdef \OE 8z 30
+\characterdef \O 8z 31
+
+\let\ss=\relax \let\ae=\relax \let\oe=\relax \let\o=\relax
+\characterdef \ss 8z 25
+\characterdef \ae 8z 26
+\characterdef \oe 8z 27
+\characterdef \o 8z 28
+\characterdef \ellipsis 8z {\dots}
+
+%%% Characters available only in math fonts
+
+%\characterdef \dag 8z {\ofshexbox279}
+%\characterdef \ddag 8z {\ofshexbox27A}
+%\characterdef \section 8z {\ofshexbox278}
+%\characterdef \paragraph 8z {\ofshexbox27B}
+% defined as single characters in 8z by Z. Wagner
+
+%%% Extra characters from CS-fonts
+
+\let\promile=\relax
+\characterdef \promile 8z 141
+\characterdef \varhyphen 8z 156
+
+\let\flqq=\relax \let\frqq=\relax
+\characterdef \flqq 8z 158
+\characterdef \frqq 8z 159
+
+\let\clqq=\relax \let\crqq=\relax
+\characterdef \clqq 8z 254
+\characterdef \crqq 8z 255
+\characterdef \clq 8z `\,
+\characterdef \crq 8z `\`
+
+\let\elqq=\relax \let\erqq=\relax \let\elq=\relax \let\erq=\relax
+\characterdef \elqq 8z 92
+\characterdef \erqq 8z 34
+\characterdef \elq 8z `\`
+\characterdef \erq 8z `\'
+
+\characterdef \exclamdown 8z 60
+\characterdef \questiondown 8z 62
+
+%%% Extra characters defined in XL2Encoding vector by Z. Wagner
+
+\let\dag=\relax \let\ddag=\relax
+\characterdef \dag 8z 129
+\characterdef \ddag 8z 130
+
+\characterdef \section 8z 167 \let\S=\section
+\characterdef \paragraph 8z 133 \let\P=\paragraph
+\characterdef \ellipsis 8z 128
+\characterdef \textbullet 8z 131
+\characterdef \sterling 8z 132 \let\pound=\sterling
+\characterdef \currency 8z 164
+\characterdef \Lslash 8z 163 \let\L=\Lslash
+\characterdef \lslash 8z 179 \let\l=\lslash
+\characterdef \Eth 8z 208
+\characterdef \eth 8z 240
+\characterdef \texttimes 8z 215
+\characterdef \textdiv 8z 247
+
+%%% Accented letters from CS fonts
+
+\accentdef \` A 8z 152
+\accentdef \' A 8z 193
+\accentdef \" A 8z 196
+\accentdef \` a 8z 184
+\accentdef \' a 8z 225
+\accentdef \" a 8z 228
+\accentdef \v C 8z 200
+\accentdef \v c 8z 232
+\accentdef \v D 8z 207
+\accentdef \v d 8z 239
+\accentdef \' E 8z 201
+\accentdef \v E 8z 204
+\accentdef \' e 8z 233
+\accentdef \v e 8z 236
+\accentdef \' I 8z 205
+\accentdef \' i 8z 237
+\accentdef \' {\i} 8z 237
+\accentdef \v L 8z 165
+\accentdef \' L 8z 197
+\accentdef \v l 8z 181
+\accentdef \' l 8z 229
+\accentdef \v N 8z 210
+\accentdef \v n 8z 242
+\accentdef \' O 8z 211
+\accentdef \^ O 8z 212
+\accentdef \" O 8z 214
+\accentdef \' o 8z 243
+\accentdef \^ o 8z 244
+\accentdef \" o 8z 246
+\accentdef \' R 8z 192
+\accentdef \v R 8z 216
+\accentdef \' r 8z 224
+\accentdef \v r 8z 248
+\accentdef \v S 8z 169
+\accentdef \v s 8z 185
+\accentdef \v T 8z 171
+\accentdef \v t 8z 187
+\accentdef \r U 8z 217
+\accentdef \' U 8z 218
+\accentdef \" U 8z 220
+\accentdef \r u 8z 249
+\accentdef \' u 8z 250
+\accentdef \" u 8z 252
+\accentdef \' Y 8z 221
+\accentdef \' y 8z 253
+\accentdef \v Z 8z 174
+\accentdef \v z 8z 190
+
+%%% Accented letters added in XL2Encoding vector by Z. Wagner
+
+\accentdef \k A 8z 161
+\accentdef \^ A 8z 194
+\accentdef \u A 8z 195
+\accentdef \k a 8z 177
+\accentdef \^ a 8z 226
+\accentdef \u a 8z 227
+\accentdef \' C 8z 198
+\accentdef \c C 8z 199
+\accentdef \' c 8z 230
+\accentdef \c c 8z 231
+\accentdef \k E 8z 202
+\accentdef \" E 8z 203
+\accentdef \k e 8z 234
+\accentdef \" e 8z 235
+\accentdef \^ I 8z 206
+\accentdef \^ i 8z 238
+\accentdef \^ {\i} 8z 238
+\accentdef \' N 8z 209
+\accentdef \' n 8z 241
+\accentdef \H O 8z 213
+\accentdef \H o 8z 245
+\accentdef \' S 8z 166
+\accentdef \c S 8z 170
+\accentdef \' s 8z 182
+\accentdef \c s 8z 186
+\accentdef \c T 8z 222
+\accentdef \c t 8z 189
+\accentdef \H U 8z 219
+\accentdef \H u 8z 251
+\accentdef \' Z 8z 172
+\accentdef \. Z 8z 175
+\accentdef \' z 8z 188
+\accentdef \. z 8z 191
+
+%%% Accents uavailable in CSfonts
+
+%%% Characters unavailable in CSfonts :-(
+
+\modifydef 8z:csfont; {%
+ % available in 8c:
+ \characterdel \dag 8z 129
+ \characterdel \ddag 8z 130
+ \characterdel \section 8z 167
+ \characterdel \paragraph 8z 133
+ \characterdel \textbullet 8z 131
+ \characterdel \texttimes 8z 215
+ \characterdel \sterling 8z 132
+ \characterdel \currency 8z 164
+ \characterdel \textdiv 8z 247
+ % unavailable in 8c nor 8z:
+ \characterdel \Eth 8z 208
+ \characterdel \eth 8z 240
+ % unavailable in 8c, we can re-define these characters:
+ \characterdel \Lslash 8z 163
+ \characterdef \Lslash 8z {\plainL}
+ \characterdel \lslash 8z 179
+ \characterdef \lslash 8z {\char32l}
+ \characterdel \ellipsis 8z 128
+ \characterdef \ellipsis 8z {\dots}
+ % accents:
+ \accentdel \k A 8z 161
+ \accentdel \^ A 8z 194
+ \accentdel \u A 8z 195
+ \accentdel \k a 8z 177
+ \accentdel \^ a 8z 226
+ \accentdel \u a 8z 227
+ \accentdel \' C 8z 198
+ \accentdel \c C 8z 199
+ \accentdel \' c 8z 230
+ \accentdel \c c 8z 231
+ \accentdel \k E 8z 202
+ \accentdel \" E 8z 203
+ \accentdel \k e 8z 234
+ \accentdel \" e 8z 235
+ \accentdel \^ I 8z 206
+ \accentdel \^ i 8z 238
+ \accentdel \^ ^^10 8z 238
+ \accentdel \' N 8z 209
+ \accentdel \' n 8z 241
+ \accentdel \H O 8z 213
+ \accentdel \H o 8z 245
+ \accentdel \' S 8z 166
+ \accentdel \c S 8z 170
+ \accentdel \' s 8z 182
+ \accentdel \c s 8z 186
+ \accentdel \c T 8z 222
+ \accentdel \c t 8z 189
+ \accentdel \H U 8z 219
+ \accentdel \H u 8z 251
+ \accentdel \' Z 8z 172
+ \accentdel \. Z 8z 175
+ \accentdel \' z 8z 188
+ \accentdel \. z 8z 191
+}
+
+%%%% Cross for polish L is in TT fonts unavalable:
+
+\modifydef 8z:nocrossL; {%
+ \characterdel \Lslash 8z 163
+ \characterdel \lslash 8z 179
+ \characterdef \spacechar 8z 32
+}
+
+%%% Times etc.:
+
+\modifydef 8z:badaccents; {%
+ \accentdel \k A 8z 161
+ \accentdel \u A 8z 195
+ \accentdel \k a 8z 177
+ \accentdel \u a 8z 227
+ \accentdel \' C 8z 198
+ \accentdel \c C 8z 199
+ \accentdel \' c 8z 230
+ \accentdel \c c 8z 231
+ \accentdel \k E 8z 202
+ \accentdel \k e 8z 234
+ \accentdel \' N 8z 209
+ \accentdel \' n 8z 241
+ \accentdel \H O 8z 213
+ \accentdel \H o 8z 245
+ \accentdel \' S 8z 166
+ \accentdel \c S 8z 170
+ \accentdel \' s 8z 182
+ \accentdel \c s 8z 186
+ \accentdel \c T 8z 222
+ \accentdel \c t 8z 189
+ \accentdel \H U 8z 219
+ \accentdel \H u 8z 251
+ \accentdel \' Z 8z 172
+ \accentdel \. Z 8z 175
+ \accentdel \' z 8z 188
+ \accentdel \. z 8z 191
+ %
+ \characterdel \dotelssj 8z 17
+ \characterdel \texttimes 8z 215
+ \characterdel \textdiv 8z 247
+}
+
+%%%
+
+\modifydef 8z:ienc; {% For \ienc, see iencdoc.tex
+ \skipfirststep
+ \csname 8z:badaccents\endcsname
+ \csname 8z:csfonts\endcsname
+}
+
+\modifydef 8z:lccodes; {% For \setlang, see langdoc.tex
+ \skipfirststep
+ \lccodes ^^e1^^c1% a-acute
+ \lccodes ^^e4^^c4% a-diaeresis
+ \lccodes ^^e8^^c8% c-caron
+ \lccodes ^^ef^^cf% d-caron
+ \lccodes ^^e9^^c9% e-acute
+ \lccodes ^^ec^^cc% e-caron
+ \lccodes ^^ed^^cd% i-acute
+ \lccodes ^^e5^^c5% l-acute
+ \lccodes ^^b5^^a5% l-caron
+ \lccodes ^^f2^^d2% n-caron
+ \lccodes ^^f3^^d3% o-acute
+ \lccodes ^^f4^^d4% o-circumflex
+ \lccodes ^^f6^^d6% o-diaeresis
+ \lccodes ^^e0^^c0% r-acute
+ \lccodes ^^f8^^d8% r-caron
+ \lccodes ^^b9^^a9% s-caron
+ \lccodes ^^bb^^ab% t-caron
+ \lccodes ^^fa^^da% u-acute
+ \lccodes ^^f9^^d9% u-ring
+ \lccodes ^^fc^^dc% u-diaeresis
+ \lccodes ^^fd^^dd% y-acute
+ \lccodes ^^be^^ae% z-caron
+ \lccodes ^^b1^^a1% a-ogonek
+ \lccodes ^^e2^^c2% a-circumflex
+ \lccodes ^^e3^^c3% a-breve
+ \lccodes ^^e6^^c6% c-acute
+ \lccodes ^^e7^^c7% c-cedilla
+ \lccodes ^^ea^^ca% e-ogonek
+ \lccodes ^^eb^^cb% e-dieresis
+ \lccodes ^^ee^^ce% i-circumflex
+ \lccodes ^^f1^^d1% n-acute
+ \lccodes ^^f5^^d5% o-hungarumlaut
+ \lccodes ^^b6^^a6% s-acute
+ \lccodes ^^ba^^aa% s-cedilla
+ \lccodes ^^de^^bd% t-cedilla
+ \lccodes ^^fb^^db% u-hungarumlaut
+ \lccodes ^^bc^^ac% z-acute
+ \lccodes ^^bf^^af% z-dotaccatcent
+ \def\lccodesback {\zerolccodes^^80^^ff}%
+}
+
+\endinput %%% the following macros will be included in LANG style files
+
+%%% Macros for quotes
+
+\def\doubleuv#1{\clqq#1\crqq}
+\def\doublefuv#1{\frqq#1\flqq}
+\def\doubleauv#1{\elqq#1\erqq}
+\def\singleauv#1{\elq#1\erq}
+\let\uv=\doubleuv
+\let\fuv=\doublefuv
+\let\auv=\doubleauv
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-ams.tex b/Master/texmf-dist/tex/generic/ofs/ofs-ams.tex
new file mode 100644
index 00000000000..1398da632ee
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-ams.tex
@@ -0,0 +1,237 @@
+% OFS: AMS fonts, math encoding declaration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+\protectreading ofs-ams.tex % This is part of OFS package
+
+\mathencdef\MSAMmathchars{%
+ \fontmessage{\ofsmessageheader Math symbols are set for AMS encoding.}%
+ \mathchardef\boxdot "2\hex\msamfam 00
+ \mathchardef\boxplus "2\hex\msamfam 01
+ \mathchardef\boxtimes "2\hex\msamfam 02
+ \mathchardef\square "0\hex\msamfam 03
+ \mathchardef\blacksquare "0\hex\msamfam 04
+ \mathchardef\centerdot "2\hex\msamfam 05
+ \mathchardef\lozenge "0\hex\msamfam 06
+ \mathchardef\blacklozenge "0\hex\msamfam 07
+ \mathchardef\circlearrowright "3\hex\msamfam 08
+ \mathchardef\circlearrowleft "3\hex\msamfam 09
+ \mathchardef\rightleftharpoons "3\hex\msamfam 0A
+ \mathchardef\leftrightharpoons "3\hex\msamfam 0B
+ \mathchardef\boxminus "2\hex\msamfam 0C
+ \mathchardef\Vdash "3\hex\msamfam 0D
+ \mathchardef\Vvdash "3\hex\msamfam 0E
+ \mathchardef\vDash "3\hex\msamfam 0F
+ \mathchardef\twoheadrightarrow "3\hex\msamfam 10
+ \mathchardef\twoheadleftarrow "3\hex\msamfam 11
+ \mathchardef\leftleftarrows "3\hex\msamfam 12
+ \mathchardef\rightrightarrows "3\hex\msamfam 13
+ \mathchardef\upuparrows "3\hex\msamfam 14
+ \mathchardef\downdownarrows "3\hex\msamfam 15
+ \mathchardef\upharpoonright "3\hex\msamfam 16
+ \let\restriction\upharpoonright
+ \mathchardef\downharpoonright "3\hex\msamfam 17
+ \mathchardef\upharpoonleft "3\hex\msamfam 18
+ \mathchardef\downharpoonleft "3\hex\msamfam 19
+ \mathchardef\rightarrowtail "3\hex\msamfam 1A
+ \mathchardef\leftarrowtail "3\hex\msamfam 1B
+ \mathchardef\leftrightarrows "3\hex\msamfam 1C
+ \mathchardef\rightleftarrows "3\hex\msamfam 1D
+ \mathchardef\Lsh "3\hex\msamfam 1E
+ \mathchardef\Rsh "3\hex\msamfam 1F
+ \mathchardef\rightsquigarrow "3\hex\msamfam 20
+ \mathchardef\leftrightsquigarrow "3\hex\msamfam 21
+ \mathchardef\looparrowleft "3\hex\msamfam 22
+ \mathchardef\looparrowright "3\hex\msamfam 23
+ \mathchardef\circeq "3\hex\msamfam 24
+ \mathchardef\succsim "3\hex\msamfam 25
+ \mathchardef\gtrsim "3\hex\msamfam 26
+ \mathchardef\gtrapprox "3\hex\msamfam 27
+ \mathchardef\multimap "3\hex\msamfam 28
+ \mathchardef\therefore "3\hex\msamfam 29
+ \mathchardef\because "3\hex\msamfam 2A
+ \mathchardef\doteqdot "3\hex\msamfam 2B
+ \let\Doteq\doteqdot
+ \mathchardef\triangleq "3\hex\msamfam 2C
+ \mathchardef\precsim "3\hex\msamfam 2D
+ \mathchardef\lesssim "3\hex\msamfam 2E
+ \mathchardef\lessapprox "3\hex\msamfam 2F
+ \mathchardef\eqslantless "3\hex\msamfam 30
+ \mathchardef\eqslantgtr "3\hex\msamfam 31
+ \mathchardef\curlyeqprec "3\hex\msamfam 32
+ \mathchardef\curlyeqsucc "3\hex\msamfam 33
+ \mathchardef\preccurlyeq "3\hex\msamfam 34
+ \mathchardef\leqq "3\hex\msamfam 35
+ \mathchardef\leqslant "3\hex\msamfam 36
+ \mathchardef\lessgtr "3\hex\msamfam 37
+ \mathchardef\backprime "0\hex\msamfam 38
+ \mathchardef\risingdotseq "3\hex\msamfam 3A
+ \mathchardef\fallingdotseq "3\hex\msamfam 3B
+ \mathchardef\succcurlyeq "3\hex\msamfam 3C
+ \mathchardef\geqq "3\hex\msamfam 3D
+ \mathchardef\geqslant "3\hex\msamfam 3E
+ \mathchardef\gtrless "3\hex\msamfam 3F
+ \mathchardef\sqsubset "3\hex\msamfam 40
+ \mathchardef\sqsupset "3\hex\msamfam 41
+ \mathchardef\vartriangleright "3\hex\msamfam 42
+ \mathchardef\vartriangleleft "3\hex\msamfam 43
+ \mathchardef\trianglerighteq "3\hex\msamfam 44
+ \mathchardef\trianglelefteq "3\hex\msamfam 45
+ \mathchardef\bigstar "0\hex\msamfam 46
+ \mathchardef\between "3\hex\msamfam 47
+ \mathchardef\blacktriangledown "0\hex\msamfam 48
+ \mathchardef\blacktriangleright "3\hex\msamfam 49
+ \mathchardef\blacktriangleleft "3\hex\msamfam 4A
+ \mathchardef\vartriangle "3\hex\msamfam 4D
+ \mathchardef\blacktriangle "0\hex\msamfam 4E
+ \mathchardef\triangledown "0\hex\msamfam 4F
+ \mathchardef\eqcirc "3\hex\msamfam 50
+ \mathchardef\lesseqgtr "3\hex\msamfam 51
+ \mathchardef\gtreqless "3\hex\msamfam 52
+ \mathchardef\lesseqqgtr "3\hex\msamfam 53
+ \mathchardef\gtreqqless "3\hex\msamfam 54
+ \mathchardef\Rrightarrow "3\hex\msamfam 56
+ \mathchardef\Lleftarrow "3\hex\msamfam 57
+ \mathchardef\veebar "2\hex\msamfam 59
+ \mathchardef\barwedge "2\hex\msamfam 5A
+ \mathchardef\doublebarwedge "2\hex\msamfam 5B
+ \mathchardef\angle "0\hex\msamfam 5C
+ \mathchardef\measuredangle "0\hex\msamfam 5D
+ \mathchardef\sphericalangle "0\hex\msamfam 5E
+ \mathchardef\varpropto "3\hex\msamfam 5F
+ \mathchardef\smallsmile "3\hex\msamfam 60
+ \mathchardef\smallfrown "3\hex\msamfam 61
+ \mathchardef\Subset "3\hex\msamfam 62
+ \mathchardef\Supset "3\hex\msamfam 63
+ \mathchardef\Cup "2\hex\msamfam 64
+ \let\doublecup\Cup
+ \mathchardef\Cap "2\hex\msamfam 65
+ \let\doublecap\Cap
+ \mathchardef\curlywedge "2\hex\msamfam 66
+ \mathchardef\curlyvee "2\hex\msamfam 67
+ \mathchardef\leftthreetimes "2\hex\msamfam 68
+ \mathchardef\rightthreetimes "2\hex\msamfam 69
+ \mathchardef\subseteqq "3\hex\msamfam 6A
+ \mathchardef\supseteqq "3\hex\msamfam 6B
+ \mathchardef\bumpeq "3\hex\msamfam 6C
+ \mathchardef\Bumpeq "3\hex\msamfam 6D
+ \mathchardef\lll "3\hex\msamfam 6E
+ \let\llless\lll
+ \mathchardef\ggg "3\hex\msamfam 6F
+ \let\gggtr\ggg
+ \edef\ulcorner{\delimiter "4\hex\msamfam 70\hex\msamfam 70 }%
+ \edef\urcorner{\delimiter "5\hex\msamfam 71\hex\msamfam 71 }%
+ \mathchardef\circledS "0\hex\msamfam 73
+ \mathchardef\pitchfork "3\hex\msamfam 74
+ \mathchardef\dotplus "2\hex\msamfam 75
+ \mathchardef\backsim "3\hex\msamfam 76
+ \mathchardef\backsimeq "3\hex\msamfam 77
+ \edef\llcorner{\delimiter "4\hex\msamfam 78\hex\msamfam 78 }%
+ \edef\lrcorner{\delimiter "5\hex\msamfam 79\hex\msamfam 79 }%
+ \mathchardef\complement "0\hex\msamfam 7B
+ \mathchardef\intercal "2\hex\msamfam 7C
+ \mathchardef\circledcirc "2\hex\msamfam 7D
+ \mathchardef\circledast "2\hex\msamfam 7E
+ \mathchardef\circleddash "2\hex\msamfam 7F
+ \mathchardef\rhd "2\hex\msamfam 42
+ \mathchardef\lhd "2\hex\msamfam 43
+ \mathchardef\unrhd "2\hex\msamfam 44
+ \mathchardef\unlhd "2\hex\msamfam 45
+}
+\mathencdef\MSBMmathchars {%
+ \mathchardef\lvertneqq "3\hex\msbmfam 00
+ \mathchardef\gvertneqq "3\hex\msbmfam 01
+ \mathchardef\nleq "3\hex\msbmfam 02
+ \mathchardef\ngeq "3\hex\msbmfam 03
+ \mathchardef\nless "3\hex\msbmfam 04
+ \mathchardef\ngtr "3\hex\msbmfam 05
+ \mathchardef\nprec "3\hex\msbmfam 06
+ \mathchardef\nsucc "3\hex\msbmfam 07
+ \mathchardef\lneqq "3\hex\msbmfam 08
+ \mathchardef\gneqq "3\hex\msbmfam 09
+ \mathchardef\nleqslant "3\hex\msbmfam 0A
+ \mathchardef\ngeqslant "3\hex\msbmfam 0B
+ \mathchardef\lneq "3\hex\msbmfam 0C
+ \mathchardef\gneq "3\hex\msbmfam 0D
+ \mathchardef\npreceq "3\hex\msbmfam 0E
+ \mathchardef\nsucceq "3\hex\msbmfam 0F
+ \mathchardef\precnsim "3\hex\msbmfam 10
+ \mathchardef\succnsim "3\hex\msbmfam 11
+ \mathchardef\lnsim "3\hex\msbmfam 12
+ \mathchardef\gnsim "3\hex\msbmfam 13
+ \mathchardef\nleqq "3\hex\msbmfam 14
+ \mathchardef\ngeqq "3\hex\msbmfam 15
+ \mathchardef\precneqq "3\hex\msbmfam 16
+ \mathchardef\succneqq "3\hex\msbmfam 17
+ \mathchardef\precnapprox "3\hex\msbmfam 18
+ \mathchardef\succnapprox "3\hex\msbmfam 19
+ \mathchardef\lnapprox "3\hex\msbmfam 1A
+ \mathchardef\gnapprox "3\hex\msbmfam 1B
+ \mathchardef\nsim "3\hex\msbmfam 1C
+ \mathchardef\ncong "3\hex\msbmfam 1D
+ \mathchardef\diagup "0\hex\msbmfam 1E
+ \mathchardef\diagdown "0\hex\msbmfam 1F
+ \mathchardef\varsubsetneq "3\hex\msbmfam 20
+ \mathchardef\varsupsetneq "3\hex\msbmfam 21
+ \mathchardef\nsubseteqq "3\hex\msbmfam 22
+ \mathchardef\nsupseteqq "3\hex\msbmfam 23
+ \mathchardef\subsetneqq "3\hex\msbmfam 24
+ \mathchardef\supsetneqq "3\hex\msbmfam 25
+ \mathchardef\varsubsetneqq "3\hex\msbmfam 26
+ \mathchardef\varsupsetneqq "3\hex\msbmfam 27
+ \mathchardef\subsetneq "3\hex\msbmfam 28
+ \mathchardef\supsetneq "3\hex\msbmfam 29
+ \mathchardef\nsubseteq "3\hex\msbmfam 2A
+ \mathchardef\nsupseteq "3\hex\msbmfam 2B
+ \mathchardef\nparallel "3\hex\msbmfam 2C
+ \mathchardef\nmid "3\hex\msbmfam 2D
+ \mathchardef\nshortmid "3\hex\msbmfam 2E
+ \mathchardef\nshortparallel "3\hex\msbmfam 2F
+ \mathchardef\nvdash "3\hex\msbmfam 30
+ \mathchardef\nVdash "3\hex\msbmfam 31
+ \mathchardef\nvDash "3\hex\msbmfam 32
+ \mathchardef\nVDash "3\hex\msbmfam 33
+ \mathchardef\ntrianglerighteq "3\hex\msbmfam 34
+ \mathchardef\ntrianglelefteq "3\hex\msbmfam 35
+ \mathchardef\ntriangleleft "3\hex\msbmfam 36
+ \mathchardef\ntriangleright "3\hex\msbmfam 37
+ \mathchardef\nleftarrow "3\hex\msbmfam 38
+ \mathchardef\nrightarrow "3\hex\msbmfam 39
+ \mathchardef\nLeftarrow "3\hex\msbmfam 3A
+ \mathchardef\nRightarrow "3\hex\msbmfam 3B
+ \mathchardef\nLeftrightarrow "3\hex\msbmfam 3C
+ \mathchardef\nleftrightarrow "3\hex\msbmfam 3D
+ \mathchardef\divideontimes "2\hex\msbmfam 3E
+ \mathchardef\varnothing "0\hex\msbmfam 3F
+ \mathchardef\nexists "0\hex\msbmfam 40
+ \mathchardef\Finv "0\hex\msbmfam 60
+ \mathchardef\Game "0\hex\msbmfam 61
+ \mathchardef\mho "0\hex\msbmfam 66
+ \mathchardef\eth "0\hex\msbmfam 67
+ \mathchardef\eqsim "3\hex\msbmfam 68
+ \mathchardef\beth "0\hex\msbmfam 69
+ \mathchardef\gimel "0\hex\msbmfam 6A
+ \mathchardef\daleth "0\hex\msbmfam 6B
+ \mathchardef\lessdot "2\hex\msbmfam 6C
+ \mathchardef\gtrdot "2\hex\msbmfam 6D
+ \mathchardef\ltimes "2\hex\msbmfam 6E
+ \mathchardef\rtimes "2\hex\msbmfam 6F
+ \mathchardef\shortmid "3\hex\msbmfam 70
+ \mathchardef\shortparallel "3\hex\msbmfam 71
+ \mathchardef\smallsetminus "2\hex\msbmfam 72
+ \mathchardef\thicksim "3\hex\msbmfam 73
+ \mathchardef\thickapprox "3\hex\msbmfam 74
+ \mathchardef\approxeq "3\hex\msbmfam 75
+ \mathchardef\succapprox "3\hex\msbmfam 76
+ \mathchardef\precapprox "3\hex\msbmfam 77
+ \mathchardef\curvearrowleft "3\hex\msbmfam 78
+ \mathchardef\curvearrowright "3\hex\msbmfam 79
+ \mathchardef\digamma "0\hex\msbmfam 7A
+ \mathchardef\varkappa "0\hex\msbmfam 7B
+ \mathchardef\Bbbk "0\hex\msbmfam 7C
+ \mathchardef\hslash "0\hex\msbmfam 7D
+ \mathchardef\hbar "0\hex\msbmfam 7E
+ \mathchardef\backepsilon "3\hex\msbmfam 7F
+}
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-cm.tex b/Master/texmf-dist/tex/generic/ofs/ofs-cm.tex
new file mode 100644
index 00000000000..478bfe7ae65
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-cm.tex
@@ -0,0 +1,285 @@
+% OFS: CM fonts, math encoding declaration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+\protectreading ofs-cm.tex % This is part of OFS package
+
+\mathencdef\doPLAINmathchars {%
+ \fontmessage{\ofsmessageheader Math codes are reset by plainTeX.}%
+ \mathcode`\ ="8000
+ \mathcode`\!="5021
+ \mathcode`\'="8000
+ \mathcode`\(="4028
+ \mathcode`\)="5029
+ \mathcode`\*="2203
+ \mathcode`+="202B
+ \mathcode`\,="613B
+ \mathcode`\-="2200
+ \mathcode`\.="013A
+ \mathcode`\/="013D
+ \mathcode`\:="303A
+ \mathcode`\;="603B
+ \mathcode`\<="313C
+ \mathcode`\=="303D
+ \mathcode`\>="313E
+ \mathcode`\?="503F
+ \mathcode`\[="405B
+ \mathcode`\\="026E
+ \mathcode`\]="505D
+ \mathcode`\_="8000
+ \mathcode`\{="4266
+ \mathcode`\|="026A
+ \mathcode`\}="5267
+ %
+ \delcode`\(="028300
+ \delcode`\)="029301
+ \delcode`\[="05B302
+ \delcode`\]="05D303
+ \delcode`\<="26830A
+ \delcode`\>="26930B
+ \delcode`\/="02F30E
+ \delcode`\|="26A30C
+ \delcode`\\="26E30F
+ %
+ \mathchardef\alpha="010B
+ \mathchardef\beta="010C
+ \mathchardef\gamma="010D
+ \mathchardef\delta="010E
+ \mathchardef\epsilon="010F
+ \mathchardef\zeta="0110
+ \mathchardef\eta="0111
+ \mathchardef\theta="0112
+ \mathchardef\iota="0113
+ \mathchardef\kappa="0114
+ \mathchardef\lambda="0115
+ \mathchardef\mu="0116
+ \mathchardef\nu="0117
+ \mathchardef\xi="0118
+ \mathchardef\pi="0119
+ \mathchardef\rho="011A
+ \mathchardef\sigma="011B
+ \mathchardef\tau="011C
+ \mathchardef\upsilon="011D
+ \mathchardef\phi="011E
+ \mathchardef\chi="011F
+ \mathchardef\psi="0120
+ \mathchardef\omega="0121
+ \mathchardef\varepsilon="0122
+ \mathchardef\vartheta="0123
+ \mathchardef\varpi="0124
+ \mathchardef\varrho="0125
+ \mathchardef\varsigma="0126
+ \mathchardef\varphi="0127
+ \mathchardef\Gamma="7000
+ \mathchardef\Delta="7001
+ \mathchardef\Theta="7002
+ \mathchardef\Lambda="7003
+ \mathchardef\Xi="7004
+ \mathchardef\Pi="7005
+ \mathchardef\Sigma="7006
+ \mathchardef\Upsilon="7007
+ \mathchardef\Phi="7008
+ \mathchardef\Psi="7009
+ \mathchardef\Omega="700A
+ %
+ \mathchardef\aleph="0240
+ \def\hbar{{\mathchar'26\mkern-9muh}}
+ \mathchardef\imath="017B
+ \mathchardef\jmath="017C
+ \mathchardef\ell="0160
+ \mathchardef\wp="017D
+ \mathchardef\Re="023C
+ \mathchardef\Im="023D
+ \mathchardef\partial="0140
+ \mathchardef\infty="0231
+ \mathchardef\prime="0230
+ \mathchardef\emptyset="023B
+ \mathchardef\nabla="0272
+ \def\surd{{\mathchar"1270}}
+ \mathchardef\top="023E
+ \mathchardef\bot="023F
+ \def\angle{{\vbox{\ialign{$\m@th\scriptstyle####$\crcr
+ \not\mathrel{\mkern14mu}\crcr
+ \noalign{\nointerlineskip}
+ \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
+ \mathchardef\triangle="0234
+ \mathchardef\forall="0238
+ \mathchardef\exists="0239
+ \mathchardef\neg="023A \let\lnot=\neg
+ \mathchardef\flat="015B
+ \mathchardef\natural="015C
+ \mathchardef\sharp="015D
+ \mathchardef\clubsuit="027C
+ \mathchardef\diamondsuit="027D
+ \mathchardef\heartsuit="027E
+ \mathchardef\spadesuit="027F
+ %
+ \mathchardef\coprod="1360
+ \mathchardef\bigvee="1357
+ \mathchardef\bigwedge="1356
+ \mathchardef\biguplus="1355
+ \mathchardef\bigcap="1354
+ \mathchardef\bigcup="1353
+ \mathchardef\intop="1352 \def\int{\intop\nolimits}
+ \mathchardef\prod="1351
+ \mathchardef\sum="1350
+ \mathchardef\bigotimes="134E
+ \mathchardef\bigoplus="134C
+ \mathchardef\bigodot="134A
+ \mathchardef\ointop="1348 \def\oint{\ointop\nolimits}
+ \mathchardef\bigsqcup="1346
+ \mathchardef\smallint="1273
+ %
+ \mathchardef\triangleleft="212F
+ \mathchardef\triangleright="212E
+ \mathchardef\bigtriangleup="2234
+ \mathchardef\bigtriangledown="2235
+ \mathchardef\wedge="225E \let\land=\wedge
+ \mathchardef\vee="225F \let\lor=\vee
+ \mathchardef\cap="225C
+ \mathchardef\cup="225B
+ \mathchardef\ddagger="227A
+ \mathchardef\dagger="2279
+ \mathchardef\sqcap="2275
+ \mathchardef\sqcup="2274
+ \mathchardef\uplus="225D
+ \mathchardef\amalg="2271
+ \mathchardef\diamond="2205
+ \mathchardef\bullet="220F
+ \mathchardef\wr="226F
+ \mathchardef\div="2204
+ \mathchardef\odot="220C
+ \mathchardef\oslash="220B
+ \mathchardef\otimes="220A
+ \mathchardef\ominus="2209
+ \mathchardef\oplus="2208
+ \mathchardef\mp="2207
+ \mathchardef\pm="2206
+ \mathchardef\circ="220E
+ \mathchardef\bigcirc="220D
+ \mathchardef\setminus="226E
+ \mathchardef\cdot="2201
+ \mathchardef\ast="2203
+ \mathchardef\times="2202
+ \mathchardef\star="213F
+ %
+ \mathchardef\propto="322F
+ \mathchardef\sqsubseteq="3276
+ \mathchardef\sqsupseteq="3277
+ \mathchardef\parallel="326B
+ \mathchardef\mid="326A
+ \mathchardef\dashv="3261
+ \mathchardef\vdash="3260
+ \mathchardef\nearrow="3225
+ \mathchardef\searrow="3226
+ \mathchardef\nwarrow="322D
+ \mathchardef\swarrow="322E
+ \mathchardef\Leftrightarrow="322C
+ \mathchardef\Leftarrow="3228
+ \mathchardef\Rightarrow="3229
+ \def\neq{\not=}
+ \let\ne=\neq
+ \mathchardef\leq="3214 \let\le=\leq
+ \mathchardef\geq="3215 \let\ge=\geq
+ \mathchardef\succ="321F
+ \mathchardef\prec="321E
+ \mathchardef\approx="3219
+ \mathchardef\succeq="3217
+ \mathchardef\preceq="3216
+ \mathchardef\supset="321B
+ \mathchardef\subset="321A
+ \mathchardef\supseteq="3213
+ \mathchardef\subseteq="3212
+ \mathchardef\in="3232
+ \mathchardef\ni="3233
+ \let\owns=\ni
+ \mathchardef\gg="321D
+ \mathchardef\ll="321C
+ \mathchardef\not="3236
+ \mathchardef\leftrightarrow="3224
+ \mathchardef\leftarrow="3220
+ \let\gets=\leftarrow
+ \mathchardef\rightarrow="3221
+ \let\to=\rightarrow
+ \mathchardef\mapstochar="3237
+ \def\mapsto{\mapstochar\rightarrow}
+ \mathchardef\sim="3218
+ \mathchardef\simeq="3227
+ \mathchardef\perp="323F
+ \mathchardef\equiv="3211
+ \mathchardef\asymp="3210
+ \mathchardef\smile="315E
+ \mathchardef\frown="315F
+ \mathchardef\leftharpoonup="3128
+ \mathchardef\leftharpoondown="3129
+ \mathchardef\rightharpoonup="312A
+ \mathchardef\rightharpoondown="312B
+ %
+ \def\Relbar{\mathrel=}
+ \mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow}
+ \mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook}
+ \def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
+ \def\models{\mathrel|\joinrel=}
+ \def\Longrightarrow{\Relbar\joinrel\Rightarrow}
+ \def\longrightarrow{\relbar\joinrel\rightarrow}
+ \def\longleftarrow{\leftarrow\joinrel\relbar}
+ \def\Longleftarrow{\Leftarrow\joinrel\Relbar}
+ \def\longmapsto{\mapstochar\longrightarrow}
+ \def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
+ \def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
+ \def\iff{\;\Longleftrightarrow\;}
+ %
+ \mathchardef\ldotp="613A % ldot as a punctuation mark
+ \mathchardef\cdotp="6201 % cdot as a punctuation mark
+ \mathchardef\colon="603A % colon as a punctuation mark
+ \def\ldots{\mathinner{\ldotp\ldotp\ldotp}}
+ \def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
+ \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
+ \def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
+ \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
+ %
+ \def\acute{\mathaccent"7013 }
+ \def\grave{\mathaccent"7012 }
+ \def\ddot{\mathaccent"707F }
+ \def\tilde{\mathaccent"707E }
+ \def\bar{\mathaccent"7016 }
+ \def\breve{\mathaccent"7015 }
+ \def\check{\mathaccent"7014 }
+ \def\hat{\mathaccent"705E }
+ \def\vec{\mathaccent"017E }
+ \def\dot{\mathaccent"705F }
+ \def\widetilde{\mathaccent"0365 }
+ \def\widehat{\mathaccent"0362 }
+ %
+ \def\lmoustache{\delimiter"437A340 }% top from (, bottom from )
+ \def\rmoustache{\delimiter"537B341 }% top from ), bottom from (
+ \def\lgroup{\delimiter"4\hex\bffam 2833A }% extensible ( with sharper tips
+ \def\rgroup{\delimiter"5\hex\bffam 2933B }% extensible ) with sharper tips
+ \def\arrowvert{\delimiter"26A33C }% arrow without arrowheads
+ \def\Arrowvert{\delimiter"26B33D }% double arrow without arrowheads
+ \def\bracevert{\delimiter"\hex\ttfam 7C33E }% the vertical bar that extends braces
+ \def\Vert{\delimiter"26B30D }\let\|=\Vert
+ \def\vert{\delimiter"26A30C }
+ \def\uparrow{\delimiter"3222378 }
+ \def\downarrow{\delimiter"3223379 }
+ \def\updownarrow{\delimiter"326C33F }
+ \def\Uparrow{\delimiter"322A37E }
+ \def\Downarrow{\delimiter"322B37F }
+ \def\Updownarrow{\delimiter"326D377 }
+ \def\backslash{\delimiter"26E30F }% for double coset G\backslash H
+ \def\rangle{\delimiter"526930B }
+ \def\langle{\delimiter"426830A }
+ \def\rbrace{\delimiter"5267309 }\let\}=\rbrace
+ \def\lbrace{\delimiter"4266308 }\let\{=\lbrace
+ \def\rceil{\delimiter"5265307 }
+ \def\lceil{\delimiter"4264306 }
+ \def\rfloor{\delimiter"5263305 }
+ \def\lfloor{\delimiter"4262304 }
+}
+\endinput
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-mt.tex b/Master/texmf-dist/tex/generic/ofs/ofs-mt.tex
new file mode 100644
index 00000000000..a10b15cf1c8
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-mt.tex
@@ -0,0 +1,122 @@
+% OFS: MathTime fonts, math encoding declaration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+\protectreading ofs-mt.tex % This is part of OFS package
+
+\mathencdef\MTmathchars {%
+ \fontmessage{\ofsmessageheader Math codes are set for MT encoding}%
+ \mathcode`\,="602C
+ \mathcode`\.="002E
+ \mathchardef\ldotp="602E
+ \mathcode`\/="002F
+ \mathcode`\<="3\hex\mtifam 3C
+ \mathcode`\>="3\hex\mtifam 3E
+ \mathcode`+="2243
+ \mathcode`=="3244
+ %
+ \def\tmpa{8z}\ifx\fotenc\tmpa
+ \mathaccentdef \acute "7013
+ \mathaccentdef \bar "7016
+ \mathaccentdef \breve "7015
+ \mathaccentdef \check "7014
+ \mathaccentdef \ddot "707F
+ \mathaccentdef \dot "705F
+ \mathaccentdef \grave "7012
+ \mathaccentdef \hat "705E
+ \mathaccentdef \tilde "707E
+ \else
+ \mathaccentdef \acute "7001
+ \mathaccentdef \bar "7009
+ \mathaccentdef \breve "7008
+ \mathaccentdef \check "7007
+ \mathaccentdef \ddot "7004
+ \mathaccentdef \dot "700A
+ \mathaccentdef \grave "7000
+ \mathaccentdef \hat "7002
+ \mathaccentdef \tilde "7003
+ \fi
+ \mathaccentdef \vec "0245
+ %
+ \mathchardef\alpha "0\hex\mtifam 0B
+ \mathchardef\beta "0\hex\mtifam 0C
+ \mathchardef\gamma "0\hex\mtifam 0D
+ \mathchardef\delta "0\hex\mtifam 0E
+ \mathchardef\epsilon "0\hex\mtifam 0F
+ \mathchardef\zeta "0\hex\mtifam 10
+ \mathchardef\eta "0\hex\mtifam 11
+ \mathchardef\theta "0\hex\mtifam 12
+ \mathchardef\iota "0\hex\mtifam 13
+ \mathchardef\kappa "0\hex\mtifam 14
+ \mathchardef\lambda "0\hex\mtifam 15
+ \mathchardef\mu "0\hex\mtifam 16
+ \mathchardef\nu "0\hex\mtifam 17
+ \mathchardef\xi "0\hex\mtifam 18
+ \mathchardef\pi "0\hex\mtifam 19
+ \mathchardef\rho "0\hex\mtifam 1A
+ \mathchardef\sigma "0\hex\mtifam 1B
+ \mathchardef\tau "0\hex\mtifam 1C
+ \mathchardef\upsilon "0\hex\mtifam 1D
+ \mathchardef\phi "0\hex\mtifam 1E
+ \mathchardef\chi "0\hex\mtifam 1F
+ \mathchardef\psi "0\hex\mtifam 20
+ \mathchardef\omega "0\hex\mtifam 21
+ \mathchardef\varepsilon "0\hex\mtifam 22
+ \mathchardef\vartheta "0\hex\mtifam 23
+ \mathchardef\varpi "0\hex\mtifam 24
+ \mathchardef\varrho "0\hex\mtifam 25
+ \mathchardef\varsigma "0\hex\mtifam 26
+ \mathchardef\varphi "0\hex\mtifam 27
+ %
+ \mathchardef\Gamma "0\hex\gufam 47
+ \mathchardef\Delta "0\hex\gufam 44
+ \mathchardef\Theta "0\hex\gufam 27
+ \mathchardef\Lambda "0\hex\gufam 4C
+ \mathchardef\Xi "0\hex\gufam 58
+ \mathchardef\Pi "0\hex\gufam 50
+ \mathchardef\Sigma "0\hex\gufam 53
+ \mathchardef\Upsilon "0\hex\gufam 57
+ \mathchardef\Phi "0\hex\gufam 28
+ \mathchardef\Psi "0\hex\gufam 29
+ \mathchardef\Omega "0\hex\gufam 32
+ %
+ \mathchardef\imath "0\hex\mtifam 7B
+ \mathchardef\jmath "0\hex\mtifam 7C
+ %
+ \mathchardef\partial "0\hex\mtifam 40
+ \mathchardef\star "2\hex\mtifam 3F
+ \mathchardef\ell "0\hex\mtifam 60
+ \mathchardef\wp "0\hex\mtifam 7D
+ \mathchardef\flat "0\hex\mtifam 5B
+ \mathchardef\frown "3\hex\mtifam 5F
+ \mathchardef\smile "3\hex\mtifam 5E
+ \mathchardef\lhook "3\hex\mtifam 2C
+ \mathchardef\rhook "3\hex\mtifam 2D
+ \mathchardef\natural "0\hex\mtifam 5C
+ \mathchardef\sharp "0\hex\mtifam 5D
+ \mathchardef\leftharpoonup "3\hex\mtifam 28
+ \mathchardef\leftharpoondown "3\hex\mtifam 29
+ \mathchardef\rightharpoonup "3\hex\mtifam 2A
+ \mathchardef\rightharpoondown "3\hex\mtifam 2B
+ %
+ \mathchardef\triangleleft "2247
+ \mathchardef\triangleright "2246
+ \def\tmpa{8z}\ifx\fotenc\tmpa
+ \mathchardef\ddagger "2082
+ \mathchardef\dagger "2081
+ \fi
+ \def\lgroup{\delimiter"4\hex\bffam 2833A }% extensible ( with sharper tips
+ \def\rgroup{\delimiter"5\hex\bffam 2933B }% extensible ) with sharper tips
+ \def\bracevert{\delimiter"\hex\ttfam 7C33E }% the vertical bar that extends braces
+ %
+ \def\mathcharsback{\mathencread ofs-cm;}%
+}
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-ps.tex b/Master/texmf-dist/tex/generic/ofs/ofs-ps.tex
new file mode 100644
index 00000000000..0d358ffca21
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-ps.tex
@@ -0,0 +1,207 @@
+% OFS: PS fonts + math encoding declaration for \def\fomenc{PS}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+\protectreading ofs-ps.tex % This is part of OFS package
+
+\mathencdef\PSmathchars {%
+ \fontmessage{\ofsmessageheader Math codes are set for PS encoding.}%
+ \mathcode`\,="602C
+ \mathcode`\.="002E
+ \mathchardef\ldotp="602E
+ \mathcode`\/="002F
+ \mathcode`\-="2\hex\symbfam 2D
+ \mathcode`\<="3\hex\symbfam 3C
+ \mathcode`\>="3\hex\symbfam 3E
+ \mathcode`\|="0\hex\symbfam 7C
+ %
+ \delcode`\<="\hex\symbfam E130A
+ \delcode`\>="\hex\symbfam F130B
+ \delcode`\|="\hex\symbfam 7C30C
+ %
+ \edef\langle{\delimiter"4\hex\symbfam E130A }%
+ \edef\rangle{\delimiter"5\hex\symbfam F130B }%
+ \edef\lbrace{\delimiter"4\hex\symbfam 7B308 }\let\{=\lbrace
+ \edef\vert {\delimiter"2\hex\symbfam 7C30C }\let\|=\vert
+ \edef\rbrace{\delimiter"5\hex\symbfam 7D309 }\let\}=\rbrace
+ % \bffam, \ttfam can be allocated with non-plain values
+ \def\lgroup{\delimiter"4\hex\bffam 2833A }% extensible ( with sharper tips
+ \def\rgroup{\delimiter"5\hex\bffam 2933B }% extensible ) with sharper tips
+ \def\bracevert{\delimiter"\hex\ttfam 7C33E }% the vertical bar that extends braces
+ %
+ \def\tmpa{8z}\ifx\fotenc\tmpa
+ \mathaccentdef \acute "7013
+ \mathaccentdef \bar "7016
+ \mathaccentdef \breve "7015
+ \mathaccentdef \check "7014
+ \mathaccentdef \ddot "707F
+ \mathaccentdef \dot "705F
+ \mathaccentdef \grave "7012
+ \mathaccentdef \hat "705E
+ \mathaccentdef \tilde "707E
+ \else
+ \mathaccentdef \acute "7001
+ \mathaccentdef \bar "7009
+ \mathaccentdef \breve "7008
+ \mathaccentdef \check "7007
+ \mathaccentdef \ddot "7004
+ \mathaccentdef \dot "700A
+ \mathaccentdef \grave "7000
+ \mathaccentdef \hat "7002
+ \mathaccentdef \tilde "7003
+ \fi
+ \let\vec=\overrightarrow % rightarrow accent is not present in Symbol
+ %
+ \mathchardef\alpha "0\hex\symbofam 61
+ \mathchardef\beta "0\hex\symbofam 62
+ \mathchardef\gamma "0\hex\symbofam 67
+ \mathchardef\delta "0\hex\symbofam 64
+ \mathchardef\epsilon "0\hex\symbofam 65
+ \mathchardef\zeta "0\hex\symbofam 7A
+ \mathchardef\eta "0\hex\symbofam 68
+ \mathchardef\theta "0\hex\symbofam 71
+ \mathchardef\iota "0\hex\symbofam 69
+ \mathchardef\kappa "0\hex\symbofam 6B
+ \mathchardef\lambda "0\hex\symbofam 6C
+ \mathchardef\mu "0\hex\symbofam 6D
+ \mathchardef\nu "0\hex\symbofam 6E
+ \mathchardef\xi "0\hex\symbofam 78
+ \mathchardef\pi "0\hex\symbofam 70
+ \mathchardef\rho "0\hex\symbofam 72
+ \mathchardef\sigma "0\hex\symbofam 73
+ \mathchardef\tau "0\hex\symbofam 74
+ \mathchardef\upsilon "0\hex\symbofam 75
+ \mathchardef\phi "0\hex\symbofam 66
+ \mathchardef\chi "0\hex\symbofam 63
+ \mathchardef\psi "0\hex\symbofam 79
+ \mathchardef\omega "0\hex\symbofam 77
+ \let\varepsilon \epsilon
+ \let\vartheta \theta
+ \mathchardef\varpi "0\hex\symbofam 76
+ \let\varrho \rho
+ \let\varsigma \sigma
+ \let\varphi \phi
+ \mathchardef\Gamma "0\hex\symbfam 47
+ \mathchardef\Delta "0\hex\symbfam 44
+ \mathchardef\Theta "0\hex\symbfam 51
+ \mathchardef\Lambda "0\hex\symbfam 4C
+ \mathchardef\Xi "0\hex\symbfam 58
+ \mathchardef\Pi "0\hex\symbfam 50
+ \mathchardef\Sigma "0\hex\symbfam 53
+ \mathchardef\Upsilon "0\hex\symbfam A1
+ \mathchardef\Phi "0\hex\symbfam 46
+ \mathchardef\Psi "0\hex\symbfam 59
+ \mathchardef\Omega "0\hex\symbfam 57
+ %
+ \mathchardef\aleph "0\hex\symbfam C0
+ \def\tmpa{8z}\ifx\fotenc\tmpa
+ \mathchardef\imath "0110
+ \else
+ \mathchardef\imath "0169
+ \fi
+ \mathchardef\Re "0\hex\symbfam C2
+ \mathchardef\Im "0\hex\symbfam C1
+ \mathchardef\partial "0\hex\symbfam B6
+ \mathchardef\infty "0\hex\symbfam A5
+ \mathchardef\emptyset "0\hex\symbfam C6
+ \mathchardef\nabla "0\hex\symbfam D1
+ \mathchardef\bot "0\hex\symbfam 5E
+ \mathchardef\forall "0\hex\symbfam 22
+ \mathchardef\exists "0\hex\symbfam 24
+ \mathchardef\neg "0\hex\symbfam D8 \let\lnot \neg
+ \mathchardef\clubsuit "0\hex\symbfam A7
+ \mathchardef\diamondsuit "0\hex\symbfam A8
+ \mathchardef\heartsuit "0\hex\symbfam A9
+ \mathchardef\spadesuit "0\hex\symbfam AA
+ %
+ \mathchardef\intopinternal "1\hex\symbfam F2
+ \mathchardef\prodinternal "1\hex\symbfam D5
+ \mathchardef\suminternal "1\hex\symbfam E5
+ %
+ \def\intop {\mathop{\let\oriop=\intopinternal
+ \mathpalette\setop{\char"F2}\kern.06em}}%
+ \def\prod {\mathop{\let\oriop=\prodinternal
+ \mathpalette\setop{\char"F2}}}%
+ \def\sum {\mathop{\let\oriop=\suminternal
+ \mathpalette\setop{\char"E5}}}%
+ \def\setop ##1##2{\ifx##1\displaystyle % Bigger \int, \prod, \sum
+ \vcenter{\hbox{\bigsymbofont##2}}% % in \displaystyle
+ \else ##1\oriop\fi}
+ %
+ \mathchardef\wedge "2\hex\symbfam D9 \let\land \wedge
+ \mathchardef\vee "2\hex\symbfam DA \let\lor \vee
+ \mathchardef\cap "2\hex\symbfam C7
+ \mathchardef\cup "2\hex\symbfam C8
+ \def\tmpa{8z}\ifx\fotenc\tmpa
+ \mathchardef\ddagger "2082
+ \mathchardef\dagger "2081
+ \fi
+ \mathchardef\bullet "2\hex\symbfam B7
+ \mathchardef\div "2\hex\symbfam B8
+ \mathchardef\oslash "2\hex\symbfam C6
+ \mathchardef\otimes "2\hex\symbfam C4
+ \mathchardef\oplus "2\hex\symbfam C5
+ \mathchardef\pm "2\hex\symbfam B1
+ \mathchardef\cdot "2\hex\symbfam D7
+ \mathchardef\ast "2\hex\symbfam 2A
+ \mathchardef\times "2\hex\symbfam B4
+ \let\star \ast
+ %
+ \mathchardef\propto "3\hex\symbfam B5
+ \mathchardef\mid "3\hex\symbfam EF
+ \mathchardef\Leftrightarrow "3\hex\symbfam DB
+ \mathchardef\Leftarrow "3\hex\symbfam DC
+ \mathchardef\Rightarrow "3\hex\symbfam DE
+ \mathchardef\neq "3\hex\symbfam B9 \let\ne \neq
+ \mathchardef\leq "3\hex\symbfam A3 \let\le \leq
+ \mathchardef\geq "3\hex\symbfam B3 \let\ge \geq
+ \mathchardef\approx "3\hex\symbfam BB
+ \mathchardef\supset "3\hex\symbfam C9
+ \mathchardef\subset "3\hex\symbfam CC
+ \mathchardef\supseteq "3\hex\symbfam CA
+ \mathchardef\subseteq "3\hex\symbfam CD
+ \mathchardef\in "3\hex\symbfam CE
+ \mathchardef\ni "3\hex\symbfam 27 \let\owns \ni
+ \mathchardef\leftrightarrow "3\hex\symbfam AB
+ \mathchardef\leftarrow "3\hex\symbfam AC \let\gets \leftarrow
+ \mathchardef\rightarrow "3\hex\symbfam AE \let\to \rightarrow
+ \mathchardef\sim "3\hex\symbfam 7E
+ \mathchardef\simeq "3\hex\symbfam 40
+ \mathchardef\perp "3\hex\symbfam 5E
+ \mathchardef\equiv "3\hex\symbfam BA
+ %
+ \def\longrightarrow{\mathrel{\smash{\mathchar"200}}\joinrel\mathchar"3221 }%
+ \def\longleftarrow{\mathchar"3220\joinrel\mathrel{\smash{\mathchar"200}}}%
+ \def\Longrightarrow{\mathrel{\pickmathfont{cmr8z}=}\joinrel\mathchar"3229 }%
+ \def\Longleftarrow{\mathchar"3228\joinrel\mathrel{\pickmathfont{cmr8z}=}}%
+ \def\mapsto{\mapstochar\mathchar"3221 }%
+ \def\longleftrightarrow{\mathchar"3220\joinrel\mathchar"3221 }%
+ \def\Longleftrightarrow{\mathchar"3228\joinrel\mathchar"3229 }%
+ \def\rightarrowfill{$\mathsurround0pt\smash{\mathchar"200}\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\smash{\mathchar"200}\mkern-2mu$}\hfill
+ \mkern-7mu\mathchar"221$}%
+ \def\leftarrowfill{$\mathsurround0pt\mathchar"220\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\smash{\mathchar"200}\mkern-2mu$}\hfill
+ \mkern-7mu\smash{\mathchar"200}$}%
+ %
+ % The following characters are not present im psyr:
+ %
+ \def\jmath{{\pickmathfont{cmmi}{\char"7C}}}%
+ \def\ell{{\pickmathfont{cmmi}{\char"60}}}%
+ \def\wp{{\pickmathfont{cmmi}{\char"7D}}}%
+ \def\flat{{\pickmathfont{cmmi}{\char"5B}}}%
+ \def\natural{{\pickmathfont{cmmi}{\char"5C}}}%
+ \let\sharp \natural
+ \def\triangleleft{\mathbin{\pickmathfont{cmmi}{\char"2F}}}%
+ \def\triangleright{\mathbin{\pickmathfont{cmmi}{\char"2E}}}%
+ \def\smile{\mathrel{\pickmathfont{cmmi}{\char"5E}}}%
+ \def\frown{\mathrel{\pickmathfont{cmmi}{\char"5F}}}%
+ \def\leftharpoonup{\mathrel{\pickmathfont{cmmi}{\char"28}}}%
+ \def\leftharpoondown{\mathrel{\pickmathfont{cmmi}{\char"29}}}%
+ \def\rightharpoonup{\mathrel{\pickmathfont{cmmi}{\char"2A}}}%
+ \def\rightharpoondown{\mathrel{\pickmathfont{cmmi}{\char"2B}}}%
+ %
+ \def\mathcharsback{\mathencread ofs-cm;}%
+}
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-px.tex b/Master/texmf-dist/tex/generic/ofs/ofs-px.tex
new file mode 100644
index 00000000000..e464f080f75
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-px.tex
@@ -0,0 +1,98 @@
+% OFS: TX fonts + math encoding declaration for \def\fomenc{PX}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+\protectreading ofs-px.tex % This is part of OFS package
+
+\mathencdef\PXmathchars {%
+ \fontmessage{\ofsmessageheader Math codes are set for PX encoding.}%
+ \mathcode`\, "602C
+ \mathcode`\. "002E
+ \mathchardef\ldotp "602E
+ \mathcode`\/ "002F
+ \mathcode`\< "3\hex\mifam 3C
+ \mathcode`\> "3\hex\mifam 3E
+ %
+ \mathchardef\alpha "0\hex\mifam 0B
+ \mathchardef\beta "0\hex\mifam 0C
+ \mathchardef\gamma "0\hex\mifam 0D
+ \mathchardef\delta "0\hex\mifam 0E
+ \mathchardef\epsilon "0\hex\mifam 0F
+ \mathchardef\zeta "0\hex\mifam 10
+ \mathchardef\eta "0\hex\mifam 11
+ \mathchardef\theta "0\hex\mifam 12
+ \mathchardef\iota "0\hex\mifam 13
+ \mathchardef\kappa "0\hex\mifam 14
+ \mathchardef\lambda "0\hex\mifam 15
+ \mathchardef\mu "0\hex\mifam 16
+ \mathchardef\nu "0\hex\mifam 17
+ \mathchardef\xi "0\hex\mifam 18
+ \mathchardef\pi "0\hex\mifam 19
+ \mathchardef\rho "0\hex\mifam 1A
+ \mathchardef\sigma "0\hex\mifam 1B
+ \mathchardef\tau "0\hex\mifam 1C
+ \mathchardef\upsilon "0\hex\mifam 1D
+ \mathchardef\phi "0\hex\mifam 1E
+ \mathchardef\chi "0\hex\mifam 1F
+ \mathchardef\psi "0\hex\mifam 20
+ \mathchardef\omega "0\hex\mifam 21
+ \mathchardef\varepsilon "0\hex\mifam 22
+ \mathchardef\vartheta "0\hex\mifam 23
+ \mathchardef\varpi "0\hex\mifam 24
+ \mathchardef\varrho "0\hex\mifam 25
+ \mathchardef\varsigma "0\hex\mifam 26
+ \mathchardef\varphi "0\hex\mifam 27
+ %
+ \mathchardef\Gamma "0\hex\rmsyfam 00
+ \mathchardef\Delta "0\hex\rmsyfam 01
+ \mathchardef\Theta "0\hex\rmsyfam 02
+ \mathchardef\Lambda "0\hex\rmsyfam 03
+ \mathchardef\Xi "0\hex\rmsyfam 04
+ \mathchardef\Pi "0\hex\rmsyfam 05
+ \mathchardef\Sigma "0\hex\rmsyfam 06
+ \mathchardef\Upsilon "0\hex\rmsyfam 07
+ \mathchardef\Phi "0\hex\rmsyfam 08
+ \mathchardef\Psi "0\hex\rmsyfam 09
+ \mathchardef\Omega "0\hex\rmsyfam 0A
+ %
+ \mathchardef\imath "0\hex\mifam 7B
+ \mathchardef\jmath "0\hex\mifam 7C
+ \mathchardef\ell "0\hex\mifam 60
+ \mathchardef\wp "0\hex\mifam 7D
+ \mathchardef\partial "0\hex\mifam 40
+ \mathchardef\flat "0\hex\mifam 5B
+ \mathchardef\natural "0\hex\mifam 5C
+ \mathchardef\sharp "0\hex\mifam 5D
+ \mathchardef\triangleleft "2\hex\mifam 2F
+ \mathchardef\triangleright "2\hex\mifam 2E
+ \mathchardef\star "2\hex\mifam 3F
+ \mathchardef\smile "3\hex\mifam 5E
+ \mathchardef\frown "3\hex\mifam 5F
+ \mathchardef\leftharpoonup "3\hex\mifam 28
+ \mathchardef\leftharpoondown "3\hex\mifam 29
+ \mathchardef\rightharpoonup "3\hex\mifam 2A
+ \mathchardef\rightharpoondown "3\hex\mifam 2B
+ \mathchardef\lhook "3\hex\mifam 2C
+ \mathchardef\rhook "3\hex\mifam 2D
+ \mathchardef\ldotp "6\hex\mifam 3A
+ %
+ \def\acute {\mathaccent"0\hex\rmsyfam 13 }%
+ \def\grave {\mathaccent"0\hex\rmsyfam 12 }%
+ \def\ddot {\mathaccent"0\hex\rmsyfam 7F }%
+ \def\tilde {\mathaccent"0\hex\rmsyfam 7E }%
+ \def\bar {\mathaccent"0\hex\rmsyfam 16 }%
+ \def\breve {\mathaccent"0\hex\rmsyfam 15 }%
+ \def\check {\mathaccent"0\hex\rmsyfam 14 }%
+ \def\hat {\mathaccent"0\hex\rmsyfam 5E }%
+ \def\vec {\mathaccent"0\hex\mifam 7E }%
+ \def\dot {\mathaccent"0\hex\rmsyfam 5F }%
+}
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-slt.tex b/Master/texmf-dist/tex/generic/ofs/ofs-slt.tex
new file mode 100644
index 00000000000..ffee32f6955
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-slt.tex
@@ -0,0 +1,1004 @@
+\chyph % pou¾ijte csplain
+
+% Pøimlovám se k tomu nepøeznaèkovávat èlánek do LaTeXu
+% Na èlánku toti¾ demonstruji vlastnosti OFS a opírám se
+% o OFS z plainu. Pøechod na LaTeX se zachováním tìchto vlastností
+% by nebyl jednoduchý. Mù¾ete rozbalit metriky
+% a virtuální fonty k Charteru (pøilo¾ený charter8z.zip) do
+% pracovního adresáøe a zpracovat csplainem na instalaci TeXu,
+% která obsahuje OFS. Pøed spu¹tìním dvips je pak potøeba doplnit
+% do psfonts.map ètyøi øádky uvedené v souboru mapfile. Mù¾ete mì také
+% informovat o tom, na kterých stránkách se dokument bude ve sborníku
+% nacházet, já opravím údaj \firstpage, zplainuji to, zdvipsuji a
+% po¹lu obratem zpátky.
+
+\newcount\firstpage \firstpage=79
+\newcount\numpages \numpages=14
+
+\def\addcmd #1#2{\expandafter\def\expandafter\tmpa\expandafter{#1}%
+ \def\tmpb{#1}%
+ \ifx\tmpa\tmpb % the #1 is not a macro
+ \expandafter\let\csname \string#1-original\endcsname =#1%
+ \expandafter\def\expandafter #1\expandafter{%
+ \csname\string#1-original\endcsname #2}%
+ \else % the #1 is a macro
+ \expandafter\def\expandafter #1\expandafter{#1#2}%
+ \fi}
+
+\input ofs [ffonts] % Charter je ve skupinì free fonts
+\setfonts [Charter/10pt] % výchozí rodina
+\setmath[//] % inicializace matematiky
+\fontdef\tt [CMTypewriter/mag1.1] % strojopis, korekce støední vý¹ky
+\fontdef\verbtt [CMTypewriter-rm/8] % strojopis pro display ukázky
+\fontdef\small [!/9] % zmen¹ení pro abstrakt a záhlaví
+\addcmd \small {\baselineskip11pt \rm \def\mathversion{normal}\setmath[//]}
+\fontdef\fontsekce [!/12] % pro nadpisy sekcí
+\addcmd \fontsekce {\bf \let\it=\bi \def\mathversion{bold}\setmath[//]}
+\fontdef\fonttitul [!-bf/14.4] % titul
+
+\hsize=12,2cm
+\vsize=19,3cm
+\hoffset=63pt
+\voffset=43pt
+\parindent=14pt
+
+\lineskiplimit=-10pt
+\raggedbottom
+
+\exhyphenpenalty=10000
+\widowpenalty=10000
+\clubpenalty=10000
+
+\showboxdepth=10 \showboxbreadth=50
+
+\def\starthead{\global\headline=
+ {\small \ifodd\pageno \hfil \thetitul \headspace \the\pageno
+ \else \the\pageno \headspace \theauthor \hfil \fi}}
+\headline={\hfil\starthead}
+\def\headspace{\hskip2.5em\relax}
+\def\makeheadline{\vbox to0pt{\vskip-25pt
+ \line{\vbox to8.5pt{}\the\headline}\vss}\nointerlineskip}
+\footline={\setfonts[/7]\setmath[//]\baselineskip=9pt
+ \vbox{\hbox{\copytext}\hbox{\copykonvoj}}\hfil
+ \global\footline={}}
+\def\lastpage{\advance\firstpage by\numpages \advance\firstpage by-1
+ \the\firstpage}
+
+\def\copytext{Jan Kasprzak, Petr Sojka (editoøi): \SLT~2002 -- sborník
+ semináøe o~Linuxu a \TeX{}u, str. \the\firstpage--\lastpage, 2002.}
+\def\copykonvoj{\copyright~Konvoj, CSTUG, CZLUG 2002}
+
+\newcount\subnum
+
+\def\kap #1\par{\advance\subnum by1
+ \removelastskip %\goodbreak
+ \vskip17pt plus2pt minus1pt\noindent{\fontsekce
+ \ifnum\subnum>1 \the\subnum\enspace\enspace\fi #1}%
+ \par\nobreak\vskip11pt plus2pt minus1pt
+ \everypar{\setbox0=\lastbox \everypar={}}}
+\def\reference {\subnum=-1 \kap Reference\par \small}
+\def\bib{\par\advance\subnum by1 \leftskip=\parindent
+ \noindent\llap{\the\subnum.\enspace}\ignorespaces}
+
+\let\orifootnote=\footnote
+\newcount\footnotenum
+\def\footnote#1{\global\advance\footnotenum by1
+ \orifootnote{$\setmath[//]^\the\footnotenum$}{\small
+ \hangindent=\parindent #1\par}}
+\def\footnoterule{\kern-3pt \hrule width 2cm \kern2.6pt }
+
+\def\titul #1 \par{\def\thetitul{#1}\pageno=\firstpage
+ \centerline{\fonttitul #1}\vskip20pt\relax}
+\def\autor #1 \par{\def\theauthor{#1}
+ \centerline{#1}\vskip10pt\relax}
+\def\institut #1 \par{\centerline{\small #1}}
+\def\email #1 \par{\centerline{\small Email: \tt #1}\vskip20pt\relax}
+\def\abstrakt #1\par{\bgroup \small
+ \leftskip=3em \rightskip=3em
+ \noindent{\bf Abstrakt:}\enspace #1\par \egroup\bigskip}
+\def\url#1{{\tt#1}}
+
+\font\mflogo=logo10 % METAFONT logo
+\font\boldsy=cmbsy10 at12pt % Tuèné \CS, \AMS.
+\font\bboldsy=cmbsy10 scaled\magstep2 % Tuèné \CS v titulu
+
+\def\CS{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $}
+\def\bCS{{\boldsy C\kern-.1667em\lower.5ex\hbox{S}\kern-.04em}}
+\def\CSTeX{\CS\TeX}
+\def\CSTUG{\CS TUG}
+\def\CSfont{\CS\kern.1em font}
+\def\csplain{\CS\kern.1em plain} \let\CSplain=\csplain
+\def\mf{{\mflogo META}\-{\mflogo FONT}}
+\def\mp{{\mflogo META}\-{\mflogo POST}}
+\def\LaTeX{L\kern-.2em\raise.45ex\hbox{\setfonts[/mag.7] A}\kern-.05em\TeX}
+\def\twoe{$2_{\textstyle\varepsilon}$}
+\def\LaTeXe{\LaTeX\thinspace\twoe}
+\def\cslatex{\CS\kern.05em\LaTeX} \let\CSLaTeX=\cslatex
+\def\twoe{$2_{\textstyle\varepsilon}$}
+\def\LaTeXe{\LaTeX\thinspace\twoe}
+\def\AMS{$\cal A\kern-.166em\lower.5ex\hbox{$\cal M$}\kern-.075em S$}
+\def\bAMS{{\boldsy A\kern-.166em\lower.5ex\hbox{M}\kern-.075em S}}
+\def\ps{Post\-Script}
+\def\SLT{S\kern-0.025em\lower.5ex\hbox{L}\kern-.2emT}
+\def\DOS{\hbox{DOS}}
+
+%% Definice verbatim prostøedí %% !verb.
+\catcode`\"=13
+\def"{\hbox\bgroup\let"=\egroup\setverb\tt}
+\def\setverb{\def\do##1{\catcode`##1=12}\dospecials\obeyspaces}
+\def\begtt{\medskip\bgroup
+ \nobreak\setverb \parskip=0pt %\parindent=0pt
+ \catcode`\"=12\catcode`\~=13 \obeylines
+ \baselineskip=10pt
+ \let\tt=\verbtt \startverb}
+{\catcode`\|=0 \catcode`\\=12
+ |gdef|startverb#1\endtt{%
+ |tt#1|nobreak|egroup|penalty0|medskip|scannexttoken}}
+{\obeyspaces\gdef {\ }}
+\long\def\scannexttoken#1{\ifx#1\par\else\noindent#1\fi}
+
+\def\citeref #1 #2 {\expandafter\def\csname cit:#1\endcsname{#2}}
+\citeref pismolijna 1
+\citeref ofsftp 2
+\citeref ofsdoc 3
+\citeref stormcl 4
+\def\cite#1{\expandafter\ifx \csname cit:#1\endcsname\relax
+ \message{Warning: cite{#1} is not defined}[??]%
+ \else [\csname cit:#1\endcsname]\fi}
+
+%-------------------------------------------------------------------------
+
+\titul Makro OFS
+ %%%%%%%%%
+
+\autor Petr Ol¹ák
+
+\institut Elektrotechnická fakulta ÈVUT, Praha
+
+\email olsak@math.feld.cvut.cz
+
+\abstrakt
+ OFS (Ol¹ákùv fontový systém) je balíèek TeXových maker, který
+ umo¾ní získat vìt¹í pøehled nad rozsáhlými kolekcemi fontù a umo¾ní
+ s~nimi pomìrnì snadnou manipulaci. Balík byl vyvinut pro získání
+ pøehledu nad fonty z~Typokatalogu Støe¹ovické písmolijny~\cite{pismolijna}.
+ Na základì poptávky \LaTeX{}ových u¾ivatelù byl balík
+ napsán je¹tì jednou pro \LaTeX, kde vyu¾ívá NFSS a pokou¹í se je
+ tro¹ièku vylep¹it. Základní u¾ivatelské pøíkazy OFS jsou pak v~obou
+ prostøedích (plain i \LaTeX) stejné. Na pøedná¹ce pøedvedu pou¾ití
+ OFS na u¾ivatelské i konfiguraèní úrovni.
+
+\kap Úvodem
+%----------
+
+Makro OFS jsem si napsal hlavnì proto, abych se vyznal ve stovkách
+fontù, které pocházely ze Støe¹ovické písmolijny a pro které jsem
+pøed rokem udìlal \TeX{}ovou podporu. Proto¾e jsem plainista, ¹lo mi
+hlavnì o~to udìlat makro co nejvíce srozumitelné u¾ivateli plainu,
+který potøebuje pøesnì vìdìt, co to makro dìlá. Tento po¾adavek
+napøíklad \LaTeX{}ové NFSS nesplòuje.
+
+Pozdìji se zaèali o~OFS zajímat té¾ nìkteøí u¾ivatelé \LaTeX{}u. To¾
+jsem se pøemohl a pokusil OFS napsat je¹tì jednou, tentokrát pod
+\LaTeX{}em s~vyu¾itím~NFSS. Cílem tohoto pøepsání bylo hlavnì to, aby
+se u¾ivatelské pøíkazy pro vyhledávání a pøepínání rodin fontù
+zcela shodovaly v~\LaTeX{}ové verzi s~verzí plainovou. \LaTeX{}ová
+verze pøesto umí podstatnì ménì vìcí, ne¾ plainová, proto¾e pokud by
+mìla umìt v¹e, musel bych NFSS zcela odmítnout a fontový modul
+\LaTeX{}u si napsat po svém. Tím bych ale popøel \LaTeX{} jako
+takový, tak¾e jsem zùstal u~respektování principù NFSS. Vìci, které
+se v~NFSS dají dìlat velmi tì¾ko, jsem radìji nedìlal.
+
+Z~tìchto dùvodù jsem se v~\LaTeX{}u nepou¹tìl ani do podpory
+matematických fontù. Koncepce matematiky v~NFSS mi pøipadá jako
+plainistovi ponìkud nesrozumitelná. Navíc velké kolekce fontù, které byly
+hlavní motivací OFS, jsou vìt¹inou textové. Pokud chce nìkdo
+pou¾ít matematickou sadu fontù v~\LaTeX{}u, pou¾ije
+"\usepackage{styl}" a ten styl je k~té matematické sadì vìt¹inou
+dodáván. Nepova¾oval jsem tedy øe¹ení matematiky
+v~\LaTeX{}u za prioritní. Na druhou stranu matematické rodiny v~plainu
+se pomocí OFS doplòují a zavádìjí ve v¹ech velikostech velmi
+elegantnì. Vìøím, ¾e alespoò nìjakému plainistovi (kromì mì) se toto
+øe¹ení bude hodit.
+
+Makro OFS jsem zveøejnil na \cite{ofsftp} pod \TeX-like licencí,
+tj. je volnì k~mání, ale zmìny pod stejným názvem nesmí dále ¹íøit nikdo
+jiný, ne¾ autor. Do \TeX{}ových distribucí jsem makro zatím
+neprosadil, proto¾e bohu¾el chybí anglická dokumentace. Domnívám se,
+¾e kdyby anglická dokumentace byla, nebyl by se zaøazením do \TeX{}ových
+distribucí problém a makro by mohlo vyu¾ít daleko více lidí. Bohu¾el,
+nejsem v~angliètinì natolik zdatný, abych tento problém rychle pøekonal.
+Pro leto¹ní letní prázdniny jsem sice plánoval, ¾e se pokusím anglickou
+dokumentaci napsat, jen¾e pøi¹la voda\dots
+
+K~OFS existuje samozøejmì èeská dokumentace~\cite{ofsdoc} podrobì
+popisující chování makra. Navíc jsem se o~OFS zmínil u¾ v~èlánku
+o~\TeX{}ové podpoøe ©tormových fontù~\cite{stormcl}. Dovolil jsem si
+zde pøesto znovu k~tomuto tématu vrátit. Nechci být nyní
+tak technicky exaktní, jako v~manuálu~\cite{ofsdoc}, ale zase mám zde
+více místa k~rozepsání mo¾ností makra, ne¾ jsem mìl ve
+èlánku~\cite{stormcl}, který byl pøedev¹ím o~©tormových fontech.
+
+
+\kap Základy u¾ivatelského rozhraní
+%----------------------------------
+
+U¾ivatelské rozhraní je shodné v~\LaTeX{}ové verzi OFS i
+v~plainové s~výjimkou snad zavedení makra OFS, které v~plainu
+provedeme jednodu¹e pomocí "\input ofs [kolekce, fontù]", zatímco
+v~záhlaví \LaTeX{}ového dokumentu pí¹eme
+"\usepackage [kolekce, fontù] {ofs}".
+
+Abych v~tomto textu nemusel ka¾dou chvíli vìtvit svùj výklad na situaci
+vhodnou pro plain a pro \LaTeX{}, rozhodl jsem se zde pøedpokládat, ¾e
+pracujeme pouze s~plainem (napøíklad s~\csplain{}em).
+\LaTeX{}ový u¾ivatel si bude muset dohledat specifika verze OFS pro
+svùj formát v~dokumentaci~\cite{ofsdoc}.
+
+\bigskip
+
+Pøíkazem "\fontusage" dostaneme na terminál a do logu základní
+informace o~u¾ivatelských pøíkazech:
+
+\begtt
+$ tex ofs \\fontusage
+This is TeX, Version 3.14159 (Web2C 7.3beta5)
+(/usr/local/share/texmf/tex/csplain/ofs.tex
+OFS (Olsak's Font System) based on plain initialized. <Oct. 2002>
+(/usr/local/share/texmf/tex/csplain/ofsdef.tex))
+\fontusage: ============== Olsak's Font System, usage: =================
+\input ofs [sjannon, sdynamo, a35] ... for example
+\showfonts ... shows all loaded font families (by previous \input)
+\setfonts [Family/] ... local switch to the new family, after this, the
+ \rm, \bf, \it, bi will switch to the variants. The current size is used.
+\setfonts [/size] ... local switch to the new size of fonts, the family is
+ not changed. The "size" has the following possible formats:
+ at<dimen> ... the same as \font\something=file at<dimen>
+ <dimen> ... the same as at<dimen>
+ <number> ... the same as at<number>pt
+ scaled<number> ... the same as \font\something=file scaled<number>
+ mag<decimal-number> fonts will be magnified by given coefficient
+ depend on current size of the fonts.
+\setfonts [Family/size] ... switch to the new family at given size
+\setfonts [Family-vr/] ... switch to the specified font, the current size
+ is used. The "vr" is acronym for variant (bf for example).
+\setfonts [Family-vr/size] ... switch to the specified font.
+\fontdef\name [Family/size] ... same as \gdef\name{\setfonts[Family/size]}
+ The "Family" or "size" parameter may be empty.
+\fontdef\name [Family-vr/size] ... \name is fixed-font switch iff:
+ "size" is no empty and no mag<dec-number>.
+ Fixed-font switch "\name" is implemented as \global\font\name=file.
+\setmath [size/size/size] ... set math it/rm as current it/rm + use PS Symbol
+\nofontmessages, \logfontmessages, \displayfontmessages, \detailfontmessages
+ ... the levels of log.
+*
+\endtt
+
+Vidíme, ¾e pøíkaz "\showfonts" nám uká¾e kolekce fontù. Pokud jsme
+nepou¾ili \uv{previous "\input"}, dopadne základní kolekce
+(implementovaná pøímo uvnitø OFS) takto:
+
+\begtt
+*\showfonts
+OFS (l.0): The list of known font families:
+defaults:
+ [CMRoman/] \rm, \bf, \it, \bi, \sl
+ [CMSans/] \rm, \bf, \it, -
+ [CMTypewriter/] \rm, - , \it, - , \sl
+ [Times/] \rm, \bf, \it, \bi
+ [Helvetica/] \rm, \bf, \it, \bi, \nrm, \nbf, \nit, \nbi
+ [Courier/] \rm, \bf, \it, \bi
+\endtt
+
+Názvy fontových rodin jsou zde uvedeny v~hranatých závorkách a vedle jsou
+uvedeny pøepínaèe variant, které pro danou rodinu je mo¾né pou¾ít.
+
+Vidíme, ¾e nejbì¾nìj¹í textové fonty Computer Modern jsou zaneseny
+v~OFS do tøí rodin "CMRoman", "CMSans" a "CMTypewriter". Myslím, ¾e
+netøeba dodávat, co to znamená. V~rodinách "CMSans" a "CMTypewriter"
+není k~dispozici jinak obvyklá varianta "BoldItalic", pro kterou je
+vyhrazen pøepínaè "\bi". V~rodinì "CMTypewriter" nenajdeme ani
+pøepínaè "\bf" pro tuènou variantu, ale zato mù¾eme pou¾ít
+\uv{nadstandardní} variantu "\sl" (slanted), která je k~dispozici i
+v~rodinì "CMRoman".
+
+%OFS také pøímo pracuje s~rodinami "Times", "Helvetica" a
+%"Courier".
+%Rodina "Helvetica" má kromì bì¾ných variant je¹tì varianty
+%zú¾ené, napøíklad "\nbf" znamená "NarrowBold". Pokud písmová rodina
+%nemá skuteènou kurzívu, ale jen sklonìnou variantu, je pøesto tato
+%varianta vymezena pøepínaèem "\it".
+%Vìt¹ina písmových rodin toti¾
+%dodr¾uje \uv{logiku ètyø variant}, pro které jsou v~OFS vyhrazeny
+%právì pøepínaèe "\rm", "\bf", "\it", "\bi".
+
+Deklarace dal¹ích písmových rodin jsou zaná¹eny do deklaraèních
+souborù s~pøíponou "tex"%
+\footnote{V \LaTeX{}ovém OFS se jedná o~pøíponu {\tt sty}.}.
+V~ka¾dém distribuci \TeX{}u
+doporuèuji udr¾ovat soubor volající v¹echny deklaraèní soubory
+"allfonts.tex". Napøíklad na mém poèítaèi vypadá tento soubor takto:
+
+\begtt
+$ cat `kpsewhich allfonts.tex`
+%%% All OFS families declared on this TeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Petr Olsak
+\input a35 % PostScript 35
+\input ffonts % Another free fonts
+\input btfonts % Bitstream fonts
+\input skatalog % Stromtype foundry, 89 families
+\endtt
+%
+Kdy¾ tedy napí¹u "$ tex allfonts \\showfonts \\end | less"~, dostanu
+na svém poèítaèi výpis zhruba tøí set písmových rodin, ka¾dá obvykle
+ve ètyøech variantách. Dùle¾ité je, ¾e se v tom vyznám a nemusím
+vzpomínat, jak se která metrika jmenuje. Následuje jen èást výpisu.
+
+\begtt
+OFS (l.0): The list of known font families:
+defaults:
+ [CMRoman/] \rm, \bf, \it, \bi, \sl
+ [CMSans/] \rm, \bf, \it, -
+ [CMTypewriter/] \rm, - , \it, - , \sl
+ [Times/] \rm, \bf, \it, \bi
+ [Helvetica/] \rm, \bf, \it, \bi, \nrm, \nbf, \nit, \nbi
+ [Courier/] \rm, \bf, \it, \bi
+a35.tex:
+ [AvantGarde/] \rm, \bf, \it, \bi
+ [Bookman/] \rm, \bf, \it, \bi
+ [NewCentury/] \rm, \bf, \it, \bi
+ [Palatino/] \rm, \bf, \it, \bi
+ [ZapfChancery/] \rm, - , \it, -
+ [ZapfDingbats/] \rm, - , - , -
+ [Symbol/] \rm, - , \it, -
+ffonts.tex:
+ [Charter/] \rm, \bf, \it, \bi
+...
+sjannon.tex:
+ [JannonAntikva/] \rm, \bf, \it, \bi, \mr, \mi
+ [JannonText/] \rm, \bf, \it, \bi, \mr, \mi
+ [JannonCaps/] \rm, \bf, \it, \bi
+...
+sdynamo.tex:
+...
+ [DynaGroteskLE/] \rm, \bf, \it, \bi
+ [DynaGroteskD/] \rm, \bf, \it, \bi
+ [DynaGroteskR/] \rm, \bf, \it, \bi
+...
+stitul.tex:
+ [Alcoholica/] \rm, \bf, \it, -
+ [Monarchia/] \rm, \bf, - , -
+ [MonarchiaText/] \rm, \bf, - , -
+ [Clichee/] \rm, \bf, \it, \bi
+ [Regula/] \rm, - , \it, -
+ [Splendid/] \rm, \bf, \it, - , \script, \sans
+ [Cobra/] \rm, \bf, - , -
+ [ExcelScript/] \rm, - , - , - , \ext
+ [ExcelScriptText/] \rm, - , - , - , \ext
+ [Zeppelin/] \rm, \bf, - , - , \lr, \coll
+ [Negro/] \rm, - , - , -
+ [Farao/] \rm, \bf, - , - , \kr, \coll
+...
+slido.tex:
+ [Lido/] \rm, \bf, \it, \bi, \crm, \cbf
+\endtt
+
+Ve výpisu je uveden i \TeX{}ový soubor, kde se deklarace odpovídajících
+rodin skuteènì nachází. Vidíme tedy, ¾e "a35.tex" u¾ obsahuje
+deklarace rodin, ale napøíklad soubor "skatalog.tex" zøejmì obsahuje jen dal¹í
+"\input sjannon", "\input sdynamo", "\input stitul" atd.
+Kdy¾ si pro svùj dokument vyberu tøeba rodiny "JannonText",
+"DynaGroteskR" a "Farao", pak místo toho, abych psal
+
+\begtt
+\input ofs [allfonts]
+\endtt
+%
+si vystaèím~s
+\begtt
+\input ofs [sjannon, sdynamo, stitul]
+\endtt
+%
+co¾ zpùsobí naèítání podstatnì ménì souborù s~deklaracemi fontových rodin.
+
+Pokud potøebuji vìdìt, jak ty fonty vypadají, napí¹u napøíklad:
+
+\begtt
+$ pdfcsplain ofscatal [sjannon, sdynamo, stitul] ; acroread ofscatal.pdf
+\endtt
+%
+Soubor "ofscatal.tex", který vytvoøí katalog, byl zaøazen do balíku
+OFS od verze~"Oct 2002".
+
+\kap Pøepínaè rodin a velikostí
+
+Hlavním pøíkazem OFS na u¾ivatelské úrovni je "\setfonts". Jedná se
+pøedev¹ím o~pøepínaè rodin, viz výpis "\fontusage" v~pøedchozí sekci.
+Pøepínaè má dva parametry v~hranaté závorce oddìlené lomítkem. Prvním
+parametrem je název rodiny a druhým po¾adovaná velikost fontù. Pokud
+nìkterý parametr chybí, pøepínaè nebude jeho nastavení mìnit. Pøepínaè
+samozøejmì funguje lokálnì ve skupinách, jako bývá u~fontových
+pøepínaèù obvyklé. Po pøepnutí rodiny pracují pøepínaèe variant
+(obvykle "\rm", "\bf", "\it", "\bi") pro novou rodinu. Varianta se po
+pøepnutí rodiny inicializuje stejná, jako byla pøed pøepnutím,
+tj. jsme-li zrovna v~kurzívì rodiny Times a pøepneme do Helveticy,
+zùstáváme ve variantì "\it" rodiny Helvetica, tj. sklonìné
+písmo. Pokud ale pøi pøepnutí rodiny aktuální varianta v~nové rodinì
+neexistuje, inicializuje se varianta "\rm", kterou musí obsahovat
+ka¾dá rodina.
+
+Pøíklady
+
+\begtt
+\setfonts [JannonText/10.5] % nastavím na zaèátku dokumentu
+\setfonts [/14]\bf % napøíklad pro nadpisy
+\setfonts [/8]\rm % pro poznámky pod èarou
+\setfonts [DynagroteskR/]\it % tøeba pro citáty
+\setfonts [CMTypewriter/] % pro strojopis.
+ % tento pøepínaè napø. v kurzívì nastaví automaticky
+ % variantu kurzíva-strojopis.
+\endtt
+
+Výhodou tedy je, ¾e si nemusím pamatovat názvy matrik (v~\LaTeX{}u pak
+nesrozumitelné zkratky rodin pou¾ívané v~NFSS), ale pí¹u název rodiny
+do dokumentu stejným zpùsobem, jak jej vidím v~písmovém katalogu.
+Pokud udìlám v~názvu rodiny pøeklep (tøeba nedodr¾ím velká a malá
+písmena), pøíkaz "\setfonts" spustí "\showfonts", tj. na obrazovce
+a v~logu vidím seznam v¹ech rodin, které mohu pou¾ít.
+
+Velikost fontù mohu nastavit pøímo udáním v~jednotce "pt", nebo
+pøipsáním jiné jednotky (napø. "mm"), nebo jako u~primitivu "\font"
+pomocí slova "scaled" (koeficient zvìt¹ení se vá¾e k~základní
+velikosti fontu) a koneènì i pomocí zcela nového prefixu "mag", který
+udává zvìt¹ení vzhledem ke zrovna pou¾ité velikosti fontù, napøíklad:
+
+\begtt
+\def\maly{\setfonts [/mag0.8]}
+stanu se {\maly men¹ím a {\maly men¹ím a {\maly je¹tì men¹ím}}}
+a u¾ jsem se z toho dostal.
+\endtt
+%
+dopadne takto:
+
+\medskip
+\def\maly{\setfonts[/mag0.8]}
+stanu se {\maly men¹ím a {\maly men¹ím a {\maly je¹tì men¹ím}}} a
+u¾ jsem se z~toho dostal.
+\medskip
+
+Prefix "mag" pro velikost vyu¾ijeme napøíklad v~logu \LaTeX{}, které
+jsem si v~plainu definoval jako
+
+\begtt
+\def\LaTeX{L\kern-.2em\raise.45ex\hbox{\setfonts[/mag.7] A}\kern-.05em\TeX}
+\endtt
+%
+a funguje to v~nadpisech (je tam tuèné vyvý¹ené A~odpovídající
+velikosti) i v~poznámkách pod èarou. V~\LaTeX{}u samotném mají toto
+logo definováno tak, ¾e se pro vyvý¹ené A~pou¾ije font v~indexové
+velikosti. No jo, zde jim to náhodou prochází, ale co kdyby se
+(napøíklad v~jiném v~logu) hodilo pro nìkteré písmeno pou¾ít
+velikost "mag.8", která není jako indexová velikost pou¾ita?
+Bez OFS bychom to pak dìlali dost obtí¾nì, proto¾e NFSS nám øe¹ení
+nenabízí.
+
+Dal¹ím vyu¾itím prefixu "mag" je mo¾nost korigovat nestejné støední
+vý¹ky písma. Napøíklad v~tomto sborníku je pro strojopis pou¾it
+"CMTypewriter". Pokud si v¹imnete v~jiných pøíspìvcích, ne¾ tento,
+vidíte, ¾e uvnitø odstavcù ten strojopis s~fontem Charter moc nesedí, proto¾e
+strojopis má men¹í støední vý¹ku písma. Staèí ale pro pøepínaè "\tt"
+pou¾ít "\setfonts [CMTypewriter/mag1.1]", a støední vý¹ka je
+v~lati. To vidíme napøíklad v~tomto pøíspìvku.
+A~funguje to vèetnì zmen¹ených variant, které jsou
+v~pøíspìvcích pro \SLT{} pou¾ity v~abstaktu, poznámce pod èarou,
+nebo tøeba v~údaji \uv{Email}, uvedeném v~záhlaví pøíspìvku.
+
+Pøíkaz "\setfonts" mù¾e obsahovat i specifikaci varianty (viz výpis
+pøíkazu "\fontusage"). Pak se u¾ nejedná o~pøepínaè rodiny, ale fontu
+samotného. V~takovém pøípadì pøepínaè "\setfonts" neovlivní pøepínaèe
+variant "\rm", "\bf" a dal¹ích, ale nastaví jen po¾adovaný jediný
+font. Napøíklad pro nadpisy by ¹lo psát "\setfonts[-bf/14]" místo
+"\setfonts[/14]\bf", ale museli bychom mít jistotu, ¾e v~nadpisu
+nepou¾ijeme pøepínaè varianty, proto¾e ten by vrátil font do velikosti
+aktuální rodiny. Tou velikostí je tøeba 10pt.
+
+Abychom v~nadpisu mohli pou¾ít pøepínaè "\it", a pøitom se dostali do
+varianty "\bi" (co¾ je ¾ádoucí), je potøeba pøepínaè fontu v~makru
+pro nadpis naprogramovat zhruba takto:
+
+\begtt
+\def\nadpis #1{{\setfonts[/14]\bf \let\it=\bi #1}}
+\endtt
+%
+Kvùli tomuto jednoduchému obratu, který zvládne snad ka¾dý plainista,
+jsem se rozhodl nekomplikovat jádro OFS podobným zpùsobem jako NFSS a
+nezavádìt tedy dal¹í \uv{nezávislou souøadnici} popisující duktus fontu.
+Pro speciální rodiny fontù (jako je tøeba rodina
+"DynaGrotesk") jsem ale snadno pomocí doplòujících maker vytvoøil
+pøepínaè, který respektuje je¹tì o~jednu \uv{nezávislou souøadnici}
+více, ne¾ zvládá NFSS. V~tomto pøípadì to nebyl jen duktus, ale
+i stupeò zú¾ení písma. Navíc tento pøepínaè doká¾e \uv{poskakovat} po
+jednotkách vpøed a vzad podél zvolené souøadnice. To také NFSS
+nezvládá.
+
+Èasto se hodí vytváøet zkratky pro pøepínaèe rodin. K~tomu slou¾í
+makro "\fontdef\pøepínaè[Rodina/velikost]", které funguje podobnì,
+jako pou¾ití konstrukce "\gdef\pøepínaè{\setfonts[Rodina/velikost]}".
+V~záhlaví tohoto dokumentu mám napøíklad uvedeno:
+
+\begtt
+\input ofs [ffonts] % Charter je ve skupinì free fonts
+\setfonts [Charter/10pt] % výchozí rodina
+\fontdef\tt [CMTypewriter/mag1.1] % strojopis, korekce støední vý¹ky
+\fontdef\verbtt [CMTypewriter/8] % strojopis pro display ukázky
+\fontdef\small [Charter/9] % zmen¹ení pro abstrakt a záhlaví
+\endtt
+
+Mo¾ná ètenáøe napadne, ¾e jsem nemusel psát podruhé slovo "Charter"
+v~deklaraci pøepínaèe "\small". Pøi kompletní zmìnì základní rodiny
+dokumentu na jinou bych pak mohl zmìnit slovo "Charter" jen na
+jediném místì (u~pøíkazu "\setfonts") a byl bych hotov.
+Bohu¾el, vynechání rodiny v~pøíkazu "\small" vede
+k~problémùm, proto¾e tento pøíkaz je pou¾it v~záhlaví dokumentu,
+tj. ~v~"\output" rutinì. Pokud zde neuvedeme explicitnì rodinu, dìdí se
+rodina aktuálnì pou¾itá, která ov¹em mù¾e být jakákoli, proto¾e
+"\output" rutina je vyvolávaná z~rùzných míst pøi zpracování
+dokumentu. Mít záhlaví jednou strojopisem a podruhé Charterem podle
+toho, odkud byla "\output" rutina zavolána, je samozøejmì ne¾ádoucí.
+
+Tento problém se dá øe¹it \uv{vykøièníkovou} konvencí, kterou umí
+zpracovat pøíkaz "\fontdef":
+
+\begtt
+\fontdef\small [!/9] \addcmd\small {\rm} % pro abstrakt a záhlaví
+\endtt
+%
+Vykøièník je nahrazen aktuální rodinou u¾ v~dobì èinnosti pøíkazu
+"\fontdef", nikoli tedy a¾ v~dobì provádìní pøepínaèe. V~"\output"
+rutinì se musíme je¹tì postarat o~potlaèení dìdiènosti aktuální
+varianty. Proto jsem pou¾il je¹tì pøíkaz "\addcmd" (zaveden novì od
+verze OFS "Oct 2002"), který k~existujícímu makru pøidá dal¹í pøíkazy
+na jeho konec. Celá deklarace fontù v~tomto dokumentu tedy vypadá
+zhruba takto:
+
+\begtt
+\input ofs [ffonts] % Charter je ve skupinì free fonts
+\setfonts [Charter/10pt] % výchozí rodina
+\fontdef\tt [CMTypewriter/mag1.1] % strojopis, korekce støední vý¹ky
+\fontdef\verbtt [CMTypewriter-rm/8] % strojopis pro display ukázky
+\fontdef\small [!/9]
+\addcmd \small {\baselineskip11pt\rm} % zmen¹ení pro abstrakt a záhlaví
+\fontdef\fontsekce [!/12]
+\addcmd \fontsekce {\bf \let\it=\bi} % pro nadpisy sekcí
+\fontdef\fonttitul [!-bf/14.4] % v titulu nebudeme pøepínat varianty
+\endtt
+
+Povedlo se tedy ve¹keré aktivity související s~výbìrem fontù
+soustøedit na jedno místo dokumentu bez nutnosti pou¾ívat názvy
+metrik.
+
+
+\kap Kódování fontù
+%------------------
+
+OFS pro plain implicitnì pracuje v~kódování \CSfont{}ù, ale mù¾ete
+jej pøepnout do jiného kódování.
+\footnote{OFS pro \LaTeX{} pøenechává starost o~kódování zcela na~NFSS.}
+
+Základem informace o~kódování v~OFS pro plain je makro "\fotenc",
+které má implicitnì hodnotu "8z". To znamená, ¾e rodiny "CMRoman",
+"CMTypewriter" a "CMSans" budou pracovat s~\CSfont{}y.
+Kdyby u¾ivatel nastavil "\def\fotenc{8t}", zaèalo by OFS pracovat
+v~pøípadì tìchto rodin s~DC nebo EC fonty. Jaké je technické pozadí
+vysvìtlíme v~následující sekci.
+
+Vìt¹ina metrik \ps{}ových fontù má varianty "*8t" (pro
+kódování podle Corku) a "*8z" (pro kódování podle \CSfont{}ù).
+Makro "\fotenc" tedy musí obsahovat koncovku metrik, které chceme
+pou¾ít. Tím volíme kódování. Pøíklad:
+
+\begtt
+\input ofs
+\setfonts [Times/] text 1 % metrika: ptmr8z, tj. kódování CSfontù
+\def\fotenc{8t}
+\setfonts [/] text 2 % metrika: ptmr8t tj. kódování podle Corku
+\endtt
+%
+Máte-li své fonty v~nìjakém dal¹ím kódování a koncovky metrik máte
+s~názvy tøeba "*8x", pak není problém napsat "\def\fotenc{8x}"
+a mù¾ete zaèít pou¾ívat své vlastní metriky.
+
+Pokud pou¾íváte kódování podle Corku, doporuèuji definovat makro
+"\fotenc" jako "8t" pøed zavedením makra OFS. Pøi pou¾ití slo¾itìji
+deklarovaných rodin se to hodí.
+
+V~balíku OFS jsou soubory "ofs-8z.tex" a "ofs-8t.tex", ve kterých je
+deklarace akcentù a nìkterých na kódování závislých maker, jako
+napøíklad "\promile". Implicitnì není naèten ani jeden z~tìchto
+souborù, tj.~jsou respektována makra pro akcenty z~originálního
+plainu, která expandují na "\accent" podle kódování CMfontù.
+
+Pokud je toto chování nevyhovující, mù¾ete naèíst pomocí "\input"
+jeden nebo oba dva vý¹e zmínìné soubory (v~libovolném poøadí -- jejich
+definice se nehádají). Pokud naètete oba soubory, pak makra pro
+akcenty expandují na znaky podle kódování, které je aktuálnì nastaveno
+v~makru "\fotenc" ("8z" nebo "8t").
+
+Podívejme se do souborù "ofs-8z.tex" a "ofs-8t.tex" (výraznì kráceno):
+
+\begtt
+%%% Default accents in CM
+\accentdef \` * 8z {\accent 18 } % grave
+\accentdef \' * 8z {\accent 19 } % acute
+\accentdef \v * 8z {\accent 20 } % caron
+\accentdef \u * 8z {\accent 21 } % breve
+...
+%%% Standard characters in plain (redefined here)
+\def\aa{\r a}
+\def\AA{\r A}
+\characterdef \i 8z 16
+\characterdef \j 8z 17
+\characterdef \SS 8z {SS}
+\characterdef \AE 8z 29
+...
+%%% Extra characters from CS-fonts
+\characterdef \promile 8z 141
+\characterdef \varhyphen 8z 156
+\characterdef \flqq 8z 158
+\characterdef \frqq 8z 159
+\characterdef \clqq 8z 254
+\characterdef \crqq 8z 255
+...
+%%% Accented letters from CS fonts
+\accentdef \` A 8z 152
+\accentdef \' A 8z 193
+\accentdef \" A 8z 196
+\accentdef \` a 8z 184
+\accentdef \' a 8z 225
+...
+%%% Default accents in Cork
+\accentdef \` * 8t {\accent 0 }
+\accentdef \' * 8t {\accent 1 }
+\accentdef \^ * 8t {\accent 2 }
+\accentdef \~ * 8t {\accent 3 }
+\accentdef \" * 8t {\accent 4 }
+...
+%%% Standard characters in plain (redefined here)
+\def\aa{\r a}
+\def\AA{\r A}
+\characterdef \i 8t 25
+\characterdef \j 8t 26
+\characterdef \SS 8t 223
+\characterdef \AE 8t 198
+...
+\characterdef \promile 8t {\%\char 24 }
+\characterdef \textpertenthousand 8t {\%\char 24\char 24 }
+...
+%%% Accented letters from Cork encoding
+\accentdef \. i 8t `\i
+\accentdef \u A 8t 128
+\accentdef \k A 8t 129
+\accentdef \' C 8t 130
+\accentdef \v C 8t 131
+...
+\endtt
+
+Myslím, ¾e syntaxe a význam pøíkazù "\characterdef" a "\accentdef" je
+v~této ukázce samovysvìtlující. Pokud ne, odkazuji ètenáøe do
+dokumentace~\cite{ofsdoc}, která do posledního detailu (vèetnì popisu
+jednotlivých fází expanze) vysvìtluje èinnost tìchto pøíkazù.
+
+\LaTeX{}ovému u¾ivateli to mù¾e pøipomínat pøíkazy
+"\DeclareTextSymbol" a "\DeclareTextComposite" a jim podobné, které
+dìlají zhruba toté¾ (jen ponìkud komplikovanìji, nepøehlednìji a
+tì¾kopádnìji).
+
+OFS také poèítá s~mo¾ností, ¾e nìkteré znaky jsou pøidány do extra
+fontu, který s~pùvodním fontem vytváøí uspoøádanou dvojici. Takové
+dvojice metrik jsou pou¾ity napøíklad pro fonty ©tormovy písmolijny,
+proto¾e obsahují více ne¾ 256 znakù. Pøitom by bylo ¹koda nìkteré
+znaky nevyu¾ít. Ke ka¾dé metrice tìchto fontù ("*8z" i "*8t") je
+pøiøazena extra metrika "*6s", obsahující zbylé znaky.
+Pomocí "\characterdef" a "\accentdef" mù¾eme deklarovat pøítomnost
+tìchto znakù v~kódování "6s" (viz soubor "stormenc.tex"). Pokud
+aktuální metrika má k~sobì extra font v~kódování "6s" a je po¾adován
+znak z~tohoto fontu, OFS jej automaticky \uv{vyloví} pomocí
+pøechodného pøepnutí na extra metriku.
+
+
+\kap Deklarace rodin
+%-------------------
+
+Podívejme se nyní do souboru "a35.tex", který deklaruje rodiny pro
+základních 35 \ps{}ových fontù (kráceno):
+
+\begtt
+%%% Times, Helvetica, Courier is in OFS defaults
+
+\ofsdeclarefamily [AvantGarde] {% -------------------- AvantGarde
+ \loadtextfam (Book) pagk\fotenc;%
+ (Demi) pagd\fotenc;%
+ (BookOblique) pagko\fotenc;%
+ (DemiOblique) pagdo\fotenc;;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\ofsdeclarefamily [NewCentury] {% -------------------- NewCenturySchlbk
+ \loadtextfam (Roman) pncr\fotenc;%
+ pncb\fotenc;%
+ pncri\fotenc;%
+ pncbi\fotenc;;%
+ \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}%
+}
+...
+\endtt
+
+Zde je tedy deklarováno zobrazení mezi názvy rodin a metrikami.%
+\footnote{
+ V~OFS pro \LaTeX{} takové soubory neexistují; tam se pouze
+ deklaruje zobrazení mezi (dlouhými) názvy rodin v~OFS a zkratkami
+ rodin v~NFSS.
+}
+Ka¾dá rodina má ètyøi povinné metriky (pro bì¾né ètyøi
+varianty). Metriky jsou zapsány pomocí "\fotenc", aby fungovalo
+pøepínání kódování. Mezi pøedposledním a posledním støedníkem mù¾e být
+uvedeno extra kódování, pokud je font rozlo¾en do dvou metrik (v~tomto
+pøíkladì není). Pøíkazy uvedené v~parametru "\ofsdeclarefamily" se
+provedou pøi ka¾dém pøepnutí rodiny pøíkazem "\setfonts".
+V~ukázce tam máme alternativní definice loga "\TeX", aby toto logo pìknì
+vypadalo v~ka¾dém fontu.
+
+Od verze OFS "Oct 2002" je pøidána mo¾nost pou¾ít nepovinné parametry
+v~argumentech pøíkazu "\loadtextfam". Tyto parametry pí¹eme do kulaté
+závorky a znaèí název varianty, pokud je odli¹ný od bì¾ného názvu.
+Tato informace se pou¾ije v logu a pøi tisku katalogu.
+
+Podívejme se je¹tì do souboru "sjannon.tex" z~podpory ©tormových fontù
+(výpis je zde neúplný):
+
+\begtt
+\ofsdeclarefamily [JannonAntikva] {% -------- Jannon Antikva
+ \loadtextfam sjnr\fotenc;%
+ sjnb\fotenc;%
+ sjnri\fotenc;%
+ sjnbi\fotenc;6s;%
+ \newvariant2 \mr (Medium) sjnm\fotenc;6s;%
+ \newvariant3 \mi (MediumItalic) sjnmi\fotenc;6s;%
+}
+\ofsdeclarefamily [JannonText] {% ------------ Jannon Text
+ \loadtextfam sjnrg\fotenc;%
+ sjnbg\fotenc;%
+ sjnrig\fotenc;%
+ sjnbig\fotenc;6s;%
+ \newvariant2 \mr (Medium) sjnmg\fotenc;6s;%
+ \newvariant3 \mi (MediumItalic) sjnmig\fotenc;6s;%
+}
+...
+\endtt
+%
+Vidíme, ¾e navíc je zde deklarována extra metrika v~kódování~"6s" a ¾e
+se zde deklarují doplòující pøepínaèe variant "\mr" a "\mi" mimo
+základní ètyøi varianty. Podrobnìj¹í vysvìtlení pou¾itých pøíkazù
+ètenáø opìt najde v~dokumentaci~\cite{ofsdoc}.
+
+Jak jsou pomocí expanze "\fotenc" mapovány metriky \CSfont{}ù
+resp. DC~fontù, které v~názvech koncovku "8z" ani "8t" nemají?
+To souvisí rovnì¾ s~tím, ¾e tyto fonty mají pro rùzné velikosti rùzné
+metriky. V~deklaraèních souborech je pak tento problém vyøe¹en
+zpùsobem \uv{dvì mouchy jednou ranou} (viz soubor "ofsdef.tex"):
+
+\begtt
+\registertfm cmr8z - csr10 % metrika pro v¹echny velikosti
+\registertfm cmr8z 0pt-6pt csr5
+\registertfm cmr8z 6pt-7pt csr6
+\registertfm cmr8z 7pt-8pt csr7
+\registertfm cmr8z 8pt-9pt csr8
+\registertfm cmr8z 9pt-10pt csr9
+\registertfm cmr8z 10pt-12pt csr10
+\registertfm cmr8z 12pt-17pt csr12
+\registertfm cmr8z 17pt-* csr17
+...
+\registertfm cmr8t - dcr10 % metrika pro v¹echny velikosti
+...
+\ofsdeclarefamily [CMRoman] {% ------------ Computer Modern Roman
+ \loadtextfam cmr\fotenc;%
+ cmbx\fotenc;%
+ cmti\fotenc;%
+ cmbxti\fotenc;;%
+ \newvariant8 \sl (Slanted) cmsl\fotenc;;%
+}
+\endtt
+%
+Centrálním pøíkazem je zde makro "\registertfm", které mapuje
+neexistující metriky formálnì vytvoøené pomocí expanze "\fotenc" do
+skuteèných metrik. Toto makro také umí registrovat rùzné metriky
+pro rùzné velikosti. Pokud tedy budeme chtít font daný pomocí
+"\setfonts[CMRoman-rm/12.5]", vyvolá se pøi "\fotenc"
+s~hodnotou "8z" metrika "csr12 at12.5pt". \uv{Metrika pro v¹echny
+velikosti} se pou¾ije v~pøípadì, ¾e je velikost fontu deklarovaná
+s~\hbox{prefixem} "scaled", tak¾e "\setfonts[CMRoman-rm/scaled1250]" vyvolá
+metriku "csr10 scaled1250". Ztrácíte-li pøehled o~tom, jaká metrika se
+ve skuteènosti pou¾ila, mù¾ete zapnout logovací pøepínaè
+"\detailfontmessages".
+
+Podíváte-li se do souboru "ofsdef.tex" podrobnìji, mù¾ete si v¹imnout, ¾e
+jsem metriky rodiny "CMRoman" a dal¹ích "CM"~rodin pro kódování~"8t" ponìkud
+odbyl. Registroval jsem je jako metriky DC fontù bez støídání metrik pro
+rùzné velikosti. Nechtìlo se mi to toti¾ vypisovat a nevìdìl jsem, zda
+u¾ivatel tohoto kódování radìji nepou¾ije EC fonty místo DC fontù.
+Ve zmínìném souboru jsou pøíklady, jak by se ta deklarace mìla
+provést. Pokud ji nìkdo dopí¹e (napøíklad pro DC i EC fonty do zvlá¹tních
+souborù), rád ji do balíku OFS zaøadím. Osobnì ale fonty kódované
+v~"8t" nepou¾ívám, tak¾e mì zatím nic nemotivuje to udìlat.
+
+
+\kap Matematické fonty
+%---------------------
+
+Ka¾dý plainista ví, ¾e fonty pro matematiku se sdru¾ují do matematických
+rodin obsahující font pro základní, indexovou a index-indexovou
+velikost. Rovnì¾ ví, ¾e první ètyøi matematické rodiny (s~èíslem 0 a¾~3)
+jsou s~\TeX{}em jistým zpùsobem pevnì významovì svázány a dal¹í rodiny
+se dají deklarovat.
+
+Aby plainista pøi deklarování matematických rodin nemusel psát tøikrát
+za sebou "\font" a potom je¹tì
+"\textfont\rodina=...", "\scriptfont...", atd, je v~OFS k~tomu
+vytvoøena zkratka "\loadmathfam", jak uká¾u za chvíli.
+
+Inicializaci matematických fontù v~OFS pro plain provedeme pomocí
+pøíkazu "\setmath". Dokud tento pøíkaz nepou¾ijeme, jsou matematické
+fonty ve stavu, jak je inicializoval plain. Ve tøech parametrech
+pøíkazu "\setmath" (oddìlených lomítky) dáváme najevo, jakou chceme
+základní velikost, jakou pro indexy a jakou pro indexy
+indexù. Jsou-li tyto parametry prázdné, je pou¾ito relativní zmen¹ení
+podle aktuální velikosti textového fontu pomocí prefixu "mag" takto:
+
+\begtt
+\setmath [//] je toté¾ jako \setmath [mag1.0/mag.7/mag.5]
+\endtt
+
+Pøíkaz "\setmath" vypoèítá po¾adované velikosti a startuje makro pro
+zavedení fontù "\mathfonts". Dále tento pøíkaz startuje makro pro
+inicializaci matematického kódování "\mathchars". Tato makra si mù¾e
+plainista definovat jak chce, nicménì vìt¹inou vyu¾ije ji¾
+pøipravených maker "\defaultmathfonts" a "\defaultmathchars", která
+jsou udìlána tak, ¾e spou¹tìjí rùzné varianty kódu podle hodnoty maker
+"\fomenc" a "\mathversion".
+
+Pøi "\def\fomenc{PS}" (imlicitní hodnota: PostScriptové fonty) se zavedou
+fonty tak, ¾e matematická kurzíva se ztoto¾ní s~aktuální textovou
+kurzívou a podobnì rodina~0 pro èíslice a textové symboly zùstává
+nastavena podle aktuální textové rodiny varianty "\rm".
+Matematické symboly se berou
+(pokud to je mo¾né) z~bì¾nì dostupného \ps{}ového fontu
+"Symbol". Zbytek (napø. natahovací závorky) pak zùstává v~Computer
+Modern. Matematické kódování je pro tuto situaci výraznì
+pozmìnìno obvyklými primitivy "\mathchardef" a podobnými, aby byly
+dosa¾itelné v¹echny znaky plainu. Napøíklad pro øecká písmena musela být
+zavedena nová rodina se sklonìným fontem "Symbol" a pøíkazy typu "\alpha" jsou
+pøekódovány z~pùvodní matematické rodiny~1 na tuto novou rodinu.
+
+Nastavíte-li "\def\fomenc{CM}", pak pøíkaz "\setmath" zavede
+stejné matematické fonty z~rodiny Computer Modern, jako
+v~plainu. Pøíkaz "\setmath[//]" pak pouze aktualizuje velikosti tìchto fontù
+podle velikosti aktuálního textového fontu.
+
+Nakoupíte-li fonty MathTimes, dále naètete soubor "ofsmtdef.tex" (souèástí
+OFS od verze "Jun. 2002") a definujete "\def\fomenc{MT}", pak pøíkaz
+"\setmath" zavede kurzívu a rodinu~0 stejnì jako pøi
+"\def\fomenc{PS}", ale navíc pou¾ije pro {\it v¹echny\/} symboly vèetnì
+natahovacích závorek fonty MathTimes.
+
+Kromì hodnoty "\fomenc" se pøíkaz "\setmath" vìtví i vzhledem
+k~hodnotì makra "\mathversion". Implicitnì OFS poèítá se dvìma
+hodnotami tohoto mak\-ra: "\def\mathversion{normal}" nebo "bold".
+Pøi verzi "bold" jsou naèteny do matematických rodin tuèné alternativy
+fontù, pokud to jde. V¹e názornì vysvìtlí pohled do souboru
+"ofsdef.tex":
+
+\begtt
+\def\defaultmathfonts{\csname load\fomenc\mathversion math\endcsname}
+\def\defaultmathchars{\csname set\fomenc mathchars\endcsname}
+\def\mathfonts{\defaultmathfonts}
+\def\mathchars{\defaultmathchars
+ \let\mathchars=\relax % to protect the twice math-setting
+}
+\def\loadPSnormalmath{%
+ \loadmathfam 0[tenrm/]% Actual Roman font
+ \loadmathfam 1[tenit/]% Actual Italic font
+ \loadmathfam 2[/cmsy]% Standard symbols from CM
+ \noindexsize\loadmathfam 3[tenex/]% Standard extra symbols from CM
+ \chardef\itfam=1 \chardef\bifam=5
+ \loadmathfam \bffam [tenbf/]% Actual Bold font
+ \loadmathfam \bifam [tenbi/]% Actual Bold Italic
+ \newmathfam\symbfam
+ \loadmathfam \symbfam [/psyr]% PostScript Symbol
+ \newmathfam\symbofam
+ \loadmathfam \symbofam [/psyro]% PostScript Symbol Oblique
+}
+\def\loadPSboldmath{%
+ \loadmathfam 0[tenbf/]% Actual Bold font
+ \loadmathfam 1[tenbi/]% Actual Bold-Italic font
+...
+}
+\def\loadCMnormalmath{%
+ \loadmathfam 0[/cmr8z]% Roman font
+ \loadmathfam 1[/cmmi]% Math Italic font
+ \loadmathfam 2[/cmsy]% Standard symbols from CM
+ \noindexsize\loadmathfam 3[/cmex10]% Standard extra symbols from CM
+...
+}
+\def\loadCMboldmath{%
+ \loadmathfam 0[/cmbx8z]% Roman font
+ \loadmathfam 1[/cmmib10]% Math Italic font
+...
+}
+\def\setPSmathchars{%
+ \fontmessage{\ofsmessageheader Math codes are set for PS encoding}%
+ \mathcode`\,="602C
+ \mathcode`\.="002E
+ \delcode`\<="\hex\symbfam E130A
+ \delcode`\>="\hex\symbfam F130B
+ \delcode`\|="\hex\symbfam 7C30C
+ \edef\langle{\delimiter"4\hex\symbfam E130A }%
+ \edef\rangle{\delimiter"5\hex\symbfam F130B }%
+ \mathchardef\alpha "0\hex\symbofam 61
+ \mathchardef\beta "0\hex\symbofam 62
+ \mathchardef\gamma "0\hex\symbofam 67
+...
+}
+\endtt
+
+Chceme-li pøidat nìjaké dal¹í matematické rodiny (v~terminologii NFSS
+matematické abecedy), pak mù¾eme postupovat tøeba takto:
+
+\begtt
+\def\mathfonts{\defaultmathfonts
+ \newmathfam\bbfam
+ \loadmathfam \bbfam [/bbold12]% Dvojitá vertikální kresba
+ \def\bb{\fam\bbfam}%
+}
+\def\mathchars{\defaultmathchars
+ \mathchardef\balpha "0\hex\bbfam 0B
+ \mathchardef\bbeta "0\hex\bbfam 0C
+ ...
+}
+\endtt
+
+Pøíklad z~konce sekce~3 nyní obohatíme o~mo¾nost práce
+s~matematikou v~libovolných velikostech:
+
+\begtt
+\input ofs [ffonts] % Charter je ve skupinì free fonts
+\setfonts [Charter/10pt] % výchozí rodina
+\setmath[//] % inicializace matematiky
+\fontdef\tt [CMTypewriter/mag1.1] % strojopis, korekce støední vý¹ky
+\fontdef\verbtt [CMTypewriter-rm/8] % strojopis pro display ukázky
+\fontdef\small [!/9] % zmen¹ení pro abstrakt a záhlaví
+\addcmd \small {\baselineskip11pt \rm \def\mathversion{normal}\setmath[//]}
+\fontdef\fontsekce [!/12] % pro nadpisy sekcí
+\addcmd \fontsekce {\bf \let\it=\bi \def\mathversion{bold}\setmath[//]}
+\fontdef\fonttitul [!-bf/14.4] % titul
+\endtt
+
+Nyní i v~abstraktech, poznámkách pod èarou a záhlavích je matematika
+ve v¹ech velikostech v¹ech mo¾ných indexù zmen¹ená odpovídajícím
+zpùsobem. Pokud by se matematika mìla pou¾ít v~názvu sekce, pak bude
+také tuèná a správnì veliká.
+
+
+\reference
+
+\bib \url{www.pismolijna.cz}, \url{www.cstug.cz/stormtype}.
+
+\bib \url{ftp://math.feld.cvut.cz/pub/olsak/ofs}.
+
+\bib Petr Ol¹ák. {\it OFS: Ol¹ákùv fontový systém}. 2001.
+ Dokumentace k~balíku je v~souborech "ofsdoc.tex", "ofsdoc.pdf".
+
+\bib Petr Ol¹ák. {\it Jak \TeX{} k~fontùm ze Støe¹ovic pøi¹el}. Zpravodaj
+ Èeskoslovenského sdru¾ení u¾ivatelù \TeX{}u, 4/2001, pp~153--180.
+
+\bye
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs-tx.tex b/Master/texmf-dist/tex/generic/ofs/ofs-tx.tex
new file mode 100644
index 00000000000..b9d184569d9
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs-tx.tex
@@ -0,0 +1,357 @@
+% OFS: TX fonts, math encoding declaration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+\protectreading ofs-tx.tex % This is part of OFS package
+
+\mathencdef\TXSYCmathchars {%
+ \fontmessage{\ofsmessageheader Math symbols are set for TX encoding.}%
+ \mathchardef\mappedfromchar "3\hex\txsycfam 00
+ \def\mappedfrom{\leftarrow\mappedfromchar}%
+ \def\longmappedfrom{\longleftarrow\mappedfromchar}%
+ \mathchardef\Mapstochar "3\hex\txsycfam 01
+ \def\Mapsto{\Mapstochar\Rightarrow}%
+ \def\Longmapsto{\Mapstochar\Longrightarrow}%
+ \mathchardef\Mappedfromchar "3\hex\txsycfam 02
+ \def\Mappedfrom{\Leftarrow\Mappedfromchar}%
+ \def\Longmappedfrom{\Longleftarrow\Mappedfromchar}%
+ \mathchardef\mmapstochar "3\hex\txsycfam 03
+ \def\mmapsto{\mmapstochar\rightarrow}%
+ \def\longmmapsto{\mmapstochar\longrightarrow}%
+ \mathchardef\mmappedfromchar "3\hex\txsycfam 04
+ \def\mmappedfrom{\leftarrow\mmappedfromchar}%
+ \def\longmmappedfrom{\longleftarrow\mmappedfromchar}%
+ \mathchardef\Mmapstochar "3\hex\txsycfam 05
+ \def\Mmapsto{\Mmapstochar\Rightarrow}%
+ \def\Longmmapsto{\Mmapstochar\Longrightarrow}%
+ \mathchardef\Mmappedfromchar "3\hex\txsycfam 06
+ \def\Mmappedfrom{\Leftarrow\Mmappedfromchar}%
+ \def\Longmmappedfrom{\Longleftarrow\Mmappedfromchar}%
+ \mathchardef\medcirc "2\hex\txsycfam 07
+ \mathchardef\medbullet "2\hex\txsycfam 08
+ \mathchardef\varparallel "3\hex\txsycfam 09
+ \mathchardef\varparallelinv "3\hex\txsycfam 0A
+ \mathchardef\nvarparallel "3\hex\txsycfam 0B
+ \mathchardef\nvarparallelinv "3\hex\txsycfam 0C
+ \mathchardef\colonapprox "3\hex\txsycfam 0D
+ \mathchardef\colonsim "3\hex\txsycfam 0E
+ \mathchardef\Colonapprox "3\hex\txsycfam 0F
+ \mathchardef\Colonsim "3\hex\txsycfam 10
+ \mathchardef\doteq "3\hex\txsycfam 11
+ \mathchardef\multimapinv "3\hex\txsycfam 12
+ \mathchardef\multimapboth "3\hex\txsycfam 13
+ \mathchardef\multimapdot "3\hex\txsycfam 14
+ \mathchardef\multimapdotinv "3\hex\txsycfam 15
+ \mathchardef\multimapdotboth "3\hex\txsycfam 16
+ \mathchardef\multimapdotbothA "3\hex\txsycfam 17
+ \mathchardef\multimapdotbothB "3\hex\txsycfam 18
+ \mathchardef\VDash "3\hex\txsycfam 19
+ \mathchardef\VvDash "3\hex\txsycfam 1A
+ \mathchardef\cong "3\hex\txsycfam 1B
+ \mathchardef\preceqq "3\hex\txsycfam 1C
+ \mathchardef\succeqq "3\hex\txsycfam 1D
+ \mathchardef\nprecsim "3\hex\txsycfam 1E
+ \mathchardef\nsuccsim "3\hex\txsycfam 1F
+ \mathchardef\nlesssim "3\hex\txsycfam 20
+ \mathchardef\ngtrsim "3\hex\txsycfam 21
+ \mathchardef\nlessapprox "3\hex\txsycfam 22
+ \mathchardef\ngtrapprox "3\hex\txsycfam 23
+ \mathchardef\npreccurlyeq "3\hex\txsycfam 24
+ \mathchardef\nsucccurlyeq "3\hex\txsycfam 25
+ \mathchardef\ngtrless "3\hex\txsycfam 26
+ \mathchardef\nlessgtr "3\hex\txsycfam 27
+ \mathchardef\nbumpeq "3\hex\txsycfam 28
+ \mathchardef\nBumpeq "3\hex\txsycfam 29
+ \mathchardef\nbacksim "3\hex\txsycfam 2A
+ \mathchardef\nbacksimeq "3\hex\txsycfam 2B
+ \mathchardef\neq "3\hex\txsycfam 2C
+ \let\ne=\neq
+ \mathchardef\nasymp "3\hex\txsycfam 2D
+ \mathchardef\nequiv "3\hex\txsycfam 2E
+ \mathchardef\nsim "3\hex\txsycfam 2F
+ \mathchardef\napprox "3\hex\txsycfam 30
+ \mathchardef\nsubset "3\hex\txsycfam 31
+ \mathchardef\nsupset "3\hex\txsycfam 32
+ \mathchardef\nll "3\hex\txsycfam 33
+ \mathchardef\ngg "3\hex\txsycfam 34
+ \mathchardef\nthickapprox "3\hex\txsycfam 35
+ \mathchardef\napproxeq "3\hex\txsycfam 36
+ \mathchardef\nprecapprox "3\hex\txsycfam 37
+ \mathchardef\nsuccapprox "3\hex\txsycfam 38
+ \mathchardef\npreceqq "3\hex\txsycfam 39
+ \mathchardef\nsucceqq "3\hex\txsycfam 3A
+ \mathchardef\nsimeq "3\hex\txsycfam 3B
+ \mathchardef\notin "3\hex\txsycfam 3C
+ \mathchardef\notni "3\hex\txsycfam 3D
+ \let\notowns=\notni
+ \mathchardef\nSubset "3\hex\txsycfam 3E
+ \mathchardef\nSupset "3\hex\txsycfam 3F
+ \mathchardef\nsqsubseteq "3\hex\txsycfam 40
+ \mathchardef\nsqsupseteq "3\hex\txsycfam 41
+ \mathchardef\coloneqq "3\hex\txsycfam 42
+ \mathchardef\eqqcolon "3\hex\txsycfam 43
+ \mathchardef\coloneq "3\hex\txsycfam 44
+ \mathchardef\eqcolon "3\hex\txsycfam 45
+ \mathchardef\Coloneqq "3\hex\txsycfam 46
+ \mathchardef\Eqqcolon "3\hex\txsycfam 47
+ \mathchardef\Coloneq "3\hex\txsycfam 48
+ \mathchardef\Eqcolon "3\hex\txsycfam 49
+ \mathchardef\strictif "3\hex\txsycfam 4A
+ \mathchardef\strictfi "3\hex\txsycfam 4B
+ \mathchardef\strictiff "3\hex\txsycfam 4C
+ \mathchardef\invamp "2\hex\txsycfam 4D
+ \edef\lbag{\delimiter "4\hex\txsycfam 4E\hex\txexafam 30 }%
+ \edef\rbag{\delimiter "5\hex\txsycfam 4F\hex\txexafam 31 }%
+ \mathchardef\Lbag "4\hex\txsycfam 50
+ \mathchardef\Rbag "5\hex\txsycfam 51
+ \mathchardef\circledless "3\hex\txsycfam 52
+ \mathchardef\circledgtr "3\hex\txsycfam 53
+ \mathchardef\circledwedge "2\hex\txsycfam 54
+ \mathchardef\circledvee "2\hex\txsycfam 55
+ \mathchardef\circledbar "2\hex\txsycfam 56
+ \mathchardef\circledbslash "2\hex\txsycfam 57
+ \mathchardef\lJoin "3\hex\txsycfam 58
+ \mathchardef\rJoin "3\hex\txsycfam 59
+ \mathchardef\Join "3\hex\txsycfam 5A
+ \let\lrJoin=\Join
+ \mathchardef\openJoin "3\hex\txsycfam 5B
+ \mathchardef\lrtimes "3\hex\txsycfam 5C
+ \mathchardef\opentimes "3\hex\txsycfam 5D
+ \mathchardef\Diamond "0\hex\txsycfam 5E
+ \mathchardef\Diamondblack "0\hex\txsycfam 5F
+ \mathchardef\nplus "2\hex\txsycfam 60
+ \mathchardef\nsqsubset "3\hex\txsycfam 61
+ \mathchardef\nsqsupset "3\hex\txsycfam 62
+ \mathchardef\dashleftarrow "3\hex\txsycfam 63
+ \mathchardef\dashrightarrow "3\hex\txsycfam 64
+ \let\dasharrow\dashrightarrow
+ \mathchardef\dashleftrightarrow "3\hex\txsycfam 65
+ \mathchardef\leftsquigarrow "3\hex\txsycfam 66
+ \mathchardef\ntwoheadrightarrow "3\hex\txsycfam 67
+ \mathchardef\ntwoheadleftarrow "3\hex\txsycfam 68
+ \mathchardef\boxast "2\hex\txsycfam 69
+ \mathchardef\boxbslash "2\hex\txsycfam 6A
+ \mathchardef\boxbar "2\hex\txsycfam 6B
+ \mathchardef\boxslash "2\hex\txsycfam 6C
+ \mathchardef\Wr "2\hex\txsycfam 6D
+ \mathchardef\lambdaslash "0\hex\txsycfam 6E
+ \mathchardef\lambdabar "0\hex\txsycfam 6F
+ \mathchardef\varclubsuit "0\hex\txsycfam 70
+ \mathchardef\vardiamondsuit "0\hex\txsycfam 71
+ \mathchardef\varheartsuit "0\hex\txsycfam 72
+ \mathchardef\varspadesuit "0\hex\txsycfam 73
+ \mathchardef\Nearrow "3\hex\txsycfam 74
+ \mathchardef\Searrow "3\hex\txsycfam 75
+ \mathchardef\Nwarrow "3\hex\txsycfam 76
+ \mathchardef\Swarrow "3\hex\txsycfam 77
+ \mathchardef\Top "0\hex\txsycfam 78
+ \mathchardef\Bot "0\hex\txsycfam 79
+ \mathchardef\Perp "3\hex\txsycfam 79
+ \mathchardef\leadstoext "3\hex\txsycfam 7A
+ \mathchardef\leadsto "3\hex\txsycfam 7B
+ \mathchardef\sqcupplus "2\hex\txsycfam 7C
+ \mathchardef\sqcapplus "2\hex\txsycfam 7D
+ \edef\llbracket{\delimiter "4\hex\txsycfam 7E\hex\txexafam 12 }%
+ \edef\rrbracket{\delimiter "5\hex\txsycfam 7F\hex\txexafam 13 }%
+ \mathchardef\boxright "3\hex\txsycfam 80
+ \mathchardef\boxleft "3\hex\txsycfam 81
+ \mathchardef\boxdotright "3\hex\txsycfam 82
+ \mathchardef\boxdotleft "3\hex\txsycfam 83
+ \mathchardef\Diamondright "3\hex\txsycfam 84
+ \mathchardef\Diamondleft "3\hex\txsycfam 85
+ \mathchardef\Diamonddotright "3\hex\txsycfam 86
+ \mathchardef\Diamonddotleft "3\hex\txsycfam 87
+ \mathchardef\boxRight "3\hex\txsycfam 88
+ \mathchardef\boxLeft "3\hex\txsycfam 89
+ \mathchardef\boxdotRight "3\hex\txsycfam 8A
+ \mathchardef\boxdotLeft "3\hex\txsycfam 8B
+ \mathchardef\DiamondRight "3\hex\txsycfam 8C
+ \mathchardef\DiamondLeft "3\hex\txsycfam 8D
+ \mathchardef\DiamonddotRight "3\hex\txsycfam 8E
+ \mathchardef\DiamonddotLeft "3\hex\txsycfam 8F
+ \mathchardef\Diamonddot "0\hex\txsycfam 90
+ \mathchardef\circleright "3\hex\txsycfam 91
+ \mathchardef\circleleft "3\hex\txsycfam 92
+ \mathchardef\circleddotright "3\hex\txsycfam 93
+ \let\circledotright\circleddotright
+ \mathchardef\circleddotleft "3\hex\txsycfam 94
+ \let\circledotleft\circleddotleft
+ \mathchardef\multimapbothvert "3\hex\txsycfam 95
+ \mathchardef\multimapdotbothvert "3\hex\txsycfam 96
+ \mathchardef\multimapdotbothBvert "3\hex\txsycfam 97
+ \mathchardef\multimapdotbothAvert "3\hex\txsycfam 98
+}
+\mathencdef\TXMIAmathchars {%
+ \mathchardef\alphaup "0\hex\txmiafam 0B
+ \mathchardef\betaup "0\hex\txmiafam 0C
+ \mathchardef\gammaup "0\hex\txmiafam 0D
+ \mathchardef\deltaup "0\hex\txmiafam 0E
+ \mathchardef\epsilonup "0\hex\txmiafam 0F
+ \mathchardef\zetaup "0\hex\txmiafam 10
+ \mathchardef\etaup "0\hex\txmiafam 11
+ \mathchardef\thetaup "0\hex\txmiafam 12
+ \mathchardef\iotaup "0\hex\txmiafam 13
+ \mathchardef\kappaup "0\hex\txmiafam 14
+ \mathchardef\lambdaup "0\hex\txmiafam 15
+ \mathchardef\muup "0\hex\txmiafam 16
+ \mathchardef\nuup "0\hex\txmiafam 17
+ \mathchardef\xiup "0\hex\txmiafam 18
+ \mathchardef\piup "0\hex\txmiafam 19
+ \mathchardef\rhoup "0\hex\txmiafam 1A
+ \mathchardef\sigmaup "0\hex\txmiafam 1B
+ \mathchardef\tauup "0\hex\txmiafam 1C
+ \mathchardef\upsilonup "0\hex\txmiafam 1D
+ \mathchardef\phiup "0\hex\txmiafam 1E
+ \mathchardef\chiup "0\hex\txmiafam 1F
+ \mathchardef\psiup "0\hex\txmiafam 20
+ \mathchardef\omegaup "0\hex\txmiafam 21
+ \mathchardef\varepsilonup "0\hex\txmiafam 22
+ \mathchardef\varthetaup "0\hex\txmiafam 23
+ \mathchardef\varpiup "0\hex\txmiafam 24
+ \mathchardef\varrhoup "0\hex\txmiafam 25
+ \mathchardef\varsigmaup "0\hex\txmiafam 26
+ \mathchardef\varphiup "0\hex\txmiafam 27
+ %
+ \mathchardef\varg "0\hex\txmiafam 31
+ \mathchardef\vary "0\hex\txmiafam 32
+ \mathchardef\varv "0\hex\txmiafam 33
+ \mathchardef\varw "0\hex\txmiafam 34
+ %
+ \mathchardef\varBbbk "0\hex\txmiafam AB
+}
+\mathencdef\TXEXAmathchars {%
+ \mathchardef\bignplus "1\hex\txexafam 00
+ \mathchardef\bigsqcupplus "1\hex\txexafam 02
+ \mathchardef\bigsqcapplus "1\hex\txexafam 04
+ \mathchardef\bigsqcap "1\hex\txexafam 06
+ \mathchardef\oiintop "1\hex\txexafam 08
+ \def\oiint{\oiintop\nolimits}
+ \mathchardef\ointctrclockwiseop "1\hex\txexafam 0A
+ \def\ointctrclockwise{\ointctrclockwiseop\nolimits}
+ \mathchardef\ointclockwiseop "1\hex\txexafam 0C
+ \def\ointclockwise{\ointclockwiseop\nolimits}
+ \mathchardef\sqintop "1\hex\txexafam 0E
+ \def\sqint{\sqintop\nolimits}
+ \mathchardef\varprod "1\hex\txexafam 10
+ %\edef\llbracket{\delimiter "4\hex\txsycfam 7E\hex\txexafam 12 }%
+ %\edef\rrbracket{\delimiter "5\hex\txsycfam 7F\hex\txexafam 13 }%
+ \mathchardef\brecext "0\hex\txexafam 20
+ \mathchardef\iintop "1\hex\txexafam 21
+ \def\iint{\iintop\nolimits}
+ \mathchardef\iiintop "1\hex\txexafam 23
+ \def\iiint{\iiintop\nolimits}
+ \mathchardef\iiiintop "1\hex\txexafam 25
+ \def\iiiint{\iiiintop\nolimits}
+ \mathchardef\idotsintop "1\hex\txexafam 27
+ \def\idotsint{\idotsintop\nolimits}
+ \mathchardef\oiiintop "1\hex\txexafam 29
+ \def\oiiint{\oiiintop\nolimits}
+ \mathchardef\varointctrclockwiseop "1\hex\txexafam 2B
+ \def\varointctrclockwise{\varointctrclockwiseop\nolimits}
+ \mathchardef\varointclockwiseop "1\hex\txexafam 2D
+ \def\varointclockwise{\varointclockwiseop\nolimits}
+ \mathchardef\fintop "1\hex\txexafam 3E
+ \def\fint{\fintop\nolimits}
+ \mathchardef\oiintctrclockwiseop "1\hex\txexafam 40
+ \def\oiintctrclockwise{\oiintctrclockwiseop\nolimits}
+ \mathchardef\varoiintclockwiseop "1\hex\txexafam 42
+ \def\varoiintclockwise{\varoiintclockwiseop\nolimits}
+ \mathchardef\oiintclockwiseop "1\hex\txexafam 48
+ \def\oiintclockwise{\oiintclockwiseop\nolimits}
+ \mathchardef\varoiintctrclockwiseop "1\hex\txexafam 4A
+ \def\varoiintctrclockwise{\varoiintctrclockwiseop\nolimits}
+ \mathchardef\oiiintctrclockwiseop "1\hex\txexafam 44
+ \def\oiiintctrclockwise{\oiiintctrclockwiseop\nolimits}
+ \mathchardef\varoiiintclockwiseop "1\hex\txexafam 46
+ \def\varoiiintclockwise{\varoiiintclockwiseop\nolimits}
+ \mathchardef\oiiintclockwiseop "1\hex\txexafam 4C
+ \def\oiiintclockwise{\oiiintclockwiseop\nolimits}
+ \mathchardef\varoiiintctrclockwiseop "1\hex\txexafam 4E
+ \def\varoiiintctrclockwise{\varoiiintctrclockwiseop\nolimits}
+ \mathchardef\sqiintop "1\hex\txexafam 50
+ \def\sqiint{\sqiintop\nolimits}
+ \mathchardef\sqiiintop "1\hex\txexafam 52
+ \def\sqiiint{\sqiiintop\nolimits}
+}
+\mathencdef\TXmathmacros {%
+ \def\lgroup{\delimiter"4\hex\bffam 2833A }% extensible ( with sharper tips
+ \def\rgroup{\delimiter"5\hex\bffam 2933B }% extensible ) with sharper tips
+ \def\bracevert{\delimiter"\hex\ttfam 7C33E }% the vertical bar that extends braces
+ \let\ori@joinrel=\joinrel
+ \def\joinrel{\mathrel{\mkern-2.5mu}}% -3mu in plain TeX
+ %
+ \def\varmathbb ##1{% \varmathbb {ABC..} use bb symbols from txmia
+ \ifx\expandaction\noexpand
+ \noexpand\varmathbb{##1}%
+ \else
+ \csname fragilecommand!\endcsname
+ \bgroup
+ \count2=`A \count3="0\hex\txmiafam 81
+ \loop \mathcode \count2=\count3 \relax
+ \csname ifnum\endcsname \count2<`Z
+ \advance\count2 by1 \advance\count3 by1 \repeat
+ ##1%
+ \egroup
+ \fi
+ }%
+ \def\mathfrak ##1{{\fam\txmiafam ##1}}%
+ %
+ \def\ori@not=\not
+ \def\not ##1{% % \not\XXX expands to \notXXX or \nXXX or \mathchar"3236 \XXX
+ \ifx ##1=\ne\else
+ \ifx ##1<\nless\else
+ \ifx ##1>\ngtr\else
+ \runtxnot ##1\fi\fi\fi
+ }%
+ \def\runtxnot {\ifx\expandaction\noexpand \noexpand\not
+ \else \csname fragilecommand!\endcsname
+ \expandafter \trytxnot
+ \fi
+ }%
+ \def\trytxnot ##1{\savetokenname ##1\tmpa
+ \expandafter \ifx \csname n\tmpa\endcsname \relax
+ \expandafter \ifx \csname not\tmpa\endcsname \relax
+ \mathchar"3236 \expandafter \expandafter \expandafter ##1%
+ \else
+ \csname not\tmpa\endcsname
+ \fi
+ \else
+ \csname n\tmpa\endcsname
+ \fi
+ }%
+ % re-definitions of math versions of \ddots, \vdots
+ \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hbox{$\m@th.$}\hbox{$\m@th.$}\hbox{$\m@th.$}}}%
+ \def\ddots{\mathinner{\mkern1mu\raise7\p@
+ \vbox{\kern7\p@\hbox{$\m@th.$}}\mkern2mu
+ \raise4\p@\hbox{$\m@th.$}\mkern2mu\raise\p@\hbox{$\m@th.$}\mkern1mu}}%
+ % re-definition of \root macro
+ \let\ori@r@@t=\r@@t
+ \def\r@@t##1##2{\setbox\z@\hbox{$\m@th##1\sqrt{##2}$}\dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \mkern6mu\raise.68\dimen@\copy\rootbox \mkern-9mu\box\z@}%
+ % re-definitions of \downbracefill, \upbracefill to use \bracext from txexa
+ \let\ori@downbracefill=\downbracefill \let\ori@upbracefill=\upbracefill
+ \def\downbracefill{$\m@th
+ \braceld\mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu%
+ \braceru\bracelu
+ \mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu\bracerd$}%
+ \def\upbracefill{$\m@th
+ \bracelu\mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu%
+ \bracerd\braceld
+ \mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu\braceru$}%
+ \def\mathcharsback{%
+ \let\joinrel \ori@joinrel
+ \let\not \ori@not
+ \let\r@@t \ori@r@@t
+ \let\downbracefill \ori@downbracefill
+ \let\upbracefill \ori@upbracefill}%
+}
+\endinput
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs.sty b/Master/texmf-dist/tex/generic/ofs/ofs.sty
new file mode 100644
index 00000000000..6bac96bbc5f
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs.sty
@@ -0,0 +1,301 @@
+
+%%% OFS: Olsak's Font System based on NFSS + LaTeX macros
+%%% Jul 2001 Petr Olsak
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% see ofsdoc.tex for more details
+
+\NeedsTeXFormat{LaTeX2e} % I don't like LaTeX, the plain macro is more clean.
+ % See the variant of my macros ofs.tex for plain.
+ % But, some users ask for LaTeX style files :-((
+
+%\ProvidesPackage{ofs}[2001/07/01 OFS based on NFSS]
+%\ProvidesPackage{ofs}[2002/10/24 OFS based on NFSS]
+% \addcmd added
+\ProvidesPackage{ofs}[2003/02/25 OFS based on NFSS]
+% \setfonts {\bgroup \catcode`\-=12 ... by Z. Wagner added
+
+\def\OFSversion{Oct. 2002}
+\typeout{OFS (Olsak's Font System) based on NFSS initialized.
+ <\OFSversion>}
+
+%%%% \fontusage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\bgroup \catcode`\#=12
+ \catcode`\{=12 \catcode`}=12 \catcode`\X=1 \catcode`\Z=2
+ \catcode`\^^M=14 \catcode`\ =12 \catcode`\|=0\catcode`\\=12%
+|gdef|fontusageX
+|begingroup
+|typeoutX%---------------------------------------------------------------
+\fontusage: ============ Olsak's Font System, usage: ===============^^J
+\usepackage [sjannon, sdynamo] {ofs} ... for example^^J
+\showfonts ... shows all loaded font families (by previous \usepackage)^^J
+\setfonts [Family/] ... local switch to the new family, after this, the^^J
+ \rm, \bf, \it, bi will switch to the variants. The current size is used.^^J
+\setfonts [/size] ... local switch to the new size of fonts, the family is^^J
+ not changed. The "size" has the following possible formats:^^J
+ at<dimen> ... the same as \font\something=file at<dimen>^^J
+ <dimen> ... the same as at<dimen>^^J
+ <number> ... the same as at<number>pt^^J
+ scaled<number> ... the same as \font\something=file scaled<number>^^J
+ mag<decimal-number> fonts will be magnified by given coefficient^^J
+ depend on current size of the fonts.^^J
+\setfonts [Family/size] ... switch to the new family at given size^^J
+\setfonts [Family-vr/] ... switch to the specified font, the current size^^J
+ is used. The "vr" is two-letter acronym for variants: rm, bf, it, bi.^^J
+\setfonts [Family-vr/size] ... switch to the specified font.^^J
+\fontdef\name [Family/size] ... same as \gdef\name{\setfonts[Family/size]}^^J
+ The "Family" or "size" parameter may be empty.^^J
+\OFSfamily [Family] ... expands to internal NFSS family name.^^J
+\OFSfamilydefault [Family] ... same as \edef\familydefault{\OFSfamily[Family]}
+Z%-----------------------------------------------------------------------
+|endgroup
+Z
+|egroup
+
+
+%%%% \rm, \bf, \it, bi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\bi{\fontseries{b}\fontshape{it}\selectfont}
+\def\bf{\fontseries{b}\fontshape{n}\selectfont}
+\def\it{\fontseries{m}\fontshape{it}\selectfont}
+\def\rm{\fontseries{m}\fontshape{n}\selectfont}
+\def\bfdefault{b}
+
+%%%% Macros used in declaration files %%%%%%%%%%%%%%%%%%
+
+\def\ofs@listfamilies{}
+\def\ofs@messageheader{OFS (l.\the\inputlineno): }
+\def\ofs@unknownfam{undefined}
+
+\def\OFSdeclarefamily [#1] #2{%
+ \OFSputfamlist {^^J \space\space[#1/]}%
+ \expandafter \gdef\csname ofs-fam:#1\endcsname {#2}%
+ \expandafter \gdef\csname ofs-fam:#2\endcsname {#2}%
+ \bgroup
+ \count2=18
+ \def\tmpa ##1{\if:##1\let\tmpa=\relax
+ \else\advance\count2 by-1 \fi\tmpa}\tmpa #1:%
+ \def\tmpa {\ifnum\count2>0 \advance\count2 by-1 \OFSputfamlist{ }%
+ \else\let\tmpa=\relax \fi\tmpa}\tmpa
+ \egroup
+}
+\def\OFSfamily [#1]{%
+ \expandafter \ifx\csname ofs-fam:#1\endcsname \relax
+ \ofs@unknownfam
+ \else \csname ofs-fam:#1\endcsname
+ \fi
+}
+\def\OFSfamilydefault [#1]{%
+ \edef\tmpa{\OFSfamily[#1]}%
+ \ifx\tmpa\ofs@unknownfam
+ \typeout{\ofs@messageheader WARNING. The family is not set.^^J
+ The family name [#1] is not known in the list:
+ \ofs@listfamilies}%
+ \else
+ \edef\familydefault{\tmpa}%
+ \fi
+}
+\def\OFSputfamlist #1{%
+ \xdef\ofs@listfamilies {\ofs@listfamilies #1}%
+}
+\def\OFSextraencoding #1{%
+ \expandafter \ifx \csname ofs-enc:#1\endcsname \relax
+ \edef\ofs@extraencoding{#1}%
+ \lowercase{\input{#1ini.def}}\relax
+ \expandafter \def \csname ofs-enc:#1\endcsname {}%
+ \fi
+}
+\def\OFSnormalvariants{\OFSputfamlist{%
+ \string\rm, \string\bf, \string\it, \string\bi}}
+
+%%%% Defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\OFSputfamlist {^^Jdefaults:}
+\OFSdeclarefamily [CMRoman] {cmr} \OFSnormalvariants
+\OFSputfamlist {, \string\sl}
+
+\OFSdeclarefamily [CMSans] {cmss}
+\OFSputfamlist {\string\rm, \string\bf, \string\it, \space-}
+
+\OFSdeclarefamily [CMTypewriter] {cmtt}
+\OFSputfamlist {\string\rm, \space- , \string\it, \space- , \string\sl}
+
+\OFSdeclarefamily [Times] {ptm} \OFSnormalvariants
+
+\OFSdeclarefamily [Helvetica] {phv} \OFSnormalvariants
+\OFSputfamlist{, \string\nrm, \string\nbf, \string\nit, \string\nbi}
+
+\OFSdeclarefamily [Courier] {pcr} \OFSnormalvariants
+
+\def\sl{\fontseries{m}\fontshape{sl}\selectfont}
+\def\nrm{\fontseries{mc}\fontshape{n}\selectfont}
+\def\nbf{\fontseries{bc}\fontshape{n}\selectfont}
+\def\nit{\fontseries{mc}\fontshape{it}\selectfont}
+\def\nbi{\fontseries{bc}\fontshape{it}\selectfont}
+
+
+%%%% \showfonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\showfonts{\typeout{\ofs@messageheader
+ The list of known font families:\ofs@listfamilies}}
+
+%%%% \setfonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setfonts {\bgroup \catcode`\-=12 \ofs@setfonts}
+\def\ofs@setfonts [#1/#2]{\egroup \OFSsetfonts{#1}{#2}}
+\DeclareRobustCommand \OFSsetfonts [2]{%
+ \edef\tmpa{#1}\expandafter \ofs@readfamvariant\tmpa--:%
+ \ifx\famvariant\empty
+ \ofs@setfontfamily [#1/#2]%
+ \else
+ \ofs@setsinglefont [#1/#2]%
+ \fi
+ \ignorespaces
+}
+\def\ofs@readfamvariant #1-#2-#3:{\def\tmpb{#1}\def\famvariant{#2}}
+
+\def\ofs@setfontfamily [#1/#2]{%
+ \if |#1|\else
+ \edef\tmpa{\OFSfamily[#1]}%
+ \ifx\tmpa\ofs@unknownfam
+ \typeout{\ofs@messageheader WARNING. The family is not set.^^J
+ The family name [#1/] is not known in the list:
+ \ofs@listfamilies}%
+ \else
+ \fontfamily{\tmpa}%
+ \fi
+ \fi
+ \if |#2|\else
+ \edef\tmpa{#2}\expandafter\ofs@readfontsize \tmpa:%
+ \fontsize{\tmpa}{\f@baselineskip}%
+ \fi
+ \ofs@selectfont
+}
+\let\ofs@selectfont=\selectfont
+
+\def\ofs@setsinglefont [#1-#2/#3]{%
+ \let\ofs@selectfont=\relax
+ \ofs@setfontfamily [#1/#3]\let\ofs@selectfont=\selectfont
+ \csname #2\endcsname
+}
+\def\ofs@readfontsize #1#2:{\if a#1\ofs@readfontsizeat #1#2:%
+ \else \if s#1\ofs@readfontsizescaled #1#2:%
+ \else \if m#1\ofs@readfontsizemag #1#2..:%
+ \fi\fi\fi
+}
+\def\ofs@readfontsizeat at#1:{\def\tmpa{#1}}
+\def\ofs@readfontsizescaled scaled#1:{\dimen0=0.01pt \dimen0=#1\dimen0
+ \edef\tmpa{\the\dimen0}}
+\def\ofs@readfontsizemag mag#1.#2.#3:{\dimen0=\f@size pt
+ \if|#2|\if|#3|%
+ \errmessage{OFS: "mag" need the decimal parameter with decimal point}%
+ \fi\fi
+ \dimen0 =#1.#2 \dimen0
+ \advance\dimen0 by7sp % rounding to three digits after decimal point
+ \ifdim\dimen0<10pt \edef\tmpa{+\the\dimen0}\else \edef\tmpa{\the\dimen0}\fi
+ \dimen0 =\expandafter \ofs@readsixdigits \tmpa :::::|pt
+ \edef\tmpa{\the\dimen0}%
+}
+\def\ofs@readsixdigits #1#2#3#4#5#6#7#8#9|{%
+ \if:#5#1#2\else\if:#6#1#2#3\else\if:#7#1#2#3#4\else
+ \if:#8#1#2#3#4#5\else#1#2#3#4#5#6\fi\fi\fi\fi
+}
+
+%%%% \fontdef %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fontdef #1[#2/#3]{\def\tmpc{!}%
+ \edef\tmpa{#3}\ifx \tmpa\tmpc \edef\tmpa{\f@size}\fi
+ \edef\tmpb{#2}\expandafter \ofs@readfamvariant\tmpb--:%
+ \ifx \tmpb\tmpc
+ \ifx\famvariant\empty
+ \xdef #1{\noexpand\setfonts [\f@family/\tmpa]}%
+ \else
+ \xdef #1{\noexpand\setfonts [\f@family-\famvariant/\tmpa]}%
+ \fi
+ \else
+ \xdef #1{\noexpand\setfonts [#2/\tmpa]}%
+ \fi
+}
+
+%%%% \ifknownfam %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifofs@familypresent
+
+\def\ifknownfam [#1]{%
+ \expandafter \ifx\csname ofs-fam:#1\endcsname \relax
+ \expandafter \ofs@familypresentfalse
+ \else
+ \expandafter \ofs@familypresenttrue
+ \fi
+ \ifofs@familypresent
+}
+
+%%%% \addcmd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\addcmd #1#2{\expandafter\def\expandafter\tmpa\expandafter{#1}%
+ \def\tmpb{#1}%
+ \ifx\tmpa\tmpb % the #1 is not a macro
+ \expandafter\let\csname \string#1-original\endcsname =#1%
+ \expandafter\def\expandafter #1\expandafter{%
+ \csname\string#1-original\endcsname #2}%
+ \else % the #1 is a macro
+ \expandafter\def\expandafter #1\expandafter{#1#2}%
+ \fi
+}
+
+%%%% Extra encoding %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setextrafont{\ifx\ofs@extraencoding\undefined
+ \typeout{\ofs@messageheader WARNING. Extra encoding is no declared by
+ \string\OFSextraencoding.}%
+ \else \fontencoding{\ofs@extraencoding}\selectfont \fi
+}
+\def\extchar{\afterassignment\ofs@doextchar \chardef\tmpa=}
+\def\ofs@doextchar{{\setextrafont\tmpa}}
+
+
+%%%% Accents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\DeclareRobustCommand \accentabove [3]{%
+ \def\tmpa{#3}%
+ \ifx \tmpa\empty #1\else
+ \leavevmode\vbox{%
+ \setbox0=\hbox{#3}\setbox2=\hbox{#1}%
+ \dimen0=\ht0 \advance\dimen0 by\dp2 \advance\dimen0 by#2\relax
+ \offinterlineskip
+ \halign {##\cr
+ \hidewidth\slantcorrection{\dimen0}\box2 \hidewidth\cr
+ \noalign{\kern#2}\box0 \cr}}%
+ \fi
+}
+\DeclareRobustCommand \accentbelow [3]{%
+ \def\tmpa{#3}%
+ \ifx \tmpa\empty #1\else
+ \leavevmode\vtop{%
+ \setbox0=\hbox{#3}\setbox2=\hbox{#1}%
+ \dimen0=-\dp0 \advance\dimen0 by-\ht2 \advance\dimen0 by-#2\relax
+ \offinterlineskip
+ \halign {##\cr \box0 \cr\noalign{\kern#2}%
+ \hidewidth \slantcorrection{\dimen0}%
+ \dimen0=\dp2 \ifdim\dimen0<.2ex \dimen0=.2ex \fi
+ \vbox to\dimen0{\hbox{\box2}\vss}\hidewidth\cr}}%
+ \fi
+}
+\def\slantcorrection #1{\dimen0=#1\relax
+ \dimen0 =\strip@pt \fontdimen1\the\font \dimen0
+ \kern 2\dimen0
+}
+
+
+%%%% Options = OFS-style files %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\OFSprocessoptions=\relax
+\DeclareOption *{\input{\CurrentOption.sty}}
+\ProcessOptions\relax
+\let\OFSprocessoptions=\undefined
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/ofs.tex b/Master/texmf-dist/tex/generic/ofs/ofs.tex
new file mode 100644
index 00000000000..e925feb0f97
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofs.tex
@@ -0,0 +1,1184 @@
+%%%% OFS: Olsak's Font System based on plain macros
+%%%% Jun 2001 Petr Olsak
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%% See the ofsdoc.tex for more details
+
+\ifx\setfonts\undefined\else \expandafter\endOFSmacro \fi
+
+%\def\OFSversion{Nov. 2001} % First version released
+%\def\OFSversion{Jun. 2002} % The \savefontid \restorefontid added
+%\def\OFSversion{Oct. 2002} % The (Variant) in \loadtextfam introduced
+ % \addcmd introduced
+ % \def\relax{} in \setfosize macro added
+ % \ifx\sgfamily\newfamily added in \setfontfamily
+%\def\OFSversion{Feb. 2004} % The encoding-dependend macros improved
+ % -- see new section 3.5 in ofsdoc.tex
+ % \bigsymbofont used for \fomenc PS in ofsdef.tex
+ % \ofshexbox introduced
+ % \registerenc introduced
+ % Fam-var: "var" can be in in arbitrary catcode
+ % \ofsremovefromlist introduced
+%\def\OFSversion{Mar. 2004} % \characterdef keeps sequences defined already
+ % \tryloadenc is called from \loadtextfam now
+ % \listfamilies re-implemented -> \ofslistfamilies
+\def\OFSversion{May 2004} % \ofscopyright defined in ofsdef.tex
+ % \plaincatcodes defined and used in \input ofs-*
+ % \safelet introduced
+ % space not required after <char> in \accentdef
+ % \showfonts lists only registered families
+ % \loadmathfam allows [-<variant>/] parameter
+ % \registertfm <name> - - introduced
+ % \lastfam + \mathencread + \mathencdef introduced
+ % \protectreading introduced
+
+%%%% Basic settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newlinechar=`^^J
+\def\ofslistfamilies{}
+
+\message{OFS (Olsak's Font System) based on plain initialized.
+ <\OFSversion>}
+\def\fosize{at10pt} % default font size
+\def\currentfamily{CMRoman} % default font family
+\ifx\fotenc\undefined \def\fotenc{8z}\fi % default font encoding
+\def\extraenc{} % default extra encoding
+
+\chardef\bifam=5 % \slfam=5, but it is not usuall math. family
+
+\def\rm {\fam0 \let\currentvariant M\tenrm}
+\def\bf {\fam\bffam \let\currentvariant F\tenbf}
+\def\it {\fam\itfam \let\currentvariant T\tenit}
+\def\bi {\fam\bifam \let\currentvariant I\tenbi} \let\tenbi=\relax
+\let\currentvariant=M
+
+%%%% The \fontusage macro %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\bgroup \catcode`\#=12
+ \catcode`\{=12 \catcode`}=12 \catcode`\X=1 \catcode`\Z=2
+ \catcode`\^^M=14 \catcode`\ =12 \catcode`\|=0\catcode`\\=12
+|gdef|fontusageX
+|begingroup
+|immediate|write16X%---------------------------------------------------
+\fontusage: ============== Olsak's Font System, usage: =================^^J
+\input ofs [sjannon, sdynamo, a35] \loadingenc=1 ... for example^^J
+\showfonts ... shows all loaded font families (by previous \input)^^J
+\setfonts [Family/] ... local switch to the new family, after this, the^^J
+ \rm, \bf, \it, bi will switch to the variants. The current size is used.^^J
+\setfonts [/size] ... local switch to the new size of fonts, the family is^^J
+ not changed. The "size" has the following possible formats:^^J
+ at<dimen> ... the same as \font\something=file at<dimen>^^J
+ <dimen> ... the same as at<dimen>^^J
+ <number> ... the same as at<number>pt^^J
+ scaled<number> ... the same as \font\something=file scaled<number>^^J
+ mag<decimal-number> fonts will be magnified by given coefficient^^J
+ depend on current size of the fonts.^^J
+\setfonts [Family/size] ... switch to the new family at given size^^J
+\setfonts [Family-bf/size] ... switch to the specified font.^^J
+\fontdef\name [Family/size] ... same as \gdef\name{\setfonts[Family/size]}^^J
+ The "Family" or "size" parameter may be empty.^^J
+\fontdef\name [Family-vr/size] ... \name is fixed-font switch iff:^^J
+ "size" is no empty and no mag<dec-number>.^^J
+ Fixed-font switch "\name" is implemented as \global\font\name=file.^^J
+\setmath [size/size/size] ... set math it/rm as current it/rm + use PS Symbol^^J
+\nofontmessages, \logfontmessages, \displayfontmessages, \detailfontmessages^^J
+ ... the levels of log.
+Z%-----------------------------------------------------------------------
+|endgroup
+Z
+|egroup
+
+
+%%%% The fragile/robust story %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\bgroup \catcode`\#=12 \catcode`\|=0 \catcode`\\=12
+|gdef|fragilecommand{%
+ |begingroup
+ |def|spc{|space|space|space|space|space}%
+ |message
+ { ERROR !! The fragile command in the toc/ind/aux or similar file.^^J
+ You can solve this problem by the following steps:^^J
+ 1. Remove the auxiliary file with this command.^^J
+ 2. Include the following macro code into your document header:^^J
+ |spc \let\orishipout=\shipout^^J
+ |spc \def\shipout#1#2{\setbox0=#1{#2}\bgroup^^J
+ |spc |spc \let\expandaction=\noexpand \orishipout\box0 \egroup}^^J
+ 3. TeX your document again and again...^^J
+ See the OFS documentation for more info.^^J}%
+ |errmessage{The fragile command in auxiliary file}%
+ |endgroup
+}
+|egroup
+
+\edef\tmpc{\the\catcode`\|}\catcode`\|=12 %% ConTeXt sets \catcode`\|=13
+% but we need it nonactive because of \if|#2| constructions below.
+
+%%%% The macros used in declaration files %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\ofsputfamlist #1{%
+ \expandafter \gdef\expandafter \ofslistfamilies
+ \expandafter{\ofslistfamilies \ofslisttext{#1}}%
+}
+\def\ofsdeclarefamily [#1] #2{%
+ \expandafter \ifx \csname fam!.#1\endcsname \relax \else
+ \ofsremovefromlist {#1}\fi
+ \expandafter \gdef \csname fam!.#1\endcsname {#2}%
+ \expandafter\expandafter\expandafter \gdef
+ \expandafter\expandafter\expandafter \ofslistfamilies
+ \expandafter\expandafter\expandafter {\expandafter\ofslistfamilies
+ \expandafter \ofslistfamily \csname fam!.#1\endcsname}%
+ \edef\declaredfamily{#1}%
+}
+% \ofslistfamilies includes (without spaces):
+% \ofslisttext {text1} \ofslistfamily \fam!.Family1 \ofslistfamily \fam!.Family2
+% ... etc. \ofslisttext {text2} \ofslistfamily \fam!.Family ... etc.
+
+\def\loadtextfam #1;#2;#3;#4;#5;{\tryloadenc{#5}%
+ \def\ofslistvariants{}%
+ \ofsloadfont {\currentfamily-rm}{tenrm}{#1}{M}{#5}{}%
+ \ofsloadfont {\currentfamily-bf}{tenbf}{#2}{F}{#5}{Bold}%
+ \ofsloadfont {\currentfamily-it}{tenit}{#3}{T}{#5}{Italic}%
+ \ofsloadfont {\currentfamily-bi}{tenbi}{#4}{I}{#5}{BoldItalic}%
+ \fontmessage{\ofsmessageheader\ofslistvariants}%
+ \def\ofslistvariants{}%
+}
+\def\savefontid #1{% % The font identifier is stored in TeX by
+ % the last \font primitive used for this font
+ \expandafter \gdef % but I need to store the first one.
+ \csname fn:\expandafter\fontname\csname#1\endcsname\endcsname{#1}%
+}
+\def\restorefontid #1{\expandafter
+ \ifx \csname fn:\expandafter\fontname\csname#1\endcsname\endcsname \relax
+ \else
+ {\expandafter \font \csname
+ \csname fn:\expandafter\fontname\csname#1\endcsname\endcsname
+ \endcsname =\fontname\csname#1\endcsname\relax}%
+ \fi
+}
+\def\ofsloadfont #1#2#3#4#5#6{% #1:famname #2:seqname, #3:(variant) file,
+ \if|#3|\fontprefix % #4:variant, #5:extraenc, #6: defaultvar
+ \missingofsvariant #1;#2;#4;%
+ \else
+ \separeofsvariant #1;#2;#3;#4;#5;#6;%
+ \fi
+}
+\def\missingofsvariant #1-#2;#3;#4;{%
+ \expandafter\let \csname #3\expandafter \endcsname
+ \csname warn#4\endcsname
+ \expandafter\let \csname var!.the#4\endcsname = \relax
+ \expandafter\let \csname fm:-#2\endcsname = \relax
+}
+\def\separeofsvariant #1-#2;#3;#4#5;#6;#7;#8;{%
+ \if(#4%
+ \storeofsvariant #1-#2;#3;#4#5;#6;#7;%
+ \else
+ \expandafter \ifx \csname reg!.#4#5\endcsname \empty
+ \missingofsvariant #1-#2;#3;#6;%
+ \else
+ \ifx \userfontname#3\else
+ \edef\ofslistvariants {\ofslistvariants
+ \space \expandafter\string\csname#2\endcsname\space (#8)}%
+ \fi
+ \expandafter \def \csname fm:-#2\endcsname {#4#5}% formal metric
+ \ofsloadfontori {#1-#2}{#3}{#4#5}{#6}{#7}%
+ \fi\fi
+}
+\def\storeofsvariant #1-#2;#3;(#4) #5;#6;#7;{%
+ \expandafter \ifx \csname reg!.#5\endcsname \empty
+ \missingofsvariant #1-#2;#3;#6;%
+ \else
+ \ifx \userfontname#3\else
+ \edef\ofslistvariants{\ofslistvariants
+ \space \expandafter\string\csname#2\endcsname\space (#4)}%
+ \fi
+ \expandafter \def \csname fm:-#2\endcsname {#5}% formal metric
+ \ofsloadfontori {#1-#2}{#3}{#5}{#6}{#7}%
+ \fi
+}
+\def\ofsloadfontori #1#2#3#4#5{% #1:famname #2:seqname, #3:file,
+ % #4: variant-letter #5: extraenc
+ \calculatemetricfile {#3}\fosize
+ \fontprefix \expandafter\font\csname #1/\fosize\endcsname
+ =\metricfile\fosize\relax
+ \savefontid{#1/\fosize}%
+ \fontprefix \expandafter \let \csname #2\expandafter\endcsname
+ \csname #1/\fosize\endcsname
+ \fontloadmessage{#2}{\metricfile\fosize}%
+ \expandafter\edef \csname var!.the#4\endcsname {%
+ \csname #2\endcsname}%
+ \if|#5|\else
+ \let\tmpa=\fotenc \edef\fotenc{#5}%
+ \calculatemetricfile {#3}\fosize
+ \let\fotenc=\tmpa
+ \fontprefix \expandafter \edef
+ \csname eXfont!.\fontname \csname #2\endcsname\endcsname
+ {\metricfile\fosize}%
+ \fontprefix \expandafter \edef
+ \csname eXenc!.\fontname \csname #2\endcsname\endcsname {#5}%
+ \fi
+}
+\def\fontprefix{} % on another place will be: \let\fontprefix=\global
+
+\def\newvariant #1 #2(#3) #4;#5;{% #1:number #2:\sequence, #3:comment
+ \savetokenname #2\tmpb % #4:file, #5:extraenc
+ \edef\ofslistvariants {\ofslistvariants \space \string#2 (#3)}%
+ \ofsloadfontori {\currentfamily-\tmpb}{ten\tmpb}{#4}{#1}{#5}%
+ \edef #2{\let\currentvariant #1%
+ \expandafter\noexpand \csname ten\tmpb\endcsname}%
+ \expandafter\let \csname var!.the#1\endcsname =#2%
+}
+\def\registertfm #1 #2-#3 #4 {%
+ \if -#4\relax
+ \expandafter \def \csname reg!.#1\endcsname {}%
+ \else
+ \expandafter \ifx \csname reg!.#1\endcsname \relax
+ \expandafter \def \csname reg!.#1\endcsname {}\fi
+ \let\testtfmsize=\relax
+ \def\tmpa{*}\def\tmpb{#3}%
+ \ifx \tmpa\tmpb \def\tmpb{\maxdimen}\fi
+ \expandafter \edef \csname reg!.#1\endcsname {%
+ \csname reg!.#1\endcsname \testtfmsize #2-\tmpb:#4 }%
+ \fi
+}
+\def\addcmd #1#2{\expandafter\def\expandafter\tmpa\expandafter{#1}%
+ \def\tmpb{#1}%
+ \ifx\tmpa\tmpb % the #1 is not a macro
+ \expandafter\let\csname \string#1-original\endcsname =#1%
+ \expandafter\def\expandafter #1\expandafter{%
+ \csname\string#1-original\endcsname #2}%
+ \else % the #1 is a macro
+ \expandafter\def\expandafter #1\expandafter{#1#2}%
+ \fi
+}
+
+%%%% Logging %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\displaymessage{\immediate\write16 }
+\def\ofsmessageheader{OFS (l.\the\inputlineno): }
+
+\def\displayfontmessages{\let\fontmessage=\displaymessage
+ \def\fontloadmessage##1##2{}}
+\def\logfontmessages{\let\fontmessage=\wlog
+ \def\fontloadmessage##1##2{}}
+\def\nofontmessages{\def\fontmessage##1{}\def\fontloadmessage##1##2{}}
+\def\detailfontmessages{\displayfontmessages
+ \def\fontloadmessage##1##2{\displaymessage{\ofsmessageheader
+ \space\space \ifx\fontprefix\global\string\global\fi\string\font
+ \csname##1\endcsname= ##2}}}
+\logfontmessages % default OFS logging
+
+%%%% \showfonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\showfonts{\bgroup \def\displaymessage{\immediate\write16 }%
+ \displaymessage{\ofsmessageheader
+ The list of known font families (encoding \fotenc):}\ofslistfamilies
+ \egroup
+}
+\def\ofslistfamily #1{%
+ \bgroup
+ \def\tmpa ##1!.##2/{##2}%
+ \edef\tmpa{\expandafter\tmpa\string #1/}%
+ \registeredfam\tmpa?\iftrue
+ \edef\tmpc {[\tmpa/]}%
+ \count2=21
+ \def\tmpa ##1{\if:##1\else\advance\count2 by-1 \expandafter\tmpa\fi}%
+ \expandafter\tmpa \tmpc:%
+ \def\tmpa {\ifnum\count2>0 \advance\count2 by-1 \edef\tmpc{\tmpc\space}%
+ \expandafter \tmpa\fi}\tmpa
+ \def\loadtextfam ##1;##2;##3;##4;##5;{%
+ \if|##1|\edef\tmpc{\tmpc\space\space- }%
+ \else \edef\tmpc{\tmpc\space\string\rm}\fi
+ \if|##2|\edef\tmpc{\tmpc, \space- }%
+ \else \edef\tmpc{\tmpc, \string\bf}\fi
+ \if|##3|\edef\tmpc{\tmpc, \space- }%
+ \else \edef\tmpc{\tmpc, \string\it}\fi
+ \if|##4|\edef\tmpc{\tmpc, \space- }%
+ \else \edef\tmpc{\tmpc, \string\bi}\fi}
+ \def\newvariant ##1 ##2(##3) ##4;##5;{\edef\tmpc{\tmpc, \string##2}}%
+ \def\modifyread ##1;{}
+ #1%
+ \displaymessage{ \space\space\tmpc}%
+ \fi
+ \egroup
+}
+\def\ofslisttext #1{\if^^J\readfirsttoken #1:\end
+ \immediate\write16{\readothertokens #1:\end}%
+ \else \displaymessage{#1}\fi}
+
+\def\ofsremovefromlist #1{% removes family #1 from \ofslistfamilies
+ \edef\act{\def\noexpand\tmpa
+ ####1\noexpand\ofslistfamily
+ \expandafter\noexpand\csname fam!.#1\endcsname
+ ####2^^X{\gdef\noexpand\ofslistfamilies{####1####2}}}\act
+ \expandafter \tmpa\ofslistfamilies^^X%
+ \expandafter \let \csname ffe?#1:\endcsname =\relax
+ \fontmessage{\ofsmessageheader The family [#1/] is redeclared.}%
+}
+
+%%%% Auxiliary macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\warnmissingfont #1#2{%
+ \ifx\expandaction\noexpand
+ \expandafter \noexpand \csname ten#1\endcsname
+ \else
+ \csname fragilecommand!\endcsname
+ \displaymessage{\ofsmessageheader WARNING.
+ Variant #2-#1 is unknown. No font is set.}%
+ \fi
+}
+\def\warnM{\warnmissingfont {rm}\currentfamily}
+\def\warnT{\warnmissingfont {it}\currentfamily}
+\def\warnF{\warnmissingfont {bf}\currentfamily}
+\def\warnI{\warnmissingfont {bi}\currentfamily}
+
+\def\setfosize #1#2#3:{\if a#2\def#1{#2#3}%
+ \else\if s#2\let\tmpc=\relax \def\relax{}\edef#1{#2#3}\let\relax=\tmpc%
+ \else\if m#2\expandafter\readfosize\fosize:%
+ \readmag #2#3..:#1%
+ \else\isunitpresent #2#3.?\edef#1{at#2#3\tmpa}%
+ \fi \fi \fi}
+\def\readfosize #1{%
+ \if a#1\def\tmpc t##1:{\dimen0=##1\relax}%
+ \else \if s#1\def\tmpc caled##1:{\dimen0=.01pt
+ {\def\relax{}\xdef\tmpc{##1}}\dimen0=\tmpc\dimen0\relax}%
+ \else \errmessage{OFS: readfosize: something wrong??}%
+ \fi\fi \tmpc
+}
+\def\readmag mag#1.#2.#3:#4{%
+ \if|#2|\if|#3|%
+ \errmessage{OFS: "mag" needs the decimal parameter with decimal point}%
+ \fi\fi
+ \dimen0 =#1.#2 \dimen0
+ \advance\dimen0 by7sp % rounding to three digits after decimal point
+ \ifdim\dimen0<10pt \edef\tmpa{+\the\dimen0}\else \edef\tmpa{\the\dimen0}\fi
+ \dimen0 =\expandafter \readsixdigits \tmpa :::::|pt
+ \edef#4{at\the\dimen0}%
+}
+\def\readsixdigits #1#2#3#4#5#6#7#8#9|{%
+ \if:#5#1#2\else\if:#6#1#2#3\else\if:#7#1#2#3#4\else
+ \if:#8#1#2#3#4#5\else#1#2#3#4#5#6\fi\fi\fi\fi
+}
+\def\isunitpresent #1.#2?{\bgroup
+ \if |#2|\afterassignment\defpttotmpa \count2=#1.:%
+ \else \afterassignment\defpttotmpa \count2=0#2:\fi
+}
+\def\defpttotmpa #1.:{\if|#1|\gdef\tmpa{pt}\else\gdef\tmpa{}\fi\egroup}
+
+\def\savetokenname #1#2{%
+ \edef\tmpa{\escapechar=\the\escapechar}%
+ \escapechar=-1
+ \edef#2{\string#1\expandafter}\tmpa \relax
+}
+\def\readfamvariant #1-#2-#3:{\def\tmpb{#1}\def\famvariant{#2}}
+\long\def\readfirsttoken #1#2:\end{#1}
+\long\def\readothertokens #1#2:\end{#2}
+% TBN, page 80
+{\catcode`p=12 \catcode`t=12
+ \gdef\noPT #1pt{#1}}
+
+\def\calculatemetricfile #1#2{% #1: name or metric file, #2: fosize
+ \expandafter \ifx \csname reg!.#1\endcsname \relax
+ \edef\metricfile{#1 }%
+ \else
+ \let\metricfile=\empty
+ \expandafter \readfosize #2:% \dimen0 = fosize
+ \if s\expandafter \readfirsttoken #2:\end
+ \let\testtfmsize=\testtfmsizescaled
+ \else
+ \let\testtfmsize=\testtfmsizeat
+ \fi
+ \csname reg!.#1\endcsname
+ \ifx \metricfile\empty
+ \let\testtfmsize=\testtfmsizescaled
+ \csname reg!.#1\endcsname
+ \ifx \metricfile\empty
+ \displaymessage {\ofsmessageheader WARNING.
+ The name "#1" is not registered for size #2.}%
+ \edef\metricfile{#110 }%
+ \fi\fi\fi
+}
+\def\testtfmsizeat #1-#2:#3 {%
+ \if|#1|\else
+ \ifdim #1>\dimen0 \else\ifdim #2<\dimen0 \else
+ \def\metricfile{#3 }%
+ \fi\fi\fi
+}
+\def\testtfmsizescaled #1-#2:#3 {%
+ \if|#1|\def\metricfile{#3 }\fi
+}
+\def\metrictmpa{\expandafter\singlefontname
+ \fontname\expandafter\tmpa\space:}
+
+\def\singlefontname #1 #2:{#1}
+\def\ofsmeaning #1 #2 {the}
+
+%%%% The \setfonts macro %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setfonts [#1/#2]{%
+ \ifx\expandaction\noexpand
+ \noexpand\setfonts [#1/#2]%
+ \else
+ \csname fragilecommand!\endcsname
+ \let\setfontsOK=\relax
+ \edef\tmpa{#1}\expandafter \readfamvariant\tmpa--:%
+ \ifx\famvariant\empty
+ \if|#1|\let\tmpa=\currentfamily \else\def\tmpa{#1}\fi
+ \registeredfam \tmpa?\iftrue
+ \def\newmodifylist{}%
+ \setfontfamily [#1/#2]%
+ \ifx\setfontsOK\relax \runmodifylist \fi
+ \else \warnunregistered\tmpa \let\setfontsOK=\undefined
+ \fi
+ \else
+ \if|#2|\ifx\tmpb\empty
+ \let\tmpb=\relax \csname\famvariant\endcsname
+ \fi\fi
+ \ifx\tmpb\relax \else
+ \registeredfam \tmpb?\iftrue
+ \def\newmodifylist{}%
+ \edef\userfontname{singlefont}%
+ \setsinglefont [\tmpb-\famvariant/#2]%
+ \ifx\setfontsOK\relax \runmodifylist \fi
+ \else \warnunregistered\tmpb \let\setfontsOK=\undefined
+ \fi\fi\fi
+ \ignorespaces
+ \fi
+}
+\def\setfontfamily [#1/#2]{%
+ \if|#1|\let\newfamily=\currentfamily
+ \else \edef\newfamily{#1}\fi
+ \if|#2|\else \setfosize\fosize #2:\fi
+ \expandafter\ifx \csname fam!.\newfamily\endcsname \relax
+ \displaymessage{\ofsmessageheader WARNING. No font family is set.^^J%
+ The family name [\newfamily/] is not known in the list:}\ofslistfamilies
+ \let\setfontsOK=\undefined
+ \else
+ \let\currentfamily=\newfamily
+ \fontmessage{\ofsmessageheader Font family
+ \currentfamily\space\fosize \space (enc=\fotenc) activated:}%
+ \def\tmpa##1{\expandafter \let \csname var!.the##1\endcsname \relax}%
+ \tmpa0\tmpa1\tmpa2\tmpa3\tmpa4\tmpa5\tmpa6\tmpa7\tmpa8\tmpa9%
+ \setfontshook
+ \csname fam!.\newfamily\endcsname
+ \ifx \ofslistvariants \empty \else
+ \fontmessage{\ofsmessageheader\ofslistvariants}\fi
+ % restoring current variant:
+ \ifx G\currentvariant
+ \ifx \sgfamily\newfamily \if |#2|\else
+ \setsinglefont[\sgfamily-\sgvariant/#2]%
+ \fi
+ \else \tenrm
+ \fi
+ \else
+ \expandafter
+ \ifx \csname var!.\expandafter\ofsmeaning\meaning
+ \currentvariant\endcsname \relax
+ \tenrm
+ \else
+ \csname var!.\expandafter\ofsmeaning\meaning
+ \currentvariant\endcsname
+ \fi\fi\fi
+}
+
+\def\setsinglefont [#1-#2/#3]{%
+ \edef\newfamily{#1}%
+ \expandafter\savetokenname \csname#2\endcsname \sgvariant
+ \ifx\newfamily\empty \let\newfamily=\currentfamily \fi
+ \edef\tmpa{#3}%
+ \let\orifosize=\fosize
+ \let\oriloadfam=\loadtextfam
+ \let\orinewvariant=\newvariant
+ \ifx\tmpa\empty \let\tmpa=\fosize
+ \else \expandafter\setfosize\expandafter\fosize\tmpa:%
+ \fi
+ \expandafter\ifx \csname fam!.\newfamily\endcsname \relax
+ \displaymessage{\ofsmessageheader WARNING. No font is set.^^J%
+ The family name [\newfamily/] is not known in the list:}\ofslistfamilies
+ \let\setfontsOK=\undefined
+ \else
+ \fontmessage{\ofsmessageheader Loading single font
+ \newfamily-#2 \fosize \space (enc=\fotenc).}%
+ \expandafter\savetokenname \csname rm\endcsname \tmpa
+ \ifx\sgvariant\tmpa
+ \def\loadtextfam ##1;##2;##3;##4;##5;{\tryloadenc{##5}%
+ \ofsloadfont {\newfamily-rm}{\userfontname}{##1}{M}{##5}{}}%
+ \fi
+ \expandafter\savetokenname \csname bf\endcsname \tmpa
+ \ifx\sgvariant\tmpa
+ \def\loadtextfam ##1;##2;##3;##4;##5;{\tryloadenc{##5}%
+ \ofsloadfont {\newfamily-bf}{\userfontname}{##2}{F}{##5}{}}%
+ \fi
+ \expandafter\savetokenname \csname it\endcsname \tmpa
+ \ifx\sgvariant\tmpa
+ \def\loadtextfam ##1;##2;##3;##4;##5;{\tryloadenc{##5}%
+ \ofsloadfont {\newfamily-it}{\userfontname}{##3}{T}{##5}{}}%
+ \fi
+ \expandafter\savetokenname \csname bi\endcsname \tmpa
+ \ifx\sgvariant\tmpa
+ \def\loadtextfam ##1;##2;##3;##4;##5;{\tryloadenc{##5}%
+ \ofsloadfont {\newfamily-bi}{\userfontname}{##4}{I}{##5}{}}%
+ \fi
+ \ifx\loadtextfam\oriloadfam
+ \def\loadtextfam ##1;##2;##3;##4;##5;{\tryloadenc{##5}}%
+ \def\newvariant ##1 ##2(##3) ##4;##5;{\savetokenname ##2\tmpa
+ \ifx \tmpa\sgvariant
+ \ofsloadfont {\newfamily-\tmpa}{\userfontname}{##4}{##1}{##5}{}%
+ \fi}%
+ \else
+ \def\newvariant ##1 ##2(##3) ##4;##5;{}%
+ \fi
+ \fontprefix \expandafter \let \csname \userfontname \endcsname =\relax
+ \setfontshook
+ \csname fam!.\newfamily\endcsname
+ \expandafter \ifx \csname \userfontname \endcsname \relax
+ \displaymessage{\ofsmessageheader WARNING.
+ Variant \newfamily-\sgvariant\space is unknown.
+ No font is set.}%
+ \let\setfontsOK=\undefined
+ \else
+ \csname \userfontname \endcsname
+ \let\sgfamily=\newfamily
+ \let\currentvariant=G%
+ \fi
+ \fi
+ \let\fosize=\orifosize
+ \let\loadtextfam=\oriloadfam
+ \let\orinewvariant=\newvariant
+}
+\let\orifosize=\relax \let\oriloadfam=\relax \let\orinewvariant=\relax
+\let\newfamily=\relax \let\sgfamily=\relax \let\sgvariant=\relax
+
+\def\fontdef #1[#2/#3]{\def\tmpc{!}%
+ \edef\tmpa{#3}%
+ \ifx\tmpa\tmpc \let\tmpa=\fosize \fi
+ \edef\tmpb{#2}\expandafter \readfamvariant\tmpb--:%
+ \ifx\tmpb\tmpc \let\tmpb=\currentfamily \fi
+ \ifx\famvariant\empty
+ \fontmessage{\ofsmessageheader Define \string#1
+ as \noexpand\setfonts[\tmpb/\tmpa].}%
+ \xdef #1{\noexpand\setfonts [\tmpb/\tmpa]}%
+ \else
+ \ifx\tmpa\empty \def\tmpa{mag1.0}\fi
+ \expandafter \if m\expandafter \readfirsttoken \tmpa:\end
+ \fontmessage{\ofsmessageheader Define \string#1
+ as \noexpand\setfonts[\tmpb-\famvariant/\tmpa].}%
+ \xdef #1{\noexpand\setfonts [\tmpb-\famvariant/\tmpa]}%
+ \else
+ \ifx\tmpb\empty
+ \fontmessage{\ofsmessageheader Define \string#1
+ as \noexpand\setfonts[-\famvariant/\tmpa].}%
+ \xdef #1{\noexpand\setfonts [-\famvariant/\tmpa]}%
+ \else
+ \registeredfam \tmpb?\iftrue
+ \fontmessage{\ofsmessageheader Define \string#1
+ as fixed font [\tmpb-\famvariant/\tmpa].}%
+ {\let\fontprefix=\global \let\tmpc=\tmpa
+ \savetokenname #1\userfontname
+ \setsinglefont [\tmpb-\famvariant/\tmpc]}%
+ \else
+ \warnunregistered \tmpb
+ \displaymessage{ \space \string\fontdef\string#1
+ [#2/#3] ignored. \string#1=\string\nullfont}%
+ \global\let #1=\nullfont
+ \fi\fi\fi\fi
+}
+
+
+%%%% \knownfam \registeredfam \knownchar %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\knownfam #1?#2{% usage: \knownfam Times? \iftrue ...\else...\fi
+ \expandafter\ifx \csname fam!.#1\endcsname \relax
+ \csname iffalse\expandafter\endcsname
+ \else
+ \csname iftrue\expandafter\endcsname
+ \fi
+}
+\def\ifknownfam [#1]{\knownfam #1?!} % for bacward compatibility
+
+\def \registeredfam #1?#2{% usage: \registeredfam Times?\iftrue...\else...\fi
+ \expandafter \ifx\csname ffe?#1:\endcsname \relax
+ \def\tmpc{iftrue}%
+ \else \edef\act{\def\noexpand\tmpc####1 \fotenc,####2^^X%
+ {\def\noexpand\tmpc{####2}}}\act
+ \edef\act{\noexpand\tmpc \space
+ \csname ffe?#1:\expandafter\endcsname, \fotenc,^^X}\act
+ \ifx\tmpc\empty \def\tmpc{iffalse}%
+ \else \def\tmpc{iftrue}\fi
+ \fi \csname\tmpc\endcsname
+}
+\def\knownchar #1?#2{% usage: \knownchar \euro? \iftrue...\else...\fi
+ \if u\expandafter \readfirsttoken \meaning #1:\end % undefined
+ \let\tmpa=\relax \let\tmpb=\relax
+ \else
+ {\def\printcharacterwarn##1{\relax}\def\printcharacteraccent##1##2{\relax}%
+ \def\setextrafont{}\xdef\tmpa{#1}\gdef\tmpb{\relax}}%
+ \fi
+ \ifx \tmpa\tmpb \csname iffalse\expandafter\endcsname \else
+ \csname iftrue\expandafter\endcsname \fi
+}
+
+
+%%%% Extra encodings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setextrafont{%
+ \ifx\expandaction\noexpand
+ \noexpand\setextrafont
+ \else
+ \csname fragilecommand!\endcsname
+ \expandafter \ifx \csname eXfont!.\fontname\the\font\endcsname \relax
+ \expandafter\let\expandafter\tmpa \the\font
+ \displaymessage{\ofsmessageheader WARNING.
+ \string\setextrafont: No extra metric for \metrictmpa.}%
+ \else
+ \font\extrafont=\csname eXfont!.\fontname\the\font\endcsname
+ \relax
+ \fontloadmessage{extrafont}%
+ {\csname eXfont!.\fontname\the\font\endcsname}%
+ \extrafont
+ \fi
+ \fi
+}
+\let\currentextrafont=\relax
+
+\def\characterdef #1#2#3 {\relax \savetokenname #1\tmpa
+ \edef \tmpb{\noexpand\printcharacter {\tmpa}}%
+ \expandafter \ifx \csname\tmpa\endcsname \relax \let#1=\tmpb \fi
+ \let\tmpc=\tmpa
+ \edef \tmpa {\tmpa:-#2#3}%
+ \ifx #1\tmpb \else
+ \expandafter \ifx \csname\tmpa\endcsname \relax
+ \fontmessage{\ofsmessageheader "\string#1" is
+ defined already, \noexpand\characterdef ignored.}%
+ \fi\fi
+ \futurelet \tmpb \docharacterdef
+}
+\def\characterdel #1#2#3 {\relax \savetokenname #1\tmpa
+ \ifx\tmpc\tmpa \else
+ \expandafter \let \csname\tmpa:-#2#3\endcsname =\relax \fi
+ \let\tmpc=\relax
+ \def \tmpa {tmpa}%
+ \futurelet \tmpb \docharacterdef
+}
+\def\characternodef #1#2#3 {\relax \savetokenname #1\tmpa
+ \edef \tmpb{\noexpand\printcharacter {\tmpa}}%
+ \expandafter \ifx \csname\tmpa\endcsname \relax \let#1=\tmpb \fi
+ \edef \tmpa {tmpa}%
+ \futurelet \tmpb \docharacterdef
+}
+\def\docharacterdef {%
+ \ifx\tmpb\bgroup
+ \afterassignment \ignorespaces
+ \expandafter \def \csname \tmpa \expandafter\endcsname
+ \else
+ \afterassignment \donumbercharacterdef
+ \uccode`\^^@=
+ \fi
+}
+{\catcode`\^^@=12
+\gdef\donumbercharacterdef {%
+ \uppercase{\expandafter \def\csname \tmpa\endcsname {^^@}}%
+ \uccode`\^^@=0
+}}
+\def\printcharacter #1{%
+ \ifx\expandaction\noexpand
+ \expandafter\noexpand \csname #1\endcsname
+ \else
+ \expandafter\ifx\csname #1:-\fotenc\endcsname \relax
+ \expandafter \ifx \csname eXfont!.\fontname\the\font\endcsname \relax
+ \expandafter\ifx\csname #1:-*\endcsname \relax
+ \printcharacterwarn{#1}%
+ \else \csname #1:-*\endcsname
+ \fi
+ \else
+ \expandafter \ifx \csname
+ #1:-\csname eXenc!.\fontname\the\font\endcsname
+ \endcsname \relax
+ \expandafter\ifx\csname #1:-*\endcsname \relax
+ \printcharacterwarn{#1}%
+ \else \csname #1:-*\endcsname
+ \fi
+ \else
+ {\expandafter \setextrafont \csname
+ #1:-\csname eXenc!.\fontname\the\font\endcsname \endcsname}%
+ \fi
+ \fi
+ \else
+ \csname #1:-\fotenc\endcsname
+ \fi
+ \fi
+}
+\def\printcharacterwarn #1{%
+ \csname fragilecommand!\expandafter\endcsname
+ % \printcharacter may be first token in \halign data
+ \expandafter\def\expandafter\tmpa\expandafter{\currentfamily}%
+ \displaymessage{\ofsmessageheader WARNING.
+ Command \expandafter\noexpand\csname#1\endcsname
+ is unavailable in \tmpa.}%
+}
+
+\def\extchar{\afterassignment\doextchar \chardef\tmpc=}
+\def\doextchar{{\setextrafont\tmpc}}
+
+\def\accentdef #1#2#3#4 {\relax \savetokenname #1\tmpa
+ \edef #1##1{\noexpand\printaccent {\tmpa}{##1}}%
+ \if *#2\edef \tmpa {\tmpa:#2--#3#4}%
+ \else \edef \tmpa {\tmpa:#2:-#3#4}%
+ \fi
+ \futurelet \tmpb \docharacterdef
+}
+\def\accentdel #1#2#3#4 {\relax \savetokenname #1\tmpa
+ \if *#2\expandafter \let \csname\tmpa:#2--#3#4\endcsname =\relax
+ \else \expandafter \let \csname\tmpa:#2:-#3#4\endcsname =\relax
+ \fi
+ \def \tmpa {tmpa}%
+ \futurelet \tmpb \docharacterdef
+}
+\def\accentnodef #1#2#3#4 {\relax \savetokenname #1\tmpa
+ \edef #1##1{\noexpand\printaccent {\tmpa}{##1}}%
+ \edef \tmpa {tmpa}%
+ \futurelet \tmpb \docharacterdef
+}
+\def\printaccent #1#2{%
+ \ifx\expandaction\noexpand
+ \expandafter\noexpand \csname #1\endcsname {#2}%
+ \else
+ \expandafter \ifx \csname #1:#2:-\fotenc\endcsname \relax
+ \expandafter \ifx \csname eXfont!.\fontname\the\font\endcsname\relax
+ \expandafter \ifx \csname #1:*--\fotenc\endcsname \relax
+ \expandafter \ifx \csname #1:#2:-*\endcsname \relax
+ \expandafter \ifx \csname #1:*--*\endcsname \relax
+ \printaccentwarn{#1}{#2}%
+ \else
+ \if ^^X#2^^X\csname #1:*--*\endcsname {}%
+ \else \csname #1:*--*\endcsname #2%
+ \fi
+ \fi
+ \else \csname #1:#2:-*\endcsname
+ \fi
+ \else
+ \if ^^X#2^^X\csname #1:*--\fotenc\endcsname {}%
+ \else \csname #1:*--\fotenc\endcsname #2%
+ \fi
+ \fi
+ \else
+ \expandafter \ifx \csname
+ #1:#2:-\csname eXenc!.\fontname\the\font\endcsname
+ \endcsname \relax
+ \expandafter \ifx \csname #1:*--\fotenc\endcsname \relax
+ \expandafter \ifx \csname
+ #1:*--\csname eXenc!.\fontname\the\font\endcsname
+ \endcsname \relax
+ \expandafter \ifx \csname #1:#2:-*\endcsname \relax
+ \expandafter \ifx \csname #1:*--*\endcsname \relax
+ \printaccentwarn{#1}{#2}%
+ \else
+ \if ^^X#2^^X\csname #1:*--*\endcsname {}%
+ \else \csname #1:*--*\endcsname #2%
+ \fi
+ \fi
+ \else \csname #1:#2:-*\endcsname
+ \fi
+ \else
+ \expandafter \let \expandafter \tmpb \the\font
+ {\if ^^X#2^^X\expandafter \setextrafont \csname
+ #1:*--\csname eXenc!.\fontname\tmpb\endcsname
+ \endcsname \tmpb {}%
+ \else \expandafter \setextrafont \csname
+ #1:*--\csname eXenc!.\fontname\tmpb\endcsname
+ \endcsname \tmpb #2%
+ \fi}%
+ \fi
+ \else
+ \if ^^X#2^^X\csname #1:*--\fotenc\endcsname {}%
+ \else \csname #1:*--\fotenc\endcsname #2%
+ \fi
+ \fi
+ \else
+ {\expandafter \setextrafont \csname
+ #1:#2:-\csname eXenc!.\fontname\the\font\endcsname
+ \endcsname}%
+ \fi
+ \fi
+ \else
+ \csname #1:#2:-\fotenc\endcsname
+ \fi
+ \fi
+}
+\def\printaccentwarn #1#2{%
+ \csname fragilecommand!\expandafter\endcsname
+ % \printaccent may be first token in \halign data
+ \expandafter\def\expandafter\tmpa\expandafter{\currentfamily}%
+ \displaymessage{\ofsmessageheader WARNING.
+ Accent \expandafter\string\csname#1\endcsname{#2}
+ is unavailable in \tmpa.}%
+}
+\def\accentabove #1#2#3{%
+ \ifx\expandaction\noexpand
+ \noexpand\accentabove {#1}{#2}{#3}%
+ \else
+ \csname fragilecommand!\endcsname
+ \if ^^X#3^^X#1\else
+ \leavevmode\vbox{%
+ \setbox0=\hbox{#3}\setbox2=\hbox{#1}%
+ \dimen0=\ht0 \advance\dimen0 by\dp2 \advance\dimen0 by#2\relax
+ \offinterlineskip
+ \halign {##\cr
+ \hidewidth\slantcorrection{\dimen0}\box2 \hidewidth\cr
+ \noalign{\kern#2}\box0 \cr}}%
+ \fi\fi
+}
+\def\accentbelow #1#2#3{%
+ \ifx\expandaction\noexpand
+ \noexpand\accentbelow {#1}{#2}{#3}%
+ \else
+ \csname fragilecommand!\endcsname
+ \if ^^X#3^^X#1\else
+ \leavevmode\vtop{%
+ \setbox0=\hbox{#3}\setbox2=\hbox{#1}%
+ \dimen0=-\dp0 \advance\dimen0 by-\ht2 \advance\dimen0 by-#2\relax
+ \offinterlineskip
+ \halign {##\cr \box0 \cr\noalign{\kern#2}%
+ \hidewidth \slantcorrection{\dimen0}%
+ \dimen0=\dp2 \ifdim\dimen0<.2ex \dimen0=.2ex \fi
+ \vbox to\dimen0{\hbox{\box2}\vss}\hidewidth\cr}}%
+ \fi\fi
+}
+\def\slantcorrection #1{\dimen0=#1\relax
+ \dimen0 =\expandafter \noPT\the\fontdimen1\the\font \dimen0
+ \kern 2\dimen0
+}
+
+%%%% \modifyenc, \modifydef, \tryloadenc, \registerenc %%%%%%%%%%%%%%
+ %% news in version Feb. 2004
+\newcount\loadingenc \loadingenc=0
+
+\def\modifyenc #1:#2;{\def\tmpa{#1}% encoding
+ \ifx\tmpa\fotenc \ofsaddenctolist #1:#2;\fi
+ \ifx\tmpa\extraenc \ofsaddenctolist #1:#2;\fi
+}
+\def\ofsaddenctolist #1;{\expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter \newmodifylist
+ \expandafter\expandafter\expandafter {\expandafter \newmodifylist
+ \csname #1\expandafter\endcsname}}
+\def\modifylist{} \def\newmodifylist{}
+
+\def\modifydef #1;#2{%
+ \expandafter \def \csname#1\endcsname {#2}%
+ \let\characterdef=\characternodef \let\accentdef=\accentnodef
+ \let\characterdel=\characternodef \let\accentdel=\accentnodef
+ \def\skipfirststep##1\relax\empty\empty{}%
+ #2\relax\empty\empty
+ \let\characterdef=\characterdefori \let\accentdef=\accentdefori
+ \let\characterdel=\characterdelori \let\accentdel=\accentdelori
+ \let\skipfirststep=\relax
+ \ignorespaces
+}
+\def\modifyread #1;{%
+ \ifnum\loadingenc>0
+ \expandafter \ifx \csname m:>#1\endcsname \relax
+ \fontmessage{\ofsmessageheader \string\modifyread:
+ file read from \string\modifytext}%
+ {\plaincatcodes \catcode`@=11 \endlinechar=-1 \globaldefs=1
+ \def\tmpa ##1\modifytext{}%
+ \expandafter \tmpa \input #1
+ \expandafter \gdef \csname m:>#1\endcsname {}}%
+ \fi\fi
+}
+\def\tryloadenc #1{\edef\extraenc{#1}%
+ \ifnum\loadingenc>0
+ \ofsinput ofs-\fotenc.tex
+ \ifx\extraenc\empty \else \ofsinput ofs-\extraenc.tex \fi
+ \fi
+}
+\def\runmodifylist {%
+ \ifx \modifylist\relax \else
+ \ifx \modifylist\newmodifylist \else
+ \let\tmpc=\relax
+ \switchdeftodel \modifylist
+ \switchdeftodel \newmodifylist
+ \let \modifylist=\newmodifylist
+ \fi
+ \fi
+}
+\def\switchdeftodel{%
+ \let\tmpa=\characterdef \let\characterdef=\characterdel \let\characterdel=\tmpa
+ \let\tmpa=\accentdef \let\accentdef=\accentdel \let\accentdel=\tmpa
+}
+\let\characterdefori=\characterdef
+\let\characterdelori=\characterdel
+\let\accentdefori=\accentdef
+\let\accentdelori=\accentdel
+\let\skipfirststep=\relax
+
+\def\registerenc #1:#2#3 {%
+ \edef\tmpa{#1}\ifx\tmpa\empty \edef\tmpa{\declaredfamily}\fi
+ \if*#2\expandafter \let \csname ffe?\tmpa:\endcsname =\relax
+ \else \expandafter \edef \csname ffe?\tmpa:\endcsname {%
+ \expandafter\ifx \csname ffe?\tmpa:\endcsname\relax
+ \else \csname ffe?\tmpa:\endcsname, \fi#2#3}%
+ \fi
+}
+\def\warnunregistered #1{\displaymessage{\ofsmessageheader WARNING.
+ Unregistered enc \fotenc\space for #1. No font is set.^^J
+ \space Use \noexpand\registerenc #1: \fotenc\space\space
+ if you have got appropriate tfm's.}}
+
+%%%% \plaincatcodes, \safelet, \protectreading %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\plaincatcodes {\catcode`\\0\catcode`\{1\catcode`\}2%
+ \catcode`\$3\catcode`\&4\catcode`\^^M5\catcode`\#6%
+ \catcode`\^7\catcode`\_8\catcode`\ 10\catcode`\~13%
+ \catcode`\^^I10\catcode`\%14\catcode`!12\catcode`"12%
+ \catcodesloop '.{12}\catcodesloop 0@{12}\catcodesloop AZ{11}%
+ \catcode`[12\catcode`]12\catcode``12\catcodesloop az{11}%
+ \catcode`|12\relax
+}
+\def\catcodesloop #1#2#3{\countdef\tmpa2 \chardef\tmpb\tmpa
+ \tmpa=`#1\relax
+ \loop
+ \catcode\tmpa=#3\relax
+ \ifnum\tmpa <`#2 \advance\tmpa by1
+ \repeat
+ \tmpa=\tmpb % original value of \count2
+}
+\def\safelet #1{\ifx#1\undefined
+ \expandafter \let \expandafter #1%
+ \else \ifx#1\relax
+ \expandafter\expandafter\expandafter \let
+ \expandafter\expandafter\expandafter #1%
+ \else
+ \def\tmpa{\let\tmpa}\safeletwarn#1%
+ \expandafter\expandafter\expandafter \tmpa
+ \fi\fi
+}
+\def\safeletwarn #1{\displaymessage{\ofsmessageheader WARNING.
+ \noexpand#1 is defined already, \noexpand \safelet does nothing.}}
+
+\def\protectreading #1 {\expandafter
+ \ifx \csname f:>#1\endcsname \relax
+ \expandafter \def \csname f:>#1\endcsname {}%
+ \else \expandafter \endinput
+ \fi
+}
+\def\ofsinput #1 {\expandafter
+ \ifx \csname f:>#1\endcsname \relax
+ {\plaincatcodes \catcode`@=11 \endlinechar=-1 \globaldefs=1 \input #1
+ \let\tmpa \relax
+ \expandafter \gdef \csname f:>#1\endcsname {}}\fi
+}
+
+%%%% Math %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\loadmathfam #1[#2/#3]{% #1: fam, [#2/#3]: basic font [switch/file]
+ % basic font is used in three sizes: \textfosize, \scriptfosize,
+ % \scsriptscriptfosize. The basic font is given by its font-switch
+ % (control sequence without backslash) XOR its filename.
+ \relax
+ \ifnum #1<16
+ \if |#2|\edef\tmpa{#3}\edef\tmpb{#3}%
+ \else
+ \edef\tmpb{#2}%
+ \edef \tmpa {\expandafter \readfirsttoken \tmpb:\end}%
+ \if -\tmpa
+ \expandafter \ifx \csname fm:\tmpb\endcsname \relax
+ \expandafter \ifx \csname fv:\tmpb\endcsname \empty % -bi => -bf
+ \displaymessage{\ofsmessageheader WARNING. loadmathfam:
+ no "\tmpb" in "\currentfamily", I try "-bf".}%
+ \def\tmpb{-bf}%
+ \fi\fi
+ \expandafter \ifx \csname fm:\tmpb\endcsname \relax
+ \ofsmissingmathfont {no "\tmpb" in "\currentfamily"}%
+ \else
+ \edef\tmpa {\csname fm:\tmpb\endcsname}%
+ \fi
+ \else
+ \if X\tmpa
+ \edef\tmpa {\expandafter\readothertokens\tmpb:\end}%
+ \if s\expandafter\expandafter\expandafter \readfirsttoken
+ \expandafter \meaning \csname \tmpa \endcsname:\end
+ \expandafter \ifx \csname eXfont!.\fontname
+ \csname\tmpa\endcsname \endcsname \relax
+ \ofsmissingmathfont {"\tmpa" has no extra metric}%
+ \else \edef \tmpa {\csname eXfont!.\fontname
+ \csname\tmpa\endcsname \endcsname \space}%
+ \edef\tmpa{\expandafter\singlefontname\tmpa:}% gobble at<dimen>
+ \fi
+ \else
+ \ofsmissingmathfont {"\tmpa" is no font selector}%
+ \fi
+ \else
+ \if s\expandafter\expandafter\expandafter \readfirsttoken
+ \expandafter \meaning \csname #2\endcsname:\end
+ \edef\tmpa{\expandafter\fontname\csname#2\endcsname\space}%
+ \edef\tmpa{\expandafter\singlefontname\tmpa:}% gobble at<dimen>
+ \else
+ \ofsmissingmathfont {"\tmpb" is no font selector}%
+ \fi\fi\fi\fi
+ \calculatemetricfile \tmpa \textfosize
+ \expandafter\font \csname\tmpb-Mt\endcsname
+ =\metricfile\textfosize \relax \restorefontid{\tmpb-Mt}%
+ \fontloadmessage{\tmpb-Mt}{\metricfile\textfosize
+ \space\space (fam:\string#1\if#1\relax=\the#1\fi)}%
+ \ifx \noindexsize \relax
+ \expandafter \let \csname\tmpb-Mss\expandafter\endcsname
+ \csname\tmpb-Mt\endcsname
+ \expandafter \let \csname\tmpb-Ms\expandafter\endcsname
+ \csname\tmpb-Mt\endcsname
+ \else
+ \calculatemetricfile \tmpa \scriptfosize
+ \expandafter\font \csname\tmpb-Ms\endcsname
+ =\metricfile\scriptfosize \relax \restorefontid{\tmpb-Ms}%
+ \fontloadmessage{\tmpb-Ms}{\metricfile\scriptfosize
+ \space\space (fam:\string#1\if#1\relax=\the#1\fi)}%
+ \calculatemetricfile \tmpa \scriptscriptfosize
+ \expandafter\font \csname\tmpb-Mss\endcsname
+ =\metricfile\scriptscriptfosize \relax \restorefontid{\tmpb-Mss}%
+ \fontloadmessage{\tmpb-Mss}{\metricfile\scriptscriptfosize
+ \space\space (fam:\string#1\if#1\relax=\the#1\fi)}%
+ \fi
+ \textfont #1=\csname\tmpb-Mt\endcsname
+ \scriptfont #1=\csname\tmpb-Ms\endcsname
+ \scriptscriptfont #1=\csname\tmpb-Mss\endcsname
+ \else
+ \displaymessage{\ofsmessageheader WARNING.
+ \noexpand\loadmathfam \string#1[#2/#3] ignored (\string#1 >= 16).}%
+ \fi
+ \def\noindexsize {\let\noindexsize \relax}%
+}
+\def\ofsmissingmathfont #1{%
+ \displaymessage{\ofsmessageheader WARNING.
+ loadmathfam: #1, \csname fm:-rm\endcsname\space used.}%
+ \edef\tmpa{\csname fm:-rm\endcsname}%
+ \def\tmpb{-rm}%
+}
+\expandafter\def \csname fm:-rm\endcsname {cmr10}
+\expandafter\def \csname fv:-bi\endcsname {}
+
+\def\noindexsize {\let\noindexsize \relax}
+\def\hex#1{\ifcase#10\or1\or2\or3\or4\or5\or6\or7\or8\or9\or
+ A\or B\or C\or D\or E\or F\else0\fi}%
+\def\newmathfam #1{\advance\lastfam by1 \chardef #1=\lastfam\relax}
+\countdef\lastfam=18
+
+\def\setmath [#1/#2/#3]{%
+ \ifx\expandaction\noexpand
+ \noexpand\setmath [#1/#2/#3]%
+ \else
+ \csname fragilecommand!\endcsname
+ \if|#1|\def\tmpa{mag1.0}\else\edef\tmpa{#1}\fi
+ \expandafter \setfosize \expandafter \textfosize \tmpa:%
+ \if|#2|\def\tmpa{mag0.7}\else\edef\tmpa{#2}\fi
+ \expandafter \setfosize \expandafter \scriptfosize \tmpa:%
+ \if|#3|\def\tmpa{mag0.5}\else\edef\tmpa{#3}\fi
+ \expandafter \setfosize \expandafter \scriptscriptfosize \tmpa:%
+ \fontmessage{\ofsmessageheader \noexpand\setmath
+ [\textfosize/\scriptfosize/\scriptscriptfosize]
+ (enc=\fomenc, version=\mathversion)}%
+ \mathfonts
+ \ifx \currentfomenc\fomenc \else
+ \mathcharsback \let\mathcharsback=\relax
+ \mathchars \let\currentfomenc=\fomenc
+ \fi
+ \ignorespaces
+ \fi
+}
+\def\setsimplemath{\setmath[//]} % for backward compatibility
+
+\def\safemathchardef{\dosafemathdef\mathchardef}
+\def\safemathaccentdef{\dosafemathdef\mathaccentdef}
+
+\def\dosafemathdef #1#2{\relax
+ \ifx #2\undefined \expandafter #1\expandafter#2%
+ \else
+ \savetokenname #2\tmpb
+ \expandafter \ifx \csname M\tmpb\endcsname \relax
+ \expandafter \let \csname T\tmpb\endcsname =#2%
+ \edef #2{\noexpand\ifmmode \noexpand\expandafter
+ \expandafter\noexpand \csname M\tmpb\endcsname
+ \noexpand\else \noexpand\expandafter
+ \expandafter\noexpand \csname T\tmpb\endcsname
+ \noexpand\fi}%
+ \expandafter #1\csname M\tmpb
+ \expandafter\expandafter\expandafter\endcsname
+ \else \mathchardef \tmpb
+ \fi\fi
+}
+\def\mathaccentdef #1{\def\tmpa{\edef#1{\mathaccent\the\tmpb\space}}%
+ \afterassignment \tmpa \mathchardef\tmpb
+}
+
+
+\def\pickmathfont #1#2{% We need "=" in \Long/right/left/arrow macros
+ \mathchoice % but we need not allocate new mathfam
+ {\hbox{\calculatemetricfile{#1}\textfosize
+ \font\tmpa=\metricfile \textfosize \tmpa#2%
+ \fontloadmessage{tmpa}{\metricfile\textfosize
+ \space\space\space T: {\noexpand\tmpa#2}}}}%
+ {\hbox{\calculatemetricfile{#1}\textfosize
+ \font\tmpa=\metricfile \textfosize \tmpa#2%
+ \fontloadmessage{tmpa}{\metricfile\textfosize
+ \space\space\space D: {\noexpand\tmpa#2}}}}%
+ {\hbox{\calculatemetricfile{#1}\scriptfosize
+ \font\tmpa=\metricfile \scriptfosize \tmpa#2%
+ \fontloadmessage{tmpa}{\metricfile\scriptfosize
+ \space\space\space S: {\noexpand\tmpa#2}}}}%
+ {\hbox{\calculatemetricfile{#1}\scriptscriptfosize
+ \font\tmpa=\metricfile \scriptscriptfosize \tmpa#2%
+ \fontloadmessage{tmpa}{\metricfile\scriptscriptfosize
+ \space\space\space SS: {\noexpand\tmpa#2}}}}%
+}
+\def\ofshexbox#1#2#3{%
+ \ifx\expandaction\noexpand
+ \noexpand \ofshexbox{#1}#2#3%
+ \else
+ \csname fragilecommand!\endcsname
+ {\ifx F\currentvariant \def\tmpa{#1:-bf!}%
+ \else \ifx T\currentvariant \def\tmpa{#1:-it!}%
+ \else \ifx I\currentvariant \def\tmpa{#1:-bi!}%
+ \else \def\tmpa{#1:-rm!}\fi\fi\fi
+ \expandafter \ifx \csname\tmpa\endcsname \relax
+ \displaymessage{\ofsmessageheader WARNING.
+ \string\ofsboxhex#1#2#3: fam#1 is undeclared,
+ use \string\ofshexboxdef}%
+ \else
+ \expandafter \calculatemetricfile \csname\tmpa\endcsname \fosize
+ \font\fn=\metricfile\fosize \relax
+ \fontloadmessage{fn}{\metricfile\fosize \space\space(ofshexbox)}%
+ \fn
+ \fi \char"#2#3}%
+ \fi}
+
+\def\ofshexboxdef #1#2#3#4#5{%
+ \expandafter\def\csname #1:-rm!\endcsname {#2}%
+ \expandafter\def\csname #1:-bf!\endcsname {#3}%
+ \expandafter\def\csname #1:-it!\endcsname {#4}%
+ \expandafter\def\csname #1:-bi!\endcsname {#5}%
+}
+\def\mathencread#1;{\ofsinput #1.tex \global \expandafter
+ \let \csname f:>#1.tex\endcsname=\relax}
+\def\mathencdef#1{\aftergroup\runplusforget \aftergroup#1\gdef#1}
+\def\runplusforget#1{#1\global\let#1=\relax}
+
+\catcode`\|=\tmpc\relax % original catcode of |
+
+%%% default math sizes:
+\def\textfosize{at10pt}
+\def\scriptfosize{at7pt} \def\scriptscriptfosize{at5pt}
+
+%%%% \endOFSmacro : reads [options] after \input ofs %%%%%%%%%%%%%%%%
+
+\def\endOFSmacro {\expandafter \futurelet \expandafter
+ \tmpa \expandafter \testOFSoptions \endinput}
+\def\testOFSoptions {\ifx [\tmpa \expandafter \readOFSoptions \fi}
+\def\readOFSoptions [#1]{\let\next=\processOFSoption \next #1,^^X,}
+\def\processOFSoption #1,{\if ^^X#1\let\next=\relax
+ \else \input #1 \fi \next}
+
+
+%%%% Default text + math families %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input ofsdef
+
+%%%% End of OFS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endOFSmacro
diff --git a/Master/texmf-dist/tex/generic/ofs/ofsdef.tex b/Master/texmf-dist/tex/generic/ofs/ofsdef.tex
new file mode 100644
index 00000000000..c207308e2c0
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/ofsdef.tex
@@ -0,0 +1,414 @@
+% OFS: The default text families + math families
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Jun 2001 Petr Olsak
+
+% You cannot \input this file because this file is \inputted automatically.
+% See ofsdoc.tex for more details
+
+\ifx\ofsdeclarefamily\undefined
+ \errmessage{You can't \string\input\space the file ofssdef.tex
+ directly from your document%
+ }
+ \endinput \fi
+
+\protectreading ofsdef.tex % This is part of OFS package
+
+%%% Computer Roman family %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\def\defaultextraenc{8c} % You can re-define this macro before
+ % \setfonts in order to change
+ % extra encoding of default families
+
+\ofsputfamlist {^^Jdefaults:}
+
+\ofsdeclarefamily [CMRoman] {% ------------ Computer Modern Roman
+ \loadtextfam cmr\fotenc;%
+ cmbx\fotenc;%
+ cmti\fotenc;%
+ cmbxti\fotenc;\defaultextraenc;%
+ \newvariant8 \sl (Slanted) cmsl\fotenc;\defaultextraenc;%
+ \newvariant9 \bxsl (BoldSlanted) cmbxsl\fotenc;\defaultextraenc;%
+ \modifyenc 8z:csfont;%
+}
+\registerenc: 8z \registerenc: 8t
+\registerenc: 6a
+
+\ofsdeclarefamily [CMSans] {% ------------- Computer Modern Sans Serif
+ \loadtextfam cmss\fotenc;%
+ cmssbx\fotenc;%
+ cmssi\fotenc;%
+ cmssbxti\fotenc;\defaultextraenc;%
+ \modifyenc 8z:csfont;%
+}
+\registerenc: 8z \registerenc: 8t
+\registerenc: 6a
+
+\ofsdeclarefamily [CMTypewriter] {% ------- Computer Modern Typewriter
+ \loadtextfam cmtt\fotenc;%
+ cmttbx\fotenc;%
+ cmitt\fotenc;%
+ cmttbxti\fotenc;\defaultextraenc;%
+ \newvariant8 \sl (Slanted) cmsltt\fotenc;\defaultextraenc;%
+ \modifyenc 8z:csfont;%
+ \modifyenc 8z:nocrossL;%
+}
+\registerenc: 8z \registerenc: 8t
+\registerenc: 6a
+
+
+%%%% Math fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\registertfm cmsy - cmsy10
+\registertfm cmsy 0pt-6pt cmsy5
+\registertfm cmsy 6pt-7pt cmsy6
+\registertfm cmsy 7pt-8pt cmsy7
+\registertfm cmsy 8pt-9pt cmsy8
+\registertfm cmsy 9pt-10pt cmsy9
+\registertfm cmsy 10pt-* cmsy10
+
+\registertfm cmmi - cmmi10
+\registertfm cmmi 0pt-6pt cmmi5
+\registertfm cmmi 6pt-7pt cmmi6
+\registertfm cmmi 7pt-8pt cmmi7
+\registertfm cmmi 8pt-9pt cmmi8
+\registertfm cmmi 9pt-10pt cmmi9
+\registertfm cmmi 10pt-12pt cmmi10
+\registertfm cmmi 12pt-* cmmi12
+
+%%%% CSfonts (encoding: 8z) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\registertfm cmr8z - csr10
+\registertfm cmr8z 0pt-6pt csr5
+\registertfm cmr8z 6pt-7pt csr6
+\registertfm cmr8z 7pt-8pt csr7
+\registertfm cmr8z 8pt-9pt csr8
+\registertfm cmr8z 9pt-10pt csr9
+\registertfm cmr8z 10pt-12pt csr10
+\registertfm cmr8z 12pt-17pt csr12
+\registertfm cmr8z 17pt-* csr17
+
+\registertfm cmbx8z - csbx10
+\registertfm cmbx8z 0pt-6pt csbx5
+\registertfm cmbx8z 6pt-7pt csbx6
+\registertfm cmbx8z 7pt-8pt csbx7
+\registertfm cmbx8z 8pt-9pt csbx8
+\registertfm cmbx8z 9pt-10pt csbx9
+\registertfm cmbx8z 10pt-12pt csbx10
+\registertfm cmbx8z 12pt-* csbx12
+
+\registertfm cmti8z - csti10
+\registertfm cmti8z 0pt-8pt csti7
+\registertfm cmti8z 8pt-9pt csti8
+\registertfm cmti8z 9pt-10pt csti9
+\registertfm cmti8z 10pt-12pt csti10
+\registertfm cmti8z 12pt-17pt csti12
+\registertfm cmti8z 17pt-* csti17
+
+\registertfm cmbxti8z - csbxti10
+\registertfm cmbxti8z 0pt-12pt csbxti10
+\registertfm cmbxti8z 12pt-17pt csbxti12
+\registertfm cmbxti8z 17pt-* csbxti17
+
+\registertfm cmsl8z - cssl10
+\registertfm cmsl8z 0pt-6pt cssl5
+\registertfm cmsl8z 6pt-7pt cssl6
+\registertfm cmsl8z 7pt-8pt cssl7
+\registertfm cmsl8z 8pt-9pt cssl8
+\registertfm cmsl8z 9pt-10pt cssl9
+\registertfm cmsl8z 10pt-12pt cssl10
+\registertfm cmsl8z 12pt-17pt cssl12
+\registertfm cmsl8z 17pt-* cssl17
+
+\registertfm cmbxsl8z - csbxsl10
+\registertfm cmsltt8z - cssltt10
+
+\registertfm cmss8z - csss10
+\registertfm cmss8z 0pt-9pt csss8
+\registertfm cmss8z 9pt-10pt csss9
+\registertfm cmss8z 10pt-12pt csss10
+\registertfm cmss8z 12pt-17pt csss12
+\registertfm cmss8z 17pt-* csss17
+
+\registertfm cmssbx8z - csssbx10
+
+\registertfm cmssi8z - csssi10
+\registertfm cmssi8z 0pt-9pt csssi8
+\registertfm cmssi8z 9pt-10pt csssi9
+\registertfm cmssi8z 10pt-12pt csssi10
+\registertfm cmssi8z 12pt-17pt csssi12
+\registertfm cmssi8z 17pt-* csssi17
+
+\registertfm cmtt8z - cstt10
+\registertfm cmtt8z 0pt-9pt cstt8
+\registertfm cmtt8z 9pt-10pt cstt9
+\registertfm cmtt8z 10pt-12pt cstt10
+\registertfm cmtt8z 12pt-* cstt12
+
+\registertfm cmitt8z - csitt10
+
+%%% unavailable in cm*8z :-(
+
+\registertfm cmssbxti8z - -
+\registertfm cmttbx8z - -
+\registertfm cmttbxti8z - -
+
+
+%%%% EC fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\registerECfont #1 #2 {%
+ \registertfm #1 - #21000
+ \registertfm #1 0pt-6pt #20500
+ \registertfm #1 6pt-7pt #20600
+ \registertfm #1 7pt-8pt #20700
+ \registertfm #1 8pt-9pt #20800
+ \registertfm #1 9pt-10pt #20900
+ \registertfm #1 10pt-10.95pt #21000
+ \registertfm #1 10.95pt-12pt #21095
+ \registertfm #1 12pt-14.4pt #21200
+ \registertfm #1 14.4pt-17.28pt #21440
+ \registertfm #1 17.28pt-20.74pt #21728
+ \registertfm #1 20.74pt-24.88pt #22074
+ \registertfm #1 24.88pt-29.86pt #22488
+ \registertfm #1 29.86pt-35.83pt #22986
+ \registertfm #1 35.83pt-* #23583
+}
+\def\registerECTTfont #1 #2 {%
+ \registertfm #1 - #21000
+ \registertfm #1 0pt-9pt #20800
+ \registertfm #1 9pt-10pt #20900
+ \registertfm #1 10pt-10.95pt #21000
+ \registertfm #1 10.95pt-12pt #21095
+ \registertfm #1 12pt-14.4pt #21200
+ \registertfm #1 14.4pt-17.28pt #21440
+ \registertfm #1 17.28pt-20.74pt #21728
+ \registertfm #1 20.74pt-24.88pt #22074
+ \registertfm #1 24.88pt-29.86pt #22488
+ \registertfm #1 29.86pt-35.83pt #22986
+ \registertfm #1 35.83pt-* #23583
+}
+
+\registerECfont cmr8t ecrm
+\registerECfont cmbx8t ecbx
+\registerECfont cmti8t ecti
+\registerECfont cmbxti8t ecbi
+\registerECfont cmsl8t ecsl
+\registerECfont cmbxsl8t ecbl
+
+\registerECfont cmss8t ecss
+\registerECfont cmssbx8t ecsx
+\registerECfont cmssi8t ecsi
+\registerECfont cmssbxti8t ecso
+
+\registerECTTfont cmtt8t ectt
+\registerECTTfont cmitt8t ecit
+\registerECTTfont cmsltt8t ecst
+
+\registertfm cmttbx8t - -
+\registertfm cmttbxti8t - -
+
+\registerECfont cmr8c tcrm
+\registerECfont cmbx8c tcbx
+\registerECfont cmti8c tcti
+\registerECfont cmbxti8c tcbi
+\registerECfont cmsl8c tcsl
+\registerECfont cmbxsl8c tcbl
+
+\registerECfont cmss8c tcss
+\registerECfont cmssbx8c tcsx
+\registerECfont cmssi8c tcsi
+\registerECfont cmssbxti8c tcso
+
+\registerECTTfont cmtt8c tctt
+\registerECTTfont cmitt8c tcit
+\registerECTTfont cmsltt8c tcst
+
+
+%%%% Times, Helvetica, Courier %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setfontshook {\let\TeX=\origTeX}
+\let\origTeX=\TeX
+\let\plainL=\L % used in ofs-8z.tex
+
+\ofsdeclarefamily [Times] {% -------------- Times Roman
+ \loadtextfam (Roman) ptmr\fotenc;%
+ ptmb\fotenc;%
+ ptmri\fotenc;%
+ ptmbi\fotenc;\defaultextraenc;%
+ \def\TeX{T\kern-.1667em\lower.3333ex\hbox{E}\kern-.125emX}%
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+\ofsdeclarefamily [Helvetica] {% ---------- Helvetica
+ \loadtextfam phvr\fotenc;%
+ phvb\fotenc;%
+ (Oblique) phvro\fotenc;%
+ (BoldOblique) phvbo\fotenc;\defaultextraenc;%
+ \newvariant0 \nrm (Narrow) phvr\fotenc n;;%
+ \newvariant1 \nbf (NarrowBold) phvb\fotenc n;;%
+ \newvariant2 \nit (NarrowOblique) phvro\fotenc n;;%
+ \newvariant3 \nbi (NarrowBoldOblique) phvbo\fotenc n;;%
+ \def\TeX{T\kern-.12em\lower.4ex\hbox{E}\kern-0.09emX}%
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+\registertfm phvr8zn - phvrn8z %% There is a bug in cspsfonts:
+\registertfm phvb8zn - phvbn8z %% standard metric name: phvr8zn
+\registertfm phvro8zn - phvron8z %% real metric name: phvrn8z
+\registertfm phvbo8zn - phvbon8z
+
+\ofsdeclarefamily [Courier] {% ------------ Courier
+ \loadtextfam pcrr\fotenc;%
+ pcrb\fotenc;%
+ (Oblique) pcrro\fotenc;%
+ (BoldOblique) pcrbo\fotenc;\defaultextraenc;%
+ \let\TeX=\origTeX
+ \modifyenc 8z:badaccents;%
+ \modifyenc 8t:losschars;%
+ \modifyenc 8c:poor;%
+}
+\registerenc: 8z \registerenc: 8t
+
+\registertfm pcrr8z - pcrr8u
+\registertfm pcrb8z - pcrb8u
+\registertfm pcrro8z - pcrro8u
+\registertfm pcrbo8z - pcrbo8u
+
+
+%%%% Math families %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\loadPSnormalmath{%
+ \loadmathfam 0[-rm/]% Actual Roman font
+ \loadmathfam 1[-it/]% Actual Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/cmsy]% Standard symbols from CM
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[tenex/]% Standard extra symbols from CM
+ \chardef\symbfam 4
+ \loadmathfam \symbfam [/psyr]% PostScript Symbol
+ \chardef\symbofam 5
+ \loadmathfam \symbofam [/psyro]% PostScript Symbol Oblique
+ \chardef\bffam 6
+ \loadmathfam \bffam [-bf/]% Actual Bold font
+ \chardef\bifam 7
+ \loadmathfam \bifam [-bi/]% Actual Bold Italic
+ \lastfam = 7
+ \chardef\itfam 1
+ \let\slfam\undefined \let\ttfam\undefined
+ \setfosize \tmpa mag1.44:%
+ \font \bigsymbofont=psyr \tmpa% Big variant for \displaysize
+ \fontloadmessage{bigsymbofont}{psyr\space\tmpa}%
+}
+\def\loadPSboldmath{%
+ \loadmathfam 0[-bf/]% Actual Bold font
+ \loadmathfam 1[-bi/]% Actual Bold-Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/cmbsy]% Bold symbols from CM
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[tenex/]% Standard extra symbols from CM
+ \chardef\symbfam 4
+ \loadmathfam \symbfam [/psyr]% PostScript Symbol
+ \chardef\symbofam 5
+ \loadmathfam \symbofam [/psyro]% PostScript Symbol Oblique
+ \lastfam = 7 % needs to be the same as in normal version
+ \chardef\itfam 1
+ \chardef\bifam 1
+ \chardef\bffam 0
+ \let\slfam\undefined \let\ttfam\undefined
+ \setfosize \tmpa mag1.44:%
+ \font \bigsymbofont=psyr \tmpa% Big variant for \displaysize
+ \fontloadmessage{bigsymbofont}{psyr\space\tmpa}%
+}
+\def\loadCMnormalmath{%
+ \loadmathfam 0[/cmr8z]% Roman font
+ \defaultskewchar=128
+ \loadmathfam 1[/cmmi]% Math Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/cmsy]% Standard symbols from CM
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/cmex]% Standard extra symbols from CM
+ \chardef\itfam 4
+ \noindexsize\loadmathfam \itfam [/cmti\fotenc]% Text Italic
+ \chardef\slfam 5
+ \noindexsize\loadmathfam \slfam [/cmsl\fotenc]% Slanted
+ \chardef\bffam 6
+ \loadmathfam \bffam [/cmbx\fotenc]% Bold font
+ \chardef\ttfam 7
+ \noindexsize\loadmathfam \ttfam [/cmtt\fotenc]% TypeWriter
+ \lastfam =7
+}
+\def\loadCMboldmath{%
+ \loadmathfam 0[/cmbx8z]% Roman font
+ \defaultskewchar=127
+ \loadmathfam 1[/cmmib]% Math Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/cmbsy]% Standard symbols from CM
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/cmex]% Standard extra symbols from CM
+ \chardef\itfam 4
+ \noindexsize\loadmathfam \itfam [/cmbxti\fotenc]% Text Italic
+ \chardef\slfam 5
+ \noindexsize\loadmathfam \slfam [/cmbxsl\fotenc]% Slanted
+ \chardef\bffam 6
+ \loadmathfam \bffam [/cmbx\fotenc]% Bold font
+ \chardef\ttfam 7
+ \noindexsize\loadmathfam \ttfam [/cmtt\fotenc]% TypeWriter
+ \lastfam =7
+}
+\def\setPSmathchars{\mathencread ofs-ps;}
+\let\setCMmathchars=\relax % We need not do any work
+
+%% No size differences in standard CM fonts:
+
+\registertfm cmbsy - cmbsy10
+\registertfm cmex - cmex10
+\registertfm cmmib - cmmib10
+
+%%%% Math defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \fomenc\undefined \def\fomenc{PS}\fi
+\def\mathversion{normal}
+\def\defaultmathfonts{%
+ \expandafter \ifx \csname load\fomenc\mathversion math\endcsname \relax
+ \message{\ofsmessageheader WARNING:
+ \string\fomenc=\fomenc\space -- undeclared font-set,
+ I use \string\def\string\fomenc{PS}}
+ \def\fomenc{PS}%
+ \fi
+ \csname load\fomenc\mathversion math\endcsname}
+\def\defaultmathchars{\csname set\fomenc mathchars\endcsname}
+\let\mathcharsback=\relax
+\def\mathfonts{\defaultmathfonts}
+\def\mathchars{\defaultmathchars}
+
+%%%% \ofshexbox is more intelligent alternative to \mathhexbox
+
+\ofshexboxdef 2 {cmsy}{cmbsy10}{cmsy}{cmbsy10}
+ % only fam2 is declared because only \mathhexbox2.. is used in plain
+
+\def\ofscopyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\ofshexbox20D}}}
+
+
+%%%% \dots macro (is defined via math mode in original plain) %%%%
+
+\def\dots{.% this dot may be kerned with previous character and it
+ \ifmmode % protects the \dots macro in \halign data
+ \mathinner{\ldotp\ldotp}%
+ \else
+ \ifdim\fontdimen3\font=0pt % may be non-proporcional font
+ ..%
+ \else
+ \kern.5\fontdimen2\font
+ .\kern.5\fontdimen2\font
+ .\kern.5\fontdimen2\font
+ \fi\fi
+}
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/ofs/pantyk.tex b/Master/texmf-dist/tex/generic/ofs/pantyk.tex
new file mode 100644
index 00000000000..b147801e338
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/pantyk.tex
@@ -0,0 +1,126 @@
+% The file pantyk.tex (C) Petr Olsak, May 2004
+% Polish Antykwa ... OFS declaration file
+
+% After "\input pantyk", you can use
+%
+% \showfonts ... to show the loaded fontfamilies on terminal
+% \fontusage ... to show the usage of new TeX macros on terminal
+
+\ifx \ofsdeclarefamily\undefined \input ofs \fi
+\protectreading pantyk.tex % This is part of OFS package
+
+\ofsputfamlist {^^Jpantyk.tex:}
+
+\ofsdeclarefamily [AntykwaTorunska] {% --------------- AntykwaTorunska
+ \loadtextfam (Regular) \nowackienc-anttr;%
+ (Bold) \nowackienc-anttb;%
+ (Italic) \nowackienc-anttri;%
+ (BoldItalic) \nowackienc-anttbi;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttl;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttli;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttm;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttmi;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+\ofsdeclarefamily [AntykwaTorunskaCaps] {% ------- AntykwaTorunskaCaps
+ \loadtextfam (Regular) \nowackienc-anttrcap;%
+ (Bold) \nowackienc-anttbcap;%
+ (Italic) \nowackienc-anttricap;%
+ (BoldItalic) \nowackienc-anttbicap;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttlcap;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttlicap;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttmcap;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttmicap;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+\ofsdeclarefamily [AntykwaTorunskaCond] {% ------- AntykwaTorunskaCond
+ \loadtextfam (Regular) \nowackienc-anttcr;%
+ (Bold) \nowackienc-anttcb;%
+ (Italic) \nowackienc-anttcri;%
+ (BoldItalic) \nowackienc-anttcbi;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttcl;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttcli;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttcm;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttcmi;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+\ofsdeclarefamily [AntykwaTorunskaCondCaps] {% ---- AntykwaTorunskaCondCaps
+ \loadtextfam (Regular) \nowackienc-anttcrcap;%
+ (Bold) \nowackienc-anttcbcap;%
+ (Italic) \nowackienc-anttcricap;%
+ (BoldItalic) \nowackienc-anttcbicap;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttclcap;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttclicap;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttcmcap;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttcmicap;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+% Janusz Nowacki use a non standard tfm names. We need
+% to define a conversion table:
+
+\def\nowackienc{\csname nowacki:\fotenc\endcsname}
+\expandafter \def \csname nowacki:8t\endcsname {cork}
+\expandafter \def \csname nowacki:8z\endcsname {cs}
+\expandafter \def \csname nowacki:6w\endcsname {1251}
+\expandafter \def \csname nowacki:7k\endcsname {wncyr}
+\expandafter \def \csname nowacki:8a\endcsname {texansi}
+\expandafter \def \csname nowacki:8x\endcsname {exp}
+
+% The expert fonts are the same for Caps and Normal:
+
+\registertfm exp-anttrcap - exp-anttr
+\registertfm exp-anttbcap - exp-anttb
+\registertfm exp-anttricap - exp-anttri
+\registertfm exp-anttbicap - exp-anttbi
+\registertfm exp-anttlcap - exp-anttl
+\registertfm exp-anttlicap - exp-anttli
+\registertfm exp-anttmcap - exp-anttm
+\registertfm exp-anttmicap - exp-anttmi
+
+\registertfm exp-anttcrcap - exp-anttcr
+\registertfm exp-anttcbcap - exp-anttcb
+\registertfm exp-anttcricap - exp-anttcri
+\registertfm exp-anttcbicap - exp-anttcbi
+\registertfm exp-anttclcap - exp-anttcl
+\registertfm exp-anttclicap - exp-anttcli
+\registertfm exp-anttcmcap - exp-anttcm
+\registertfm exp-anttcmicap - exp-anttcmi
+
+\ofsdeclarefamily [AntykwaPoltawskiego] {% --------------- AntykwaPoltawskiego
+ \loadtextfam (Regular) \nowackienc-antpr;%
+ (Bold) \nowackienc-antpb;%
+ (Italic) \nowackienc-antpri;%
+ (BoldItalic) \nowackienc-antpbi;;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z
+
+\endinput
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/generic/ofs/txfn.tex b/Master/texmf-dist/tex/generic/ofs/txfn.tex
new file mode 100644
index 00000000000..eb17ae6dd1e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ofs/txfn.tex
@@ -0,0 +1,262 @@
+% OFS: TX fonts, declaration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Apr. 2004 Petr Olsak
+
+%% see end of this file for more informations
+
+\protectreading txfn.tex % This is part of OFS package
+
+\ofsputfamlist {^^Jtxfn.tex:}
+
+\ofsdeclarefamily [TXRoman] {% ---------- TX fonts: Times Roman
+ \loadtextfam (Upright) txr\fotenc;%
+ txb\fotenc;%
+ txi\fotenc;%
+ txbi\fotenc;8c;%
+ \newvariant6 \sl (Slanted) txsl\fotenc;8c;%
+ \newvariant7 \bsl (BoldSlanted) txbsl\fotenc;8c;%
+ \newvariant8 \csc (Cap+SmallCap) txsc\fotenc;8c;%
+ \newvariant9 \bcsc (BoldCap+SmallCap) txbsc\fotenc;8c;%
+ \def\TeX{T\kern-.1667em\lower.3333ex\hbox{E}\kern-.125emX}%
+}
+\registerenc: 8t
+
+\ofsdeclarefamily [TXSans] {% ---------- TX fonts: Helvetica
+ \loadtextfam (Upright) txss\fotenc;%
+ txbss\fotenc;%
+ (Slanted) txsssl\fotenc;%
+ (BoldSlanted) txbsssl\fotenc;8c;%
+ \newvariant8 \csc (Cap+SmallCap) txsssc\fotenc;8c;%
+ \newvariant9 \bcsc (BoldCap+SmallCap) txbsssc\fotenc;8c;%
+ \def\TeX{T\kern-.12em\lower.4ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t
+
+\ofsdeclarefamily [TXTypewriter] {% ------ TX fonts: Typewriter
+ \loadtextfam (Upright) txtt\fotenc;%
+ txbtt\fotenc;%
+ (Slanted) txttsl\fotenc;%
+ (BoldSlanted) txbttsl\fotenc;8c;%
+ \newvariant8 \csc (Cap+SmallCap) txttsc\fotenc;8c;%
+ \newvariant9 \bcsc (BoldCap+SmallCap) txbttsc\fotenc;8c;%
+ \let\TeX=\origTeX
+}
+\registerenc: 8t
+
+\registertfm txr8t - t1xr %
+\registertfm txb8t - t1xb %
+\registertfm txi8t - t1xi %
+\registertfm txbi8t - t1xbi %
+\registertfm txsl8t - t1xsl %
+\registertfm txbsl8t - t1xbsl %
+\registertfm txsc8t - t1xsc %
+\registertfm txbsc8t - t1xbsc %
+
+\registertfm txss8t - t1xss %
+\registertfm txbss8t - t1xbss %
+\registertfm txsssl8t - t1xsssl %
+\registertfm txbsssl8t - t1xbsssl %
+\registertfm txsssc8t - t1xsssc %
+\registertfm txbsssc8t - t1xbsssc %
+
+\registertfm txtt8t - t1xtt %
+\registertfm txbtt8t - t1xbtt %
+\registertfm txttsl8t - t1xttsl %
+\registertfm txbttsl8t - t1xbttsl %
+\registertfm txttsc8t - t1xttsc %
+\registertfm txbttsc8t - t1xbttsc %
+
+\registertfm txr8c - tcxr %
+\registertfm txb8c - tcxb %
+\registertfm txi8c - tcxi %
+\registertfm txbi8c - tcxbi %
+\registertfm txsl8c - tcxsl %
+\registertfm txbsl8c - tcxbsl %
+\registertfm txsc8c - tcxr %
+\registertfm txbsc8c - tcxb %
+
+\registertfm txss8c - tcxss %
+\registertfm txbss8c - tcxbss %
+\registertfm txsssl8c - tcxsssl %
+\registertfm txbsssl8c - tcxbsssl %
+\registertfm txsssc8c - tcxss %
+\registertfm txbsssc8c - tcxbss %
+
+\registertfm txtt8c - tcxtt %
+\registertfm txbtt8c - tcxbtt %
+\registertfm txttsl8c - tcxttsl %
+\registertfm txbttsl8c - tcxbttsl %
+\registertfm txttsc8c - tcxtt %
+\registertfm txbttsc8c - tcxbtt %
+
+\def\loadTXnormalmath{%
+ \loadmathfam 0[/txr]% Roman font
+ \defaultskewchar=128
+ \loadmathfam 1[/txmi]% Math Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/txsy]% Standard symbols
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/txex]% Standard extra symbols
+ \chardef\itfam 4
+ \loadmathfam \itfam [/txi]% Text Italic
+ \chardef\bffam 5
+ \loadmathfam \bffam [/txb]% Bold font
+ \chardef\bifam 6
+ \loadmathfam \bifam [/txbi]% Bold Italic
+ \chardef\msamfam 7
+ \loadmathfam \msamfam [/txsya]% MSAM, symbols from ASMTeX
+ \chardef\msbmfam 8
+ \loadmathfam \msbmfam [/txsyb]% MSBM, symbols from AMSTeX
+ \chardef\txsycfam 9
+ \loadmathfam \txsycfam [/txsyc]% New symbols from TX fonts
+ \chardef\txmiafam 10
+ \loadmathfam \txmiafam [/txmia]% Upright math italic
+ \chardef\txexafam 11
+ \loadmathfam \txexafam [/txexa]% Extra extra symbols
+ \let\slfam\undefined \let\ttfam\undefined
+ \lastfam =11 % four families for user
+}
+\def\loadTXboldmath{%
+ \loadmathfam 0[/txb]% Roman font
+ \defaultskewchar=127
+ \loadmathfam 1[/txbmi]% Math Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/txbsy]% Standard symbols
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/txbex]% Standard extra symbols
+ \chardef\itfam 4
+ \loadmathfam \itfam [/txbi]% Text Italic
+ \chardef\msamfam 7
+ \loadmathfam \msamfam [/txbsya]% MSAM, symbols from ASMTeX
+ \chardef\msbmfam 8
+ \loadmathfam \msbmfam [/txbsyb]% MSBM, symbols from AMSTeX
+ \chardef\txsycfam 9
+ \loadmathfam \txsycfam [/txbsyc]% New symbols from TX fonts
+ \chardef\txmiafam 10
+ \loadmathfam \txmiafam [/txbmia]% Upright math italic
+ \chardef\txexafam 11
+ \loadmathfam \txexafam [/txbexa]% Extra extra symbols
+ \chardef\bffam=0 \let\bifam=\itfam
+ \let\slfam\undefined \let\ttfam\undefined
+ \lastfam =11 % needs to be the same as in normalmath
+}
+\def\loadPXnormalmath{%
+ \loadmathfam 0[-rm/]% Roman font
+ \loadmathfam 1[-it/]% Math Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/txsy]% Standard symbols
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/txex]% Standard extra symbols
+ \chardef\mifam 4
+ \loadmathfam \mifam [/txmi]% Math Italic (greek symbols)
+ \chardef\bffam 5
+ \loadmathfam \bffam [-bf/]% Bold font
+ \chardef\bifam 6
+ \loadmathfam \bifam [-bi/]% Bold Italic
+ \chardef\msamfam 7
+ \loadmathfam \msamfam [/txsya]% MSAM, symbols from ASMTeX
+ \chardef\msbmfam 8
+ \loadmathfam \msbmfam [/txsyb]% MSBM, symbols from AMSTeX
+ \chardef\txsycfam 9
+ \loadmathfam \txsycfam [/txsyc]% New symbols from TX fonts
+ \chardef\txmiafam 10
+ \loadmathfam \txmiafam [/txmia]% Upright math italic
+ \chardef\txexafam 11
+ \loadmathfam \txexafam [/txexa]% Extra extra symbols
+ \chardef\rmsyfam 12
+ \loadmathfam \rmsyfam [/txr]% TX Roman font (for uppercase greek)
+ \let\slfam\undefined \let\ttfam\undefined
+ \lastfam =12 % three families for user
+}
+\def\loadPXboldmath{%
+ \loadmathfam 0[-bf/]% Roman font
+ \loadmathfam 1[-bi/]% Math Italic font
+ \defaultskewchar=48
+ \loadmathfam 2[/txbsy]% Standard symbols
+ \defaultskewchar=-1
+ \noindexsize\loadmathfam 3[/txbex]% Standard extra symbols
+ \chardef\mifam 4
+ \loadmathfam \mifam [/txbmi]% Math Italic (greek symbols)
+ \chardef\msamfam 7
+ \loadmathfam \msamfam [/txbsya]% MSAM, symbols from ASMTeX
+ \chardef\msbmfam 8
+ \loadmathfam \msbmfam [/txbsyb]% MSBM, symbols from AMSTeX
+ \chardef\txsycfam 9
+ \loadmathfam \txsycfam [/txbsyc]% New symbols from TX fonts
+ \chardef\txmiafam 10
+ \loadmathfam \txmiafam [/txbmia]% Upright math italic
+ \chardef\txexafam 11
+ \loadmathfam \txexafam [/txbexa]% Extra extra symbols
+ \chardef\rmsyfam 12
+ \loadmathfam \rmsyfam [/txb]% TX Roman font (for uppercase greek)
+ \chardef\bffam=0 \chardef\bifam=1
+ \let\slfam\undefined \let\ttfam\undefined
+ \lastfam =12 % needs to be the same as in normalmath
+}
+\def\setTXmathchars{%
+ \mathencread ofs-ams;%
+ \mathencread ofs-tx;%
+}
+\def\setPXmathchars{%
+ \mathencread ofs-px;%
+ \mathencread ofs-ams;%
+ \mathencread ofs-tx;%
+ \addcmd \mathcharsback {\mathencread ofs-cm;}%
+}
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+After:
+
+\input txfn
+
+the new text families TXRoman, TXSans and TXTypewriter
+are declared and new math encodings TX and PX are declared.
+
+TXRoman: the same as Times, but more variants \sl, \bsl, \csc and
+ \bcsc are defined and extension font is used from TXfonts
+ (all text-companion symbols are available).
+TXSans: the same as Helvetica, but more variants \csc and \bcsc
+ are defined and extension font is used from TXfonts.
+TXTypewriter: Special typewriter-like family from TXfonts.
+
+TX: TXfonts will be used in all families of math fonts.
+PX: fam0 (roman) will be the same as current text roman variant,
+ fam1 (math-italic) will be the same as current text italic,
+ other math symbols will be used from TXfonts.
+
+Control sequences of all TX symbols (many hunderds) are available
+in math mode after \setmath[//] if \def\fomenc{TX} or
+\def\fomenc{PX} is used. See TX documentation for more information
+about names of these sequences and symbols shapes.
+
+Not all possible math alphabets are allocated. For example, typewriter
+and slanted variants are not allocated by default in order to keep the
+space of math families. You can add math alphabets by hand:
+
+* Sans serif bold slanted variant for math (usable for vectors):
+
+\addcmd\mathfonts {\newmathfam\vecfam \loadmathfam\vecfam [/txbsssl]}
+\addcmd\mathchars {\def\vec##1{{\fam\vecfam##1}}}
+
+* \sl variant for math (I don't know how it is usable):
+
+\addcmd\mathfonts {\def\tmpa{bold}%
+ \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{}\fi
+ \newmathfam\slfam \loadmathfam\slfam [/tx\tmpa sl]}
+
+* \tt variant for math (I don't know how it is usable):
+
+\addcmd\mathfonts {\def\tmpa{bold}%
+ \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{}\fi
+ \newmathfam\ttfam \loadmathfam\ttfam [/tx\tmpa tt]}
+
+See end of amsfn.tex file for more examples of math alphabets
+(Euler Fraktur, Euler Script etc.).
+
+
+
+
+
+