summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:02:59 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:02:59 +0000
commita22c2562845b4ba32acd63d5a8ca954c94d33d21 (patch)
tree9e3e309b252aa8063b8c0cc56bb2559b70493cee /Master
parent59d6f64add8d777784b3f0c5ea3fc8fb79723cd9 (diff)
polyglot
git-svn-id: svn://tug.org/texlive/trunk@1206 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/tex/latex/polyglot/polyglot.cfg40
-rw-r--r--Master/texmf-dist/tex/latex/polyglot/polyglot.def707
-rw-r--r--Master/texmf-dist/tex/latex/polyglot/polyglot.sty757
3 files changed, 1504 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/polyglot/polyglot.cfg b/Master/texmf-dist/tex/latex/polyglot/polyglot.cfg
new file mode 100644
index 00000000000..415383c4150
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglot/polyglot.cfg
@@ -0,0 +1,40 @@
+%%
+%% This is file `polyglot.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% polyglot.dtx (with options: `config')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from polyglot.cfg.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file polyglot.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+
+\def\fileversion{1.1}
+\def\filedate{September 1, 1997}
+\def\docdate{September 1, 1997}
+
+
+\SetPatterns{english}{0}
+
+\LoadLanguage{english}{english}{}
+\LoadLanguage{american}[english]{english}{}
+\LoadLanguage{french}{english}{}
+\LoadLanguage{german}{english}{}
+\LoadLanguage{austrian}[german]{english}{}
+\LoadLanguage{spanish}{english}{}
+\LoadLanguage{hebrew}[r_hebrew]{english}{}
+\endinput
+%%
+%% End of file `polyglot.cfg'.
diff --git a/Master/texmf-dist/tex/latex/polyglot/polyglot.def b/Master/texmf-dist/tex/latex/polyglot/polyglot.def
new file mode 100644
index 00000000000..1457cf6f7e4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglot/polyglot.def
@@ -0,0 +1,707 @@
+%%
+%% This is file `polyglot.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% polyglot.dtx (with options: `preload')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from polyglot.def.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file polyglot.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+
+\def\fileversion{1.1}
+\def\filedate{September 1, 1997}
+\def\docdate{September 1, 1997}
+
+
+\chardef\f@@r=4
+\newcount\pg@count
+
+\def\pg@@{pg-}
+\def\pg@@text{pg-text-}
+\def\pg@@math{pg-math-}
+
+\def\pg@flag#1{\csname\pg@@#1-flag\endcsname}
+\def\pg@@flag#1{\pg@@#1-flag}
+
+\def\pg@last{{}{}}
+
+\def\pg@err#1{\PackageError{polyglot}{#1}%
+ {See polyglot documentation for explanation}}
+
+
+\AtBeginDocument{\if@filesw\else
+ \def\pg@file@setup#1#2#3{}%
+ \let\pg@file@write\@gobble
+ \let\pg@file@ends\relax\fi}
+
+\def\pg@bug@err#1{\pg@err{Bug found (#1)}}
+
+
+\def\pg@add@to#1{%
+ \@ifundefined{\pg@@flag{#1}}%
+ {\pg@err{Unknown group}}
+ {\@ifundefined{pg@no#1}%
+ {\@ifundefined{\pg@@\thelanguage-#1}%
+ {\expandafter\let\csname\pg@@\thelanguage-#1\endcsname\@empty}%
+ \@empty
+ \expandafter\pg@after
+ \csname\pg@@\thelanguage-#1\expandafter\endcsname}\@gobble}}
+
+\@onlypreamble\pg@add@to
+
+\def\pg@after#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\def\pg@to@list#1{\@ifundefined{languagelist}%
+ {\edef\languagelist{#1}}%
+ {\edef\languagelist{\languagelist,#1}}}
+
+\@onlypreamble\pg@to@list
+
+\def\pg@process#1#2{%
+ \begingroup\edef\pg@a{\endgroup
+ \noexpand\pg@xproc\noexpand#1#2,\noexpand\@nil,}\pg@a}
+\def\pg@xproc#1#2,{\ifx\@nil#2\else
+ #1{#2}\expandafter\pg@xproc\expandafter#1\fi}
+
+\def\pg@idend#1{#1\egroup}
+
+
+\long\def\pg@cmd#1#2{%
+ \pg@@
+ \expandafter\ifx\csname\pg@@?#1\endcsname\relax#1%
+ \else\expandafter\ifx\csname\pg@@#1-\string#2\endcsname\relax
+ \csname\pg@@?#1\endcsname
+ \else#1\fi\fi-\string#2}
+
+
+\def\pg@ifno#1#2#3#4{%
+ \if#1n\if#2o#3\else\@firstoftwo\fi\else#4\fi}
+
+\def\pg@step{\afterassignment\pg@groups\def\pg@elt##1}
+
+\def\selectlanguage{%
+ \@ifstar{\pg@sel@i*}{\pg@sel@i{}}}
+
+\def\pg@sel@i#1{\begingroup\catcode`\ =9 %
+ \@ifnextchar[{\pg@sel@ii{#1}{}}{\pg@sel@ii{#1}{}[]}}
+
+\def\pg@sel@ii#1#2[#3]#4{%
+ \endgroup
+ \if!#1!%
+ \edef\pg@a{{\expandafter\@firstoftwo\pg@last}{[#3]{#4}}}%
+ \else
+ \def\pg@a{{[#3]{#4}}{}}%
+ \fi
+ \ifx\pg@a\pg@last\else
+ \let\pg@last\pg@a
+ \aftergroup\pg@file@ends
+ \pg@file@setup{#1}{#3}{#4}%
+ \pg@sel@iii#1[#3]{#4}%
+ \fi#2}
+
+\def\pg@sel@iii#1[#2]#3{%
+ \@ifundefined{pgh@#3}%
+ {\pg@err{Unknown language}\language\z@}%
+ {\language\csname pgh@#3\endcsname}%
+ \pg@step{\ifcase\pg@flag{##1}\or\or
+ \@gobble\or\pg@disable{##1}\else
+ \advance\pg@flag{##1}-\tw@\fi}%
+ \let\thelanguage\pg@main
+ \def\pg@elt##1{\pg@a##1\pg@a}%
+ \if!#1!%
+ \def\pg@a##1##2##3\pg@a{%
+ \pg@ifno##1##2%
+ {\pg@ifgroup{##3}{\advance\pg@flag{##3}\f@@r}}%
+ {\pg@ifgroup{##1##2##3}%
+ {\pg@after\pg@d{\pg@elt{##1##2##3}}%
+ \advance\pg@flag{##1##2##3}\f@@r}}}%
+ \let\pg@d\@empty
+ \if!#2!\pg@text@groups\else
+ \pg@process\pg@elt{#2}\fi
+ \pg@step{\ifnum\pg@flag{##1}=\tw@\pg@enable{##1}\fi}%
+ \pg@step{\ifnum\pg@flag{##1}=\f@@r\pg@disable{##1}\fi}%
+ \pg@step{\pg@count\pg@flag{##1}%
+ \pg@flag{##1}\ifnum\pg@count>\thr@@\f@@r\else\z@\fi
+ \ifodd\pg@count\advance\pg@flag{##1}\@ne\fi}%
+ \edef\thelanguage{#3}%
+ \def\pg@elt##1{\pg@enable{##1}\advance\pg@flag{##1}-\tw@}%
+ \pg@d\let\pg@d\@undefined
+ \else
+ \pg@step{\ifnum\pg@flag{##1}=\z@\pg@disable{##1}\fi}%
+ \def\pg@elt##1{\pg@a##1\pg@a}%
+ \if!#2!\else%
+ \def\pg@a##1##2##3\pg@a{%
+ \pg@ifno##1##2%
+ {\pg@ifgroup{##3}{\advance\pg@flag{##3}-\@m}}% Just a mark
+ {\pg@err{Invalid option skipped}{}}}%
+ \pg@process\pg@elt{#2}%
+ \fi
+ \edef\pg@main{#3}%
+ \edef\thelanguage{#3}%
+ \pg@step{\ifnum\pg@flag{##1}<\z@\pg@flag{##1}\@ne
+ \else\pg@flag{##1}\z@\pg@enable{##1}\fi}%
+ \fi}
+
+\def\uselanguage{\bgroup\begingroup\catcode`\ =9
+ \@ifnextchar[{\pg@sel@ii{}\pg@idend}%
+ {\pg@sel@ii{}\pg@idend[]}}
+
+\def\unselectlanguage{\@ifstar{\selectlanguage[]{\pg@main}}%
+ {\pg@unsel@i\pg@unsel@ii}}
+
+\def\pg@unsel@i{%
+ \c@pg@depth\z@\pg@file@ends
+ \def\pg@elt##1{%
+ \expandafter\let\csname\pg@@slot##1\endcsname\@empty}%
+ \pg@elt{}\pg@streams}
+
+\def\pg@unsel@ii{%
+ \language\z@
+ \pg@step{\ifcase\pg@flag{##1}\or\or
+ \@gobble\or\pg@disable{##1}\fi}%
+ \pg@step{\ifnum\pg@flag{##1}=\z@\pg@disable{##1}\fi}%
+ \pg@step{\pg@flag{##1}\@ne}%
+ \let\thelanguage\@empty\let\pg@main\@empty
+ \def\pg@last{{}{}}}
+
+\def\pg@enable#1{%
+ \let\pg@switch\@firstoftwo
+ \def\pg@group{#1}%
+ \edef\pg@a{\csname\pg@@?\thelanguage\endcsname}%
+ \expandafter\edef\csname\pg@@/#1\endcsname
+ {\edef\noexpand\thelanguage{\pg@a}%
+ \expandafter\noexpand\csname\pg@@\pg@a-#1\endcsname}%
+ \def\pg@b##1\pg@b{%
+ \let\thelanguage\pg@a
+ \@nameuse{\pg@@\thelanguage-#1}%
+ \edef\thelanguage{##1}%
+ \expandafter\pg@after\csname\pg@@/#1\endcsname
+ {\edef\thelanguage{##1}%
+ \csname\pg@@##1-#1\endcsname}%
+ \@nameuse{\pg@@\thelanguage-#1}}%
+ \expandafter\pg@b\thelanguage\pg@b}
+
+\def\pg@disable#1{%
+ \let\pg@switch\@secondoftwo
+ \csname\pg@@/#1\endcsname
+ \expandafter\let\csname\pg@@/#1\endcsname\relax}
+
+\def\pg@sel@opt{%
+ \@tempswatrue
+ \def\pg@d##1{\@ifundefined{pgh@##1}\@empty
+ {\if@tempswa
+ \PackageInfo{polyglot}%
+ {Selecting document language:\MessageBreak
+ ##1\@gobble}%
+ \selectlanguage*{##1}\@tempswafalse\fi}}%
+ \ifx\@classoptionslist\@empty\else
+ \pg@process\pg@d\@classoptionslist\fi
+ \ifx\@curroptions\@empty\else
+ \if@tempswa\pg@process\pg@d\@curroptions\fi\fi
+ \let\pg@d\@undefined}
+
+\@onlypreamble\pg@sel@opt
+
+
+\let\pg@immediate\relax
+
+\def\pg@@slot{pg@slot@}
+
+\def\pg@file@setup#1#2#3{%
+ \advance\c@pg@depth\@ne
+ \def\pg@elt##1{%
+ \expandafter\pg@after\csname\pg@@slot##1\endcsname
+ {\addtocounter{\pg@@slot\the\pg@count}\@ne
+ \pg@immediate\write\pg@count
+ {\pg@begin\noexpand\selectlanguage#1[#2]{#3}}}}%
+ \pg@elt\@empty\pg@streams}
+
+\def\pg@file@write#1{%
+ \pg@count=#1\relax
+ \@ifundefined{c@\pg@@slot\the\pg@count}%
+ {\newcounter{\pg@@slot\the\pg@count}%
+ \pg@slot@\let\pg@elt\relax
+ \xdef\pg@streams{\pg@streams\pg@elt{\the\pg@count}}}{}%
+ {\@nameuse{\pg@@slot\the\pg@count}}%
+ \expandafter\gdef\csname\pg@@slot\the\pg@count\endcsname{}}
+
+\def\pg@file@ends{%
+ \def\pg@elt##1%
+ {\ifnum\value{\pg@@slot##1}>\c@pg@depth
+ \pg@immediate\write##1{\pg@end}%
+ \addtocounter{\pg@@slot##1}\m@ne
+ \expandafter\pg@elt\else\expandafter\@gobble\fi{##1}}%
+ \pg@streams\let\pg@elt\relax}%
+
+\let\pg@streams\@empty
+\let\pg@slot@\@empty
+
+\let\pg@begin\begingroup
+\let\pg@end\endgroup
+
+\newcounter{pg@depth}
+
+\AtEndDocument{\unselectlanguage
+ \let\pg@immediate\immediate}
+
+
+\long\def\protected@write#1#2#3{%
+ \pg@file@write{#1}%
+ \begingroup
+ \let\thepage\relax
+ #2%
+ \let\LanguageLigature\string
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\write#1{#3}}%
+ \reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}
+
+\long\def\@writefile#1#2{%
+ \@ifundefined{tf@#1}\relax
+ {\pg@file@write{\csname tf@#1\endcsname}%
+ \@temptokena{#2}%
+ \pg@immediate\write\csname tf@#1\endcsname{\the\@temptokena}}}
+
+\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]%
+ \if@filesw
+ \protected@write\@auxout{}%
+ {\string\bibcite{#2}{\protect\pg@ensure\pg@last#1}}%
+ \fi\ignorespaces}
+
+\def\DeclareLanguageCommand#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\pg@add@to{#2}{\pg@switch@cmd#1}%
+ \expandafter\newcommand
+ \csname\pg@@\thelanguage-\string#1\endcsname}%
+ {\pg@bug@err3}}
+
+\@onlypreamble\DeclareLanguageCommand
+
+\def\pg@switch@cmd#1{%
+ \pg@switch
+ {\ifx#1\@undefined
+ \expandafter\pg@after
+ \csname\pg@@/\pg@group\endcsname{\let#1\@undefined}%
+ \fi}{}%
+ \let\pg@c=#1%
+ \expandafter\let\expandafter
+ #1\csname\pg@@\thelanguage-\string#1\endcsname
+ \expandafter\let
+ \csname\pg@@\thelanguage-\string#1\endcsname=\pg@c}
+
+\def\SetLanguageVariable#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\pg@add@to{#2}{\pg@switch@var{#1}}
+ \@namedef{\pg@@\thelanguage-\string#1}}%
+ {\pg@bug@err3}}
+
+\@onlypreamble\SetLanguageVariable
+
+\def\pg@switch@var#1{%
+ \edef\pg@c{\the#1}%
+ #1=\csname\pg@@\thelanguage-\string#1\endcsname\relax
+ \expandafter\edef\csname\pg@@\thelanguage-\string#1\endcsname{\pg@c}}
+
+
+\def\SetLanguageCode#1#2#3{\pg@count=#3\relax
+ \edef\pg@a{\noexpand\SetLanguageVariable
+ {\noexpand#1\the\pg@count}}%
+ \pg@a{#2}}
+
+\@onlypreamble\SetLanguageCode
+
+\begingroup
+\catcode`~=\active
+\gdef\DeclareLanguageSymbolCommand#1#2{%
+ \SetLanguageCode{\catcode}{#2}{`#1}{\active}%
+ \def\pg@a{#2}%
+ \begingroup \lccode`~=`#1 \lccode`#1=`#1
+ \lowercase{\endgroup
+ \pg@add@to\pg@a{\UpdateSpecial{#1}}%
+ \DeclareLanguageCommand{~}\pg@a}}
+\endgroup
+
+\@onlypreamble\DeclareLanguageSymbolCommand
+
+
+\def\DeclareLanguage#1{%
+ \def\thelanguage{!#1}%
+ \@namedef{\pg@@?#1}{!#1}%
+ \def\pg@main{!#1}}
+
+\def\DeclareDialect#1{%
+ \expandafter\let\csname\pg@@?#1\endcsname\pg@main}
+
+\@onlypreamble\DeclareLanguage
+\@onlypreamble\DeclareDialect
+
+\def\SetLanguage#1{%
+ \@ifundefined{\pg@@?#1}%
+ {\pg@bug@err4}%
+ {\edef\thelanguage{!#1}}}
+
+\def\SetDialect#1{
+ \@ifundefined{\pg@@?#1}%
+ {\pg@bug@err4}%
+ {\edef\thelanguage{#1}}}
+
+\@onlypreamble\SetLanguage
+\@onlypreamble\SetDialect
+
+
+\def\pg@ifgroup#1{\@ifundefined{\pg@@flag{#1}}%
+ {\pg@bug@err1\@gobble}}
+
+\def\DeclareLanguageGroup{%
+ \@ifstar{\pg@newgroup\pg@c}%
+ {\pg@newgroup\pg@text@groups}}
+
+\def\pg@newgroup#1#2{%
+ \def\pg@a##1##2##3\pg@a{%
+ \pg@ifno##1##2}%
+ \pg@a#2\pg@a
+ {\pg@bug@err2}%
+ {\@ifundefined{\pg@@flag{#2}}%
+ {\pg@after\pg@groups{\pg@elt{#2}}%
+ \pg@after#1{\pg@elt{#2}}%
+ \expandafter\newcount\csname\pg@@flag{#2}\endcsname
+ \pg@flag{#2}\@ne}%
+ {\PackageInfo{polyglot}%
+ {Ignoring group declaration: #2.^^J%
+ Already declared\@gobble}}}}
+
+\@onlypreamble\DeclareLanguageGroup
+\@onlypreamble\pg@newgroup
+
+\let\pg@groups\@empty
+\let\pg@text@groups\@empty
+\let\pg@c\@empty
+
+\DeclareLanguageGroup*{names}
+\DeclareLanguageGroup*{layout}
+\DeclareLanguageGroup*{date}
+
+\DeclareLanguageGroup{ligatures}
+\DeclareLanguageGroup{text}
+\DeclareLanguageGroup{tools}
+
+
+\def\DeclareDateFunctionDefault#1{%
+ \expandafter\providecommand\csname\pg@@ DF-#1\endcsname}
+
+\def\DeclareDateFunction#1{%
+ \expandafter\DeclareLanguageCommand
+ \csname\pg@@ DF-#1\endcsname{date}}
+
+\@onlypreamble\DeclareDateFunctionDefault
+\@onlypreamble\DeclareDateFunction
+
+\begingroup
+\catcode`<=\active
+\gdef\DeclareDateCommand#1{%
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \catcode`<=\active
+ \def<##1>{\expandafter\noexpand\csname\pg@@ DF-##1\endcsname}%
+ \def\pg@a{%
+ \edef\pg@b{\endgroup%
+ \noexpand\DeclareLanguageCommand{\noexpand#1}{date}{\pg@c}}
+ \pg@b}%
+ \afterassignment\pg@a\def\pg@c}
+\endgroup
+
+\@onlypreamble\DeclareDateCommand
+
+\newcount\weekday
+
+\let\c@day\day
+\let\c@weekday\weekday
+\let\c@month\month
+\let\c@year\year
+
+\def\SetWeekDay{\pg@count=\year\divide\pg@count4
+ \weekday=\pg@count
+ \multiply\pg@count4
+ \advance\pg@count-\year
+ \ifnum\pg@count=\z@
+ \ifnum\month<\thr@@\advance\weekday -1\fi\fi
+ \advance\weekday\year
+ \advance\weekday-1899
+ \advance\weekday\ifcase\month\or0 \or31 \or59 \or90 \or120
+ \or151 \or181 \or212 \or243 \or293 \or304 \or334 \fi
+ \advance\weekday\day
+ \pg@count=\weekday
+ \divide\pg@count7
+ \multiply\pg@count7
+ \advance\weekday-\pg@count
+ \advance\weekday\@ne}
+
+\SetWeekDay
+
+\DeclareDateFunctionDefault{d}{\the\day}
+\DeclareDateFunctionDefault{dd}{\ifnum\day<10 0\fi\the\day}
+
+\DeclareDateFunctionDefault{m}{\the\month}
+\DeclareDateFunctionDefault{mm}{\ifnum\month<10 0\fi\the\month}
+
+\DeclareDateFunctionDefault{yy}{\expandafter\@gobbletwo\the\year}
+\DeclareDateFunctionDefault{yyyy}{\the\year}
+
+
+\def\pg@lig{\ifcase\pg@flag{ligatures}\pg@main\or\or
+ \@gobble\or\thelanguage\fi}
+
+\def\pg@cs@lig{%
+ \ifmmode\expandafter\pg@math@ligature
+ \else\expandafter\pg@text@ligature\fi}
+
+\def\LanguageLigature{%
+ \ifx\protect\@unexpandable@protect
+ \expandafter\noexpand
+ \else\ifx\protect\@typeset@protect
+ \expandafter\expandafter\expandafter\pg@cs@lig
+ \else\expandafter\expandafter\expandafter\protect
+ \fi\fi}
+
+\begingroup
+\catcode`~=\active
+\gdef\DeclareLigature#1{%
+ \pg@add@to{ligatures}{\pg@switch{\pg@set@lig{#1}}{}}%
+ \begingroup \lccode`~=`#1 \lccode`#1=`#1
+ \lowercase{\endgroup
+ \DeclareLanguageSymbolCommand{#1}{ligatures}%
+ {\LanguageLigature~}}}
+\endgroup
+
+\@onlypreamble\DeclareLigature
+
+
+\def\DeclareLigatureCommand#1#2{%
+ \@ifnextchar[%
+ {\pg@declare@lig{#1}{#2}}%
+ {\pg@declare@lig{#1}{#2}[]}}
+
+\def\pg@declare@lig#1#2[#3]{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\DeclareLigature{#1}}\@empty
+ \@ifundefined{\pg@cmd\thelanguage{#1-\string#2}}%
+ {\@namedef{\pg@@\thelanguage-\string#1-\string#2}}%
+ {\pg@bug@err3}}
+
+\@onlypreamble\DeclareLigatureCommand
+
+
+\begingroup
+\catcode`\$=3 \catcode`\&=4
+\catcode`\#=6
+\catcode`\^=7 \catcode`\_=8
+\catcode`\ =10 \gdef\pg@space{ }
+\catcode`\^^L=11 \catcode`\^^O=12
+\catcode`\~=13
+\gdef\pg@set@lig#1{\begingroup
+ \lccode`^^L=`#1 \lccode`^^O=`#1 \lccode`~=`#1 \lccode`#1=`#1
+ \lowercase{\endgroup
+ \edef\pg@b{\noexpand\let
+ \expandafter\noexpand\csname\pg@@text\string#1\endcsname
+ \ifcase\catcode`#1 \or\or\or$\or&\or
+ \or####\or^\or_\or\or\noexpand\pg@space
+ \or ^^L\or^^O\or\noexpand~\or\or^^O\fi}%
+ \pg@b\@gobbletwo\pg@lig@err{\string#1}%
+ \expandafter\let\csname\pg@@math\string#1\expandafter
+ \endcsname\csname\pg@@text\string#1\endcsname
+ \ifnum\catcode`#1>10 \ifnum\catcode`#1<13 \ifnum\mathcode`#1="8000
+ \expandafter\let\csname\pg@@math\string#1\endcsname=~%
+ \fi\fi\fi}}
+\endgroup
+
+\def\pg@lig@err{\pg@err{Bad ligature}}
+
+
+\begingroup
+\catcode`\%=12 \catcode`\&=14
+\long\gdef\pg@text@ligature#1#2{&
+ \expandafter\if\expandafter%\@gobble#2%\@empty
+ \expandafter\pg@ligature\expandafter#1&
+ \else
+ \csname\pg@@text\string#1\expandafter\endcsname
+ \fi{#2}}
+\endgroup
+
+\long\def\pg@ligature#1#2{%
+ \expandafter\ifx\csname\pg@cmd\pg@lig{#1-\string#2}\endcsname\relax
+ \csname\pg@@text\string#1\expandafter\endcsname\expandafter#2%
+ \else
+ \csname\pg@cmd\pg@lig{#1-\string#2}\expandafter\endcsname
+ \fi}
+
+\long\def\pg@math@ligature#1{%
+ \@nameuse{\pg@@math\string#1}}
+
+\def\UpdateSpecial#1{\expandafter\pg@update@special
+ \csname\string#1\endcsname}
+
+\def\pg@update@special#1{%
+ \def\pg@b##1##2{\ifnum`#1=`##2 \else
+ \noexpand##1\noexpand##2\fi}%
+ \def\pg@c##1##2{\ifnum\catcode`##2<\active
+ \ifnum\catcode`##2>10 \else\@firstoftwo\fi
+ \else\noexpand##1\noexpand##2\fi}%
+ \def\do{\pg@b\do}%
+ \def\@makeother{\pg@b\@makeother}%
+ \edef\dospecials{\dospecials\pg@c\do#1}%
+ \edef\@sanitize{\@sanitize\pg@c\@makeother#1}%
+ \let\do\relax
+ \def\@makeother##1{\catcode`##1=12\relax}}
+
+\begingroup
+\catcode`*=\active \catcode`^=7
+\catcode`~=\active \catcode`'=12
+\lccode`*=`^ \lccode`^=`^ \lccode`~=`' \lccode`'=`'
+\lowercase{%
+\gdef\pr@m@s{%
+ \ifx~\@let@token\let\@let@token='\fi
+ \ifx*\@let@token\let\@let@token=^\fi
+ \ifx'\@let@token
+ \expandafter\pr@@@s
+ \else\ifx^\@let@token
+ \expandafter\expandafter\expandafter\pr@@@t
+ \else
+ \egroup
+ \fi\fi}}
+\endgroup
+
+
+\begingroup
+\catcode`"=12 \catcode`'=12 \catcode``=12
+\gdef\hexnumber{"}
+\gdef\octalnumber{'}
+\gdef\charnumber{`}
+\endgroup
+
+\def\allowhyphens{\ifhmode\nobreak\hskip\z@skip\fi}
+
+\providecommand\@tabacckludge[1]{%
+ \expandafter\@changed@cmd\csname#1\endcsname\relax}
+
+\def\ensurelanguage{\ifx\glossary\relax
+ \protect\pg@ensure\pg@last\fi}
+
+\def\pg@ensure#1#2{%
+ \def\pg@a{{#1}{#2}}%
+ \ifx\pg@a\pg@last\else
+ \def\pg@a{#1}%
+ \ifx\pg@a\@empty\def\pg@c{\pg@unsel@ii}\else
+ \def\pg@c{\pg@sel@iii*#1}\fi
+ \def\pg@a{#2}%
+ \ifx\pg@a\@empty\else
+ \def\pg@a{#1}\edef\pg@b{\expandafter\@firstoftwo\pg@last}%
+ \ifx\pg@b\pg@a\expandafter\def\else\expandafter\pg@after\fi
+ \pg@c{\pg@sel@iii{}#2}%
+ \fi
+ \expandafter\pg@c
+ \fi}
+
+\def\ensuredcommand#1#2{%
+ \expandafter\gdef\expandafter#1\expandafter
+ {\expandafter{\expandafter\pg@ensure\pg@last#2}}}
+
+
+\def\markboth#1#2{%
+ \gdef\@themark{{\ensurelanguage#1}{\ensurelanguage#2}}{%
+ \let\protect\@unexpandable@protect
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
+
+\def\@markright#1#2#3{%
+ \gdef\@themark{{#1}{\ensurelanguage#3}}}
+
+
+\def\DeclareLanguageCompositeCommand#1#2#3{%
+ \pg@add@to{text}{\pg@composite{#1}{#2}}%
+ \expandafter\DeclareLanguageCommand
+ \csname\expandafter\string\csname#2\endcsname
+ \string#1-\string#3\endcsname{text}}
+
+\def\pg@composite#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\expandafter\let\csname\pg@@\thelanguage-\string#1\endcsname#1%
+ \expandafter\pg@after\csname\pg@@/text\endcsname
+ {\expandafter\let\expandafter
+ #1\csname\pg@@\thelanguage-\string#1\endcsname}}{}%
+ \expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname
+ \expandafter\expandafter\expandafter\ifx
+ \expandafter\@car\reserved@a\relax\relax\@nil \@text@composite \else
+ \edef\reserved@b##1{%
+ \def\expandafter\noexpand
+ \csname#2\string#1\endcsname####1{%
+ \noexpand\@text@composite
+ \expandafter\noexpand\csname#2\string#1\endcsname
+ ####1\noexpand\@empty\noexpand\@text@composite
+ {##1}}}%
+ \expandafter\reserved@b\expandafter{\reserved@a{##1}}%
+ \fi}
+
+\@onlypreamble\DeclareLanguageCompositeCommand
+
+
+\def\DeclareLanguageTextCommand#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\DeclareLanguageCommand{#1}{text}%
+ {\pg@text@cmd{#1}{#2}}%
+ \expandafter\DeclareLanguageCommand
+ \csname#2\string#1\endcsname{text}}%
+ {\expandafter\let\expandafter\pg@a
+ \csname\pg@@\thelanguage-\string#1\endcsname
+ \expandafter\in@\expandafter\pg@text@cmd
+ \expandafter{\pg@a}%
+ \ifin@\def\pg@a{\expandafter\DeclareLanguageCommand
+ \csname#2\string#1\endcsname{text}}%
+ \expandafter\pg@a
+ \else\pg@bug@err3\fi}}
+
+\@onlypreamble\DeclareLanguageTextCommand
+
+\def\pg@text@cmd#1#2{%
+ \csname#2-cmd\expandafter\endcsname
+ \expandafter#1%
+ \csname#2\string#1\endcsname}
+
+
+\def\pg@extensions#1{%
+ \edef\cdp@elt##1##2##3##4{%
+ \def\noexpand\DeclareCompositeLanguageCommand####1{%
+ \noexpand\pg@composite{####1}{##1}}%
+ \def\noexpand\DeclareTextLanguageCommand####1{%
+ \noexpand\pg@text{####1}{##1}}%
+ \noexpand\InputIfFileExists{#1.##1}{}{}}%
+ \cdp@list}
+
+
+\everyjob\expandafter{\the\everyjob\SetWeekDay}
+
+
+\@onlypreamble\PreLoadPatterns
+\@onlypreamble\SetPatterns
+\@onlypreamble\PreLoadLanguage
+\@onlypreamble\LoadLanguage
+\@onlypreamble\pg@input
+\@onlypreamble\pg@load
+
+\endinput
+%%
+%% End of file `polyglot.def'.
diff --git a/Master/texmf-dist/tex/latex/polyglot/polyglot.sty b/Master/texmf-dist/tex/latex/polyglot/polyglot.sty
new file mode 100644
index 00000000000..131a35e88de
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglot/polyglot.sty
@@ -0,0 +1,757 @@
+%%
+%% This is file `polyglot.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% polyglot.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from polyglot.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file polyglot.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+
+\def\fileversion{1.1}
+\def\filedate{September 1, 1997}
+\def\docdate{September 1, 1997}
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{polyglot}[1997/02/05 Multilingual LaTeX Package]
+
+\DeclareOption{nofontenc}{\let\pg@extensions\@gobble}
+
+\DeclareOption{loadonly}{\let\pg@sel@opt\relax}
+
+
+\ifx\pg@add@to\@undefined\else % ie, if preloaded
+ \input{polyglot.cfg}
+ \ProcessOptions
+ \pg@sel@opt
+\expandafter\endinput\fi
+
+
+\chardef\f@@r=4
+\newcount\pg@count
+
+\def\pg@@{pg-}
+\def\pg@@text{pg-text-}
+\def\pg@@math{pg-math-}
+
+\def\pg@flag#1{\csname\pg@@#1-flag\endcsname}
+\def\pg@@flag#1{\pg@@#1-flag}
+
+\def\pg@last{{}{}}
+
+\def\pg@err#1{\PackageError{polyglot}{#1}%
+ {See polyglot documentation for explanation}}
+
+
+\AtBeginDocument{\if@filesw\else
+ \def\pg@file@setup#1#2#3{}%
+ \let\pg@file@write\@gobble
+ \let\pg@file@ends\relax\fi}
+
+\def\pg@bug@err#1{\pg@err{Bug found (#1)}}
+
+
+\def\pg@add@to#1{%
+ \@ifundefined{\pg@@flag{#1}}%
+ {\pg@err{Unknown group}}
+ {\@ifundefined{pg@no#1}%
+ {\@ifundefined{\pg@@\thelanguage-#1}%
+ {\expandafter\let\csname\pg@@\thelanguage-#1\endcsname\@empty}%
+ \@empty
+ \expandafter\pg@after
+ \csname\pg@@\thelanguage-#1\expandafter\endcsname}\@gobble}}
+
+\@onlypreamble\pg@add@to
+
+\def\pg@after#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\def\pg@to@list#1{\@ifundefined{languagelist}%
+ {\edef\languagelist{#1}}%
+ {\edef\languagelist{\languagelist,#1}}}
+
+\@onlypreamble\pg@to@list
+
+\def\pg@process#1#2{%
+ \begingroup\edef\pg@a{\endgroup
+ \noexpand\pg@xproc\noexpand#1#2,\noexpand\@nil,}\pg@a}
+\def\pg@xproc#1#2,{\ifx\@nil#2\else
+ #1{#2}\expandafter\pg@xproc\expandafter#1\fi}
+
+\def\pg@idend#1{#1\egroup}
+
+
+\long\def\pg@cmd#1#2{%
+ \pg@@
+ \expandafter\ifx\csname\pg@@?#1\endcsname\relax#1%
+ \else\expandafter\ifx\csname\pg@@#1-\string#2\endcsname\relax
+ \csname\pg@@?#1\endcsname
+ \else#1\fi\fi-\string#2}
+
+
+\def\pg@ifno#1#2#3#4{%
+ \if#1n\if#2o#3\else\@firstoftwo\fi\else#4\fi}
+
+\def\pg@step{\afterassignment\pg@groups\def\pg@elt##1}
+
+\def\selectlanguage{%
+ \@ifstar{\pg@sel@i*}{\pg@sel@i{}}}
+
+\def\pg@sel@i#1{\begingroup\catcode`\ =9 %
+ \@ifnextchar[{\pg@sel@ii{#1}{}}{\pg@sel@ii{#1}{}[]}}
+
+\def\pg@sel@ii#1#2[#3]#4{%
+ \endgroup
+ \if!#1!%
+ \edef\pg@a{{\expandafter\@firstoftwo\pg@last}{[#3]{#4}}}%
+ \else
+ \def\pg@a{{[#3]{#4}}{}}%
+ \fi
+ \ifx\pg@a\pg@last\else
+ \let\pg@last\pg@a
+ \aftergroup\pg@file@ends
+ \pg@file@setup{#1}{#3}{#4}%
+ \pg@sel@iii#1[#3]{#4}%
+ \fi#2}
+
+\def\pg@sel@iii#1[#2]#3{%
+ \@ifundefined{pgh@#3}%
+ {\pg@err{Unknown language}\language\z@}%
+ {\language\csname pgh@#3\endcsname}%
+ \pg@step{\ifcase\pg@flag{##1}\or\or
+ \@gobble\or\pg@disable{##1}\else
+ \advance\pg@flag{##1}-\tw@\fi}%
+ \let\thelanguage\pg@main
+ \def\pg@elt##1{\pg@a##1\pg@a}%
+ \if!#1!%
+ \def\pg@a##1##2##3\pg@a{%
+ \pg@ifno##1##2%
+ {\pg@ifgroup{##3}{\advance\pg@flag{##3}\f@@r}}%
+ {\pg@ifgroup{##1##2##3}%
+ {\pg@after\pg@d{\pg@elt{##1##2##3}}%
+ \advance\pg@flag{##1##2##3}\f@@r}}}%
+ \let\pg@d\@empty
+ \if!#2!\pg@text@groups\else
+ \pg@process\pg@elt{#2}\fi
+ \pg@step{\ifnum\pg@flag{##1}=\tw@\pg@enable{##1}\fi}%
+ \pg@step{\ifnum\pg@flag{##1}=\f@@r\pg@disable{##1}\fi}%
+ \pg@step{\pg@count\pg@flag{##1}%
+ \pg@flag{##1}\ifnum\pg@count>\thr@@\f@@r\else\z@\fi
+ \ifodd\pg@count\advance\pg@flag{##1}\@ne\fi}%
+ \edef\thelanguage{#3}%
+ \def\pg@elt##1{\pg@enable{##1}\advance\pg@flag{##1}-\tw@}%
+ \pg@d\let\pg@d\@undefined
+ \else
+ \pg@step{\ifnum\pg@flag{##1}=\z@\pg@disable{##1}\fi}%
+ \def\pg@elt##1{\pg@a##1\pg@a}%
+ \if!#2!\else%
+ \def\pg@a##1##2##3\pg@a{%
+ \pg@ifno##1##2%
+ {\pg@ifgroup{##3}{\advance\pg@flag{##3}-\@m}}% Just a mark
+ {\pg@err{Invalid option skipped}{}}}%
+ \pg@process\pg@elt{#2}%
+ \fi
+ \edef\pg@main{#3}%
+ \edef\thelanguage{#3}%
+ \pg@step{\ifnum\pg@flag{##1}<\z@\pg@flag{##1}\@ne
+ \else\pg@flag{##1}\z@\pg@enable{##1}\fi}%
+ \fi}
+
+\def\uselanguage{\bgroup\begingroup\catcode`\ =9
+ \@ifnextchar[{\pg@sel@ii{}\pg@idend}%
+ {\pg@sel@ii{}\pg@idend[]}}
+
+\def\unselectlanguage{\@ifstar{\selectlanguage[]{\pg@main}}%
+ {\pg@unsel@i\pg@unsel@ii}}
+
+\def\pg@unsel@i{%
+ \c@pg@depth\z@\pg@file@ends
+ \def\pg@elt##1{%
+ \expandafter\let\csname\pg@@slot##1\endcsname\@empty}%
+ \pg@elt{}\pg@streams}
+
+\def\pg@unsel@ii{%
+ \language\z@
+ \pg@step{\ifcase\pg@flag{##1}\or\or
+ \@gobble\or\pg@disable{##1}\fi}%
+ \pg@step{\ifnum\pg@flag{##1}=\z@\pg@disable{##1}\fi}%
+ \pg@step{\pg@flag{##1}\@ne}%
+ \let\thelanguage\@empty\let\pg@main\@empty
+ \def\pg@last{{}{}}}
+
+\def\pg@enable#1{%
+ \let\pg@switch\@firstoftwo
+ \def\pg@group{#1}%
+ \edef\pg@a{\csname\pg@@?\thelanguage\endcsname}%
+ \expandafter\edef\csname\pg@@/#1\endcsname
+ {\edef\noexpand\thelanguage{\pg@a}%
+ \expandafter\noexpand\csname\pg@@\pg@a-#1\endcsname}%
+ \def\pg@b##1\pg@b{%
+ \let\thelanguage\pg@a
+ \@nameuse{\pg@@\thelanguage-#1}%
+ \edef\thelanguage{##1}%
+ \expandafter\pg@after\csname\pg@@/#1\endcsname
+ {\edef\thelanguage{##1}%
+ \csname\pg@@##1-#1\endcsname}%
+ \@nameuse{\pg@@\thelanguage-#1}}%
+ \expandafter\pg@b\thelanguage\pg@b}
+
+\def\pg@disable#1{%
+ \let\pg@switch\@secondoftwo
+ \csname\pg@@/#1\endcsname
+ \expandafter\let\csname\pg@@/#1\endcsname\relax}
+
+\def\pg@sel@opt{%
+ \@tempswatrue
+ \def\pg@d##1{\@ifundefined{pgh@##1}\@empty
+ {\if@tempswa
+ \PackageInfo{polyglot}%
+ {Selecting document language:\MessageBreak
+ ##1\@gobble}%
+ \selectlanguage*{##1}\@tempswafalse\fi}}%
+ \ifx\@classoptionslist\@empty\else
+ \pg@process\pg@d\@classoptionslist\fi
+ \ifx\@curroptions\@empty\else
+ \if@tempswa\pg@process\pg@d\@curroptions\fi\fi
+ \let\pg@d\@undefined}
+
+\@onlypreamble\pg@sel@opt
+
+
+\let\pg@immediate\relax
+
+\def\pg@@slot{pg@slot@}
+
+\def\pg@file@setup#1#2#3{%
+ \advance\c@pg@depth\@ne
+ \def\pg@elt##1{%
+ \expandafter\pg@after\csname\pg@@slot##1\endcsname
+ {\addtocounter{\pg@@slot\the\pg@count}\@ne
+ \pg@immediate\write\pg@count
+ {\pg@begin\noexpand\selectlanguage#1[#2]{#3}}}}%
+ \pg@elt\@empty\pg@streams}
+
+\def\pg@file@write#1{%
+ \pg@count=#1\relax
+ \@ifundefined{c@\pg@@slot\the\pg@count}%
+ {\newcounter{\pg@@slot\the\pg@count}%
+ \pg@slot@\let\pg@elt\relax
+ \xdef\pg@streams{\pg@streams\pg@elt{\the\pg@count}}}{}%
+ {\@nameuse{\pg@@slot\the\pg@count}}%
+ \expandafter\gdef\csname\pg@@slot\the\pg@count\endcsname{}}
+
+\def\pg@file@ends{%
+ \def\pg@elt##1%
+ {\ifnum\value{\pg@@slot##1}>\c@pg@depth
+ \pg@immediate\write##1{\pg@end}%
+ \addtocounter{\pg@@slot##1}\m@ne
+ \expandafter\pg@elt\else\expandafter\@gobble\fi{##1}}%
+ \pg@streams\let\pg@elt\relax}%
+
+\let\pg@streams\@empty
+\let\pg@slot@\@empty
+
+\let\pg@begin\begingroup
+\let\pg@end\endgroup
+
+\newcounter{pg@depth}
+
+\AtEndDocument{\unselectlanguage
+ \let\pg@immediate\immediate}
+
+
+\long\def\protected@write#1#2#3{%
+ \pg@file@write{#1}%
+ \begingroup
+ \let\thepage\relax
+ #2%
+ \let\LanguageLigature\string
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\write#1{#3}}%
+ \reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}
+
+\long\def\@writefile#1#2{%
+ \@ifundefined{tf@#1}\relax
+ {\pg@file@write{\csname tf@#1\endcsname}%
+ \@temptokena{#2}%
+ \pg@immediate\write\csname tf@#1\endcsname{\the\@temptokena}}}
+
+\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]%
+ \if@filesw
+ \protected@write\@auxout{}%
+ {\string\bibcite{#2}{\protect\pg@ensure\pg@last#1}}%
+ \fi\ignorespaces}
+
+\def\DeclareLanguageCommand#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\pg@add@to{#2}{\pg@switch@cmd#1}%
+ \expandafter\newcommand
+ \csname\pg@@\thelanguage-\string#1\endcsname}%
+ {\pg@bug@err3}}
+
+\@onlypreamble\DeclareLanguageCommand
+
+\def\pg@switch@cmd#1{%
+ \pg@switch
+ {\ifx#1\@undefined
+ \expandafter\pg@after
+ \csname\pg@@/\pg@group\endcsname{\let#1\@undefined}%
+ \fi}{}%
+ \let\pg@c=#1%
+ \expandafter\let\expandafter
+ #1\csname\pg@@\thelanguage-\string#1\endcsname
+ \expandafter\let
+ \csname\pg@@\thelanguage-\string#1\endcsname=\pg@c}
+
+\def\SetLanguageVariable#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\pg@add@to{#2}{\pg@switch@var{#1}}
+ \@namedef{\pg@@\thelanguage-\string#1}}%
+ {\pg@bug@err3}}
+
+\@onlypreamble\SetLanguageVariable
+
+\def\pg@switch@var#1{%
+ \edef\pg@c{\the#1}%
+ #1=\csname\pg@@\thelanguage-\string#1\endcsname\relax
+ \expandafter\edef\csname\pg@@\thelanguage-\string#1\endcsname{\pg@c}}
+
+
+\def\SetLanguageCode#1#2#3{\pg@count=#3\relax
+ \edef\pg@a{\noexpand\SetLanguageVariable
+ {\noexpand#1\the\pg@count}}%
+ \pg@a{#2}}
+
+\@onlypreamble\SetLanguageCode
+
+\begingroup
+\catcode`~=\active
+\gdef\DeclareLanguageSymbolCommand#1#2{%
+ \SetLanguageCode{\catcode}{#2}{`#1}{\active}%
+ \def\pg@a{#2}%
+ \begingroup \lccode`~=`#1 \lccode`#1=`#1
+ \lowercase{\endgroup
+ \pg@add@to\pg@a{\UpdateSpecial{#1}}%
+ \DeclareLanguageCommand{~}\pg@a}}
+\endgroup
+
+\@onlypreamble\DeclareLanguageSymbolCommand
+
+
+\def\DeclareLanguage#1{%
+ \def\thelanguage{!#1}%
+ \@namedef{\pg@@?#1}{!#1}%
+ \def\pg@main{!#1}}
+
+\def\DeclareDialect#1{%
+ \expandafter\let\csname\pg@@?#1\endcsname\pg@main}
+
+\@onlypreamble\DeclareLanguage
+\@onlypreamble\DeclareDialect
+
+\def\SetLanguage#1{%
+ \@ifundefined{\pg@@?#1}%
+ {\pg@bug@err4}%
+ {\edef\thelanguage{!#1}}}
+
+\def\SetDialect#1{
+ \@ifundefined{\pg@@?#1}%
+ {\pg@bug@err4}%
+ {\edef\thelanguage{#1}}}
+
+\@onlypreamble\SetLanguage
+\@onlypreamble\SetDialect
+
+
+\def\pg@ifgroup#1{\@ifundefined{\pg@@flag{#1}}%
+ {\pg@bug@err1\@gobble}}
+
+\def\DeclareLanguageGroup{%
+ \@ifstar{\pg@newgroup\pg@c}%
+ {\pg@newgroup\pg@text@groups}}
+
+\def\pg@newgroup#1#2{%
+ \def\pg@a##1##2##3\pg@a{%
+ \pg@ifno##1##2}%
+ \pg@a#2\pg@a
+ {\pg@bug@err2}%
+ {\@ifundefined{\pg@@flag{#2}}%
+ {\pg@after\pg@groups{\pg@elt{#2}}%
+ \pg@after#1{\pg@elt{#2}}%
+ \expandafter\newcount\csname\pg@@flag{#2}\endcsname
+ \pg@flag{#2}\@ne}%
+ {\PackageInfo{polyglot}%
+ {Ignoring group declaration: #2.^^J%
+ Already declared\@gobble}}}}
+
+\@onlypreamble\DeclareLanguageGroup
+\@onlypreamble\pg@newgroup
+
+\let\pg@groups\@empty
+\let\pg@text@groups\@empty
+\let\pg@c\@empty
+
+\DeclareLanguageGroup*{names}
+\DeclareLanguageGroup*{layout}
+\DeclareLanguageGroup*{date}
+
+\DeclareLanguageGroup{ligatures}
+\DeclareLanguageGroup{text}
+\DeclareLanguageGroup{tools}
+
+
+\def\DeclareDateFunctionDefault#1{%
+ \expandafter\providecommand\csname\pg@@ DF-#1\endcsname}
+
+\def\DeclareDateFunction#1{%
+ \expandafter\DeclareLanguageCommand
+ \csname\pg@@ DF-#1\endcsname{date}}
+
+\@onlypreamble\DeclareDateFunctionDefault
+\@onlypreamble\DeclareDateFunction
+
+\begingroup
+\catcode`<=\active
+\gdef\DeclareDateCommand#1{%
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \catcode`<=\active
+ \def<##1>{\expandafter\noexpand\csname\pg@@ DF-##1\endcsname}%
+ \def\pg@a{%
+ \edef\pg@b{\endgroup%
+ \noexpand\DeclareLanguageCommand{\noexpand#1}{date}{\pg@c}}
+ \pg@b}%
+ \afterassignment\pg@a\def\pg@c}
+\endgroup
+
+\@onlypreamble\DeclareDateCommand
+
+\newcount\weekday
+
+\let\c@day\day
+\let\c@weekday\weekday
+\let\c@month\month
+\let\c@year\year
+
+\def\SetWeekDay{\pg@count=\year\divide\pg@count4
+ \weekday=\pg@count
+ \multiply\pg@count4
+ \advance\pg@count-\year
+ \ifnum\pg@count=\z@
+ \ifnum\month<\thr@@\advance\weekday -1\fi\fi
+ \advance\weekday\year
+ \advance\weekday-1899
+ \advance\weekday\ifcase\month\or0 \or31 \or59 \or90 \or120
+ \or151 \or181 \or212 \or243 \or293 \or304 \or334 \fi
+ \advance\weekday\day
+ \pg@count=\weekday
+ \divide\pg@count7
+ \multiply\pg@count7
+ \advance\weekday-\pg@count
+ \advance\weekday\@ne}
+
+\SetWeekDay
+
+\DeclareDateFunctionDefault{d}{\the\day}
+\DeclareDateFunctionDefault{dd}{\ifnum\day<10 0\fi\the\day}
+
+\DeclareDateFunctionDefault{m}{\the\month}
+\DeclareDateFunctionDefault{mm}{\ifnum\month<10 0\fi\the\month}
+
+\DeclareDateFunctionDefault{yy}{\expandafter\@gobbletwo\the\year}
+\DeclareDateFunctionDefault{yyyy}{\the\year}
+
+
+\def\pg@lig{\ifcase\pg@flag{ligatures}\pg@main\or\or
+ \@gobble\or\thelanguage\fi}
+
+\def\pg@cs@lig{%
+ \ifmmode\expandafter\pg@math@ligature
+ \else\expandafter\pg@text@ligature\fi}
+
+\def\LanguageLigature{%
+ \ifx\protect\@unexpandable@protect
+ \expandafter\noexpand
+ \else\ifx\protect\@typeset@protect
+ \expandafter\expandafter\expandafter\pg@cs@lig
+ \else\expandafter\expandafter\expandafter\protect
+ \fi\fi}
+
+\begingroup
+\catcode`~=\active
+\gdef\DeclareLigature#1{%
+ \pg@add@to{ligatures}{\pg@switch{\pg@set@lig{#1}}{}}%
+ \begingroup \lccode`~=`#1 \lccode`#1=`#1
+ \lowercase{\endgroup
+ \DeclareLanguageSymbolCommand{#1}{ligatures}%
+ {\LanguageLigature~}}}
+\endgroup
+
+\@onlypreamble\DeclareLigature
+
+
+\def\DeclareLigatureCommand#1#2{%
+ \@ifnextchar[%
+ {\pg@declare@lig{#1}{#2}}%
+ {\pg@declare@lig{#1}{#2}[]}}
+
+\def\pg@declare@lig#1#2[#3]{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\DeclareLigature{#1}}\@empty
+ \@ifundefined{\pg@cmd\thelanguage{#1-\string#2}}%
+ {\@namedef{\pg@@\thelanguage-\string#1-\string#2}}%
+ {\pg@bug@err3}}
+
+\@onlypreamble\DeclareLigatureCommand
+
+
+\begingroup
+\catcode`\$=3 \catcode`\&=4
+\catcode`\#=6
+\catcode`\^=7 \catcode`\_=8
+\catcode`\ =10 \gdef\pg@space{ }
+\catcode`\^^L=11 \catcode`\^^O=12
+\catcode`\~=13
+\gdef\pg@set@lig#1{\begingroup
+ \lccode`^^L=`#1 \lccode`^^O=`#1 \lccode`~=`#1 \lccode`#1=`#1
+ \lowercase{\endgroup
+ \edef\pg@b{\noexpand\let
+ \expandafter\noexpand\csname\pg@@text\string#1\endcsname
+ \ifcase\catcode`#1 \or\or\or$\or&\or
+ \or####\or^\or_\or\or\noexpand\pg@space
+ \or ^^L\or^^O\or\noexpand~\or\or^^O\fi}%
+ \pg@b\@gobbletwo\pg@lig@err{\string#1}%
+ \expandafter\let\csname\pg@@math\string#1\expandafter
+ \endcsname\csname\pg@@text\string#1\endcsname
+ \ifnum\catcode`#1>10 \ifnum\catcode`#1<13 \ifnum\mathcode`#1="8000
+ \expandafter\let\csname\pg@@math\string#1\endcsname=~%
+ \fi\fi\fi}}
+\endgroup
+
+\def\pg@lig@err{\pg@err{Bad ligature}}
+
+
+\begingroup
+\catcode`\%=12 \catcode`\&=14
+\long\gdef\pg@text@ligature#1#2{&
+ \expandafter\if\expandafter%\@gobble#2%\@empty
+ \expandafter\pg@ligature\expandafter#1&
+ \else
+ \csname\pg@@text\string#1\expandafter\endcsname
+ \fi{#2}}
+\endgroup
+
+\long\def\pg@ligature#1#2{%
+ \expandafter\ifx\csname\pg@cmd\pg@lig{#1-\string#2}\endcsname\relax
+ \csname\pg@@text\string#1\expandafter\endcsname\expandafter#2%
+ \else
+ \csname\pg@cmd\pg@lig{#1-\string#2}\expandafter\endcsname
+ \fi}
+
+\long\def\pg@math@ligature#1{%
+ \@nameuse{\pg@@math\string#1}}
+
+\def\UpdateSpecial#1{\expandafter\pg@update@special
+ \csname\string#1\endcsname}
+
+\def\pg@update@special#1{%
+ \def\pg@b##1##2{\ifnum`#1=`##2 \else
+ \noexpand##1\noexpand##2\fi}%
+ \def\pg@c##1##2{\ifnum\catcode`##2<\active
+ \ifnum\catcode`##2>10 \else\@firstoftwo\fi
+ \else\noexpand##1\noexpand##2\fi}%
+ \def\do{\pg@b\do}%
+ \def\@makeother{\pg@b\@makeother}%
+ \edef\dospecials{\dospecials\pg@c\do#1}%
+ \edef\@sanitize{\@sanitize\pg@c\@makeother#1}%
+ \let\do\relax
+ \def\@makeother##1{\catcode`##1=12\relax}}
+
+\begingroup
+\catcode`*=\active \catcode`^=7
+\catcode`~=\active \catcode`'=12
+\lccode`*=`^ \lccode`^=`^ \lccode`~=`' \lccode`'=`'
+\lowercase{%
+\gdef\pr@m@s{%
+ \ifx~\@let@token\let\@let@token='\fi
+ \ifx*\@let@token\let\@let@token=^\fi
+ \ifx'\@let@token
+ \expandafter\pr@@@s
+ \else\ifx^\@let@token
+ \expandafter\expandafter\expandafter\pr@@@t
+ \else
+ \egroup
+ \fi\fi}}
+\endgroup
+
+
+\begingroup
+\catcode`"=12 \catcode`'=12 \catcode``=12
+\gdef\hexnumber{"}
+\gdef\octalnumber{'}
+\gdef\charnumber{`}
+\endgroup
+
+\def\allowhyphens{\ifhmode\nobreak\hskip\z@skip\fi}
+
+\providecommand\@tabacckludge[1]{%
+ \expandafter\@changed@cmd\csname#1\endcsname\relax}
+
+\def\ensurelanguage{\ifx\glossary\relax
+ \protect\pg@ensure\pg@last\fi}
+
+\def\pg@ensure#1#2{%
+ \def\pg@a{{#1}{#2}}%
+ \ifx\pg@a\pg@last\else
+ \def\pg@a{#1}%
+ \ifx\pg@a\@empty\def\pg@c{\pg@unsel@ii}\else
+ \def\pg@c{\pg@sel@iii*#1}\fi
+ \def\pg@a{#2}%
+ \ifx\pg@a\@empty\else
+ \def\pg@a{#1}\edef\pg@b{\expandafter\@firstoftwo\pg@last}%
+ \ifx\pg@b\pg@a\expandafter\def\else\expandafter\pg@after\fi
+ \pg@c{\pg@sel@iii{}#2}%
+ \fi
+ \expandafter\pg@c
+ \fi}
+
+\def\ensuredcommand#1#2{%
+ \expandafter\gdef\expandafter#1\expandafter
+ {\expandafter{\expandafter\pg@ensure\pg@last#2}}}
+
+
+\def\markboth#1#2{%
+ \gdef\@themark{{\ensurelanguage#1}{\ensurelanguage#2}}{%
+ \let\protect\@unexpandable@protect
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
+
+\def\@markright#1#2#3{%
+ \gdef\@themark{{#1}{\ensurelanguage#3}}}
+
+
+\def\DeclareLanguageCompositeCommand#1#2#3{%
+ \pg@add@to{text}{\pg@composite{#1}{#2}}%
+ \expandafter\DeclareLanguageCommand
+ \csname\expandafter\string\csname#2\endcsname
+ \string#1-\string#3\endcsname{text}}
+
+\def\pg@composite#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\expandafter\let\csname\pg@@\thelanguage-\string#1\endcsname#1%
+ \expandafter\pg@after\csname\pg@@/text\endcsname
+ {\expandafter\let\expandafter
+ #1\csname\pg@@\thelanguage-\string#1\endcsname}}{}%
+ \expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname
+ \expandafter\expandafter\expandafter\ifx
+ \expandafter\@car\reserved@a\relax\relax\@nil \@text@composite \else
+ \edef\reserved@b##1{%
+ \def\expandafter\noexpand
+ \csname#2\string#1\endcsname####1{%
+ \noexpand\@text@composite
+ \expandafter\noexpand\csname#2\string#1\endcsname
+ ####1\noexpand\@empty\noexpand\@text@composite
+ {##1}}}%
+ \expandafter\reserved@b\expandafter{\reserved@a{##1}}%
+ \fi}
+
+\@onlypreamble\DeclareLanguageCompositeCommand
+
+
+\def\DeclareLanguageTextCommand#1#2{%
+ \@ifundefined{\pg@cmd\thelanguage{#1}}%
+ {\DeclareLanguageCommand{#1}{text}%
+ {\pg@text@cmd{#1}{#2}}%
+ \expandafter\DeclareLanguageCommand
+ \csname#2\string#1\endcsname{text}}%
+ {\expandafter\let\expandafter\pg@a
+ \csname\pg@@\thelanguage-\string#1\endcsname
+ \expandafter\in@\expandafter\pg@text@cmd
+ \expandafter{\pg@a}%
+ \ifin@\def\pg@a{\expandafter\DeclareLanguageCommand
+ \csname#2\string#1\endcsname{text}}%
+ \expandafter\pg@a
+ \else\pg@bug@err3\fi}}
+
+\@onlypreamble\DeclareLanguageTextCommand
+
+\def\pg@text@cmd#1#2{%
+ \csname#2-cmd\expandafter\endcsname
+ \expandafter#1%
+ \csname#2\string#1\endcsname}
+
+
+\def\pg@extensions#1{%
+ \edef\cdp@elt##1##2##3##4{%
+ \def\noexpand\DeclareCompositeLanguageCommand####1{%
+ \noexpand\pg@composite{####1}{##1}}%
+ \def\noexpand\DeclareTextLanguageCommand####1{%
+ \noexpand\pg@text{####1}{##1}}%
+ \noexpand\InputIfFileExists{#1.##1}{}{}}%
+ \cdp@list}
+
+
+\ifx\PreLoadPatterns\@undefined
+
+ \def\LanguagePath#1{\edef\input@path{\input@path{#1}}}
+
+ \let\PreLoadPatterns\@gobbletwo
+
+ \def\SetPatterns#1#2{\expandafter\chardef
+ \csname pgh@#1\endcsname=#2\relax}
+
+ \def\PreLoadLanguage#1#2#{\@gobbletwo}
+
+ \def\LoadLanguage#1{\@ifnextchar[{\pg@load{#1}}%
+ {\pg@load{#1}[#1]}}
+
+ \def\pg@load#1[#2]#3#4{%
+ \DeclareOption{#1}{\pg@input{#1}{#2}{#3}{#4}}}
+
+ \def\pg@input#1#2#3#4{%
+ \pg@to@list{#1}%
+ \@ifundefined{pgh@#1}%
+ {\expandafter\let\csname pgh@#1\expandafter\endcsname
+ \csname pgh@#3\endcsname%
+ \PackageInfo{polyglot}%
+ {#1 with #3 patterns\@gobble}}\@empty
+ \@ifundefined{\pg@@?#1}%
+ {\InputIfFileExists{#2.ld}{}%
+ {\pg@err{Missing language file}}%
+ \pg@extensions{#2}}\@empty
+ \edef\thelanguage{\csname\pg@@?#1\endcsname}#4}
+
+\fi
+
+
+\@onlypreamble\PreLoadPatterns
+\@onlypreamble\SetPatterns
+\@onlypreamble\PreLoadLanguage
+\@onlypreamble\LoadLanguage
+\@onlypreamble\pg@input
+\@onlypreamble\pg@load
+
+
+\input{polyglot.cfg}
+\ProcessOptions
+\pg@sel@opt
+
+\endinput
+%%
+%% End of file `polyglot.sty'.