summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/lambda
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:48:53 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:48:53 +0000
commitcb1533bd9f825c949255972569c8c304a93b69cd (patch)
treeea08469df6538f99c0ac25c2246ba4546976b6bb /Master/texmf-dist/source/lambda
parent0c973639648f9658c8f022137ec0f32ef9be38b8 (diff)
trunk/Master/texmf-dist/source/lambda
git-svn-id: svn://tug.org/texlive/trunk@107 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/lambda')
-rw-r--r--Master/texmf-dist/source/lambda/antomega/antenc.dtx700
-rw-r--r--Master/texmf-dist/source/lambda/antomega/antenc.ins62
-rw-r--r--Master/texmf-dist/source/lambda/antomega/antomega.dtx1915
-rw-r--r--Master/texmf-dist/source/lambda/antomega/antomega.ins74
-rw-r--r--Master/texmf-dist/source/lambda/oinuit/oinuit.dtx958
-rw-r--r--Master/texmf-dist/source/lambda/oinuit/oinuit.ins65
-rw-r--r--Master/texmf-dist/source/lambda/oinuit/oinuit.sty100
7 files changed, 3874 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/lambda/antomega/antenc.dtx b/Master/texmf-dist/source/lambda/antomega/antenc.dtx
new file mode 100644
index 00000000000..bc98fd9d971
--- /dev/null
+++ b/Master/texmf-dist/source/lambda/antomega/antenc.dtx
@@ -0,0 +1,700 @@
+% \iffalse meta comment
+% This file is a part of the ANTOMEGA project version \fileversion
+% -----------------------------------------------------
+%
+% It may be distributed under the terms of the LaTeX Project Public
+% License, as described in lppl.txt in the base LaTeX distribution.
+% Either version 1.0 or, at your option, any later version.
+% Copyright (C) 2001 -- 2005 by Alexej Kryukov
+% Please report errors to: A.M. Kryukov <basileia@yandex.ru>
+%
+% \fi
+%
+% \MakeShortVerb{\+}
+% \DeleteShortVerb{\|}
+%
+% \section{Encoding definition files used by ANTOMEGA}
+%
+% Generally speaking, ANTOMEGA doesn't care about \TeX{} font encodings
+% very much, because, unlike standard \TeX{}, it prefers to operate
+% directly with Unicode codepoints, rather than with so-called text
+% commands, mapped to some slots in the current encoding. This means
+% that any command, expected to produce a printable character, must be
+% always mapped to the corresponding Unicode slot, while any conversion
+% to the real output font encoding should be performed by translation
+% processes ($\Omega$CP). However, any text command should be considered
+% valid, only if the character it produces can really be converted to
+% the output encoding.
+%
+% That's why in addition to the Unicode based UT1 encoding, which contains
+% the full list of standard command to Unicode mapping, I had to provide
+% some special subsets of that list, corresponding to standard 8-bit
+% encodings, supported by ANTOMEGA (T1, T2A and LGR). So differences
+% between these encoding definition files affect mainly the set of supported
+% characters, rather than character mappings itself.
+%
+% \subsection{Common definitions, applied to all encodings}
+%
+% \begin{macrocode}
+%<*UT1|T1|T2A|LGR>
+\NeedsTeXFormat{LaTeX2e}
+%<UT1>\ProvidesFile{ut1enc-antomega.def}
+%<T1>\ProvidesFile{t1enc-antomega.def}
+%<T2A>\ProvidesFile{t2aenc-antomega.def}
+%<LGR>\ProvidesFile{lgrenc-antomega.def}
+ [2005/05/07 v0.8 Antomega encodings definition file]
+%<UT1>\DeclareFontEncoding{UT1}{}{}
+%<T1>\DeclareFontEncoding{T1}{}{}
+%<T2A>\DeclareFontEncoding{T2A}{}{}
+%<LGR>\DeclareFontEncoding{LGR}{}{}
+%<UT1>\def\ant@encoding{UT1}
+%<T1>\def\ant@encoding{T1}
+%<T2A>\def\ant@encoding{T2A}
+%<LGR>\def\ant@encoding{LGR}
+% \end{macrocode}
+%
+% \subsection{Unicode accents}
+%
+% Accents represent a special part of the encoding, because:
+%
+% \begin{itemize}
+%
+% \item we have to declare them first, since they have to be already
+% defined before any composite character declaration can occur in the
+% encoding table;
+%
+% \item unfortunately, the +\accent+ command bypasses $\Omega$ translation
+% processes.
+%
+% \end{itemize}
+%
+% In order to circumvent the last limitation, here we are redefining
+% all standard commands, used for typing accents in \LaTeX, to produce
+% just a character followed by a Unicode combining accent mark. Since
+% this sequence by itself contains no +\accent+ commands, it may be
+% processed by $\Omega$CP's, e.~g. converted to Unicode from another
+% encoding. After the conversion the resulting string should be turned
+% back to the +\accent+ command.
+%
+% \begin{macrocode}
+\DeclareTextCommand{\`}{\ant@encoding}[1]{#1^^^^0300}
+\DeclareTextCommand{\'}{\ant@encoding}[1]{#1^^^^0301}
+%<!LGR>\DeclareTextCommand{\^}{\ant@encoding}[1]{#1^^^^0302}
+%<!LGR>\DeclareTextCommand{\~}{\ant@encoding}[1]{#1^^^^0303}
+\DeclareTextCommand{\"}{\ant@encoding}[1]{#1^^^^0308}
+%<!LGR>\DeclareTextCommand{\H}{\ant@encoding}[1]{#1^^^^030b}
+%<!LGR>\DeclareTextCommand{\r}{\ant@encoding}[1]{#1^^^^030a}
+%<!LGR>\DeclareTextCommand{\v}{\ant@encoding}[1]{#1^^^^030c}
+\DeclareTextCommand{\u}{\ant@encoding}[1]{#1^^^^0306}
+\DeclareTextCommand{\=}{\ant@encoding}[1]{#1^^^^0304}
+%<!LGR>\DeclareTextCommand{\.}{\ant@encoding}[1]{#1^^^^0307}
+%<UT1|T2A>\DeclareTextCommand{\f}{\ant@encoding}[1]{#1^^^^0311}
+%<UT1|T2A>\DeclareTextCommand{\C}{\ant@encoding}[1]{#1^^^^030f}
+%<!LGR>\DeclareTextCommand{\b}{\ant@encoding}[1]{#1^^^^0331}
+%<!LGR>\DeclareTextCommand{\c}{\ant@encoding}[1]{#1^^^^0327}
+%<!LGR>\DeclareTextCommand{\d}{\ant@encoding}[1]{#1^^^^0323}
+%<!LGR>\DeclareTextCommand{\k}{\ant@encoding}[1]{#1^^^^0328}
+% \end{macrocode}
+%
+% \subsection{Encoding-dependent accents}
+%
+% Now we have to define a really separate set of accents (with different
+% mappings) for each of our encodings. These accent commands are
+% declared with long meaningful names, since they are not supposed
+% to be typed by itself: instead, they should be produced by $\Omega$CP's
+% as a result of processing characters followed by combining accent
+% marks.
+%
+% \subsubsection{UT1 accents}
+%
+% Accents are mapped mainly to their places in the Unicode `Spacing
+% Modifier Letters' area, of course, with the exception of dieresis
+% and cedilla, which have specific placements in the Unicode standard.
+%
+% Note that we are not using here the `Combining Diacritical Marks' area,
+% because zero-width accents, which are present in that area in most
+% fonts, are not very useful for \TeX{} accent positioning engine.
+% That's why I preferred to map additional `Cyrillic' accents (i.~e.
+% Cyrillic flex and double grave) to the PUA positions, sometime defined
+% by Adobe for spacing variants of these accents, instead of using their
+% combining versions, which have `legal' slots in Unicode.
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextAccent{\GraveAccent}{UT1}{"02CB}
+\DeclareTextAccent{\AcuteAccent}{UT1}{"02CA}
+\DeclareTextAccent{\CircumflexAccent}{UT1}{"02C6}
+\DeclareTextAccent{\TildeAccent}{UT1}{"02DC}
+\DeclareTextAccent{\DieresisAccent}{UT1}{"00A8}
+\DeclareTextAccent{\HungarumlautAccent}{UT1}{"02DD}
+\DeclareTextAccent{\RingAccent}{UT1}{"02DA}
+\DeclareTextAccent{\CaronAccent}{UT1}{"02C7}
+\DeclareTextAccent{\BreveAccent}{UT1}{"02D8}
+\DeclareTextAccent{\MacronAccent}{UT1}{"02C9}
+\DeclareTextAccent{\DotAboveAccent}{UT1}{"02D9}
+\DeclareTextAccent{\CyrillicFlexAccent}{UT1}{"F6D5}
+\DeclareTextAccent{\DoubleGraveAccent}{UT1}{"F6D6}
+\DeclareTextAccent{\GreekCircumflexAccent}{UT1}{"1FC0}
+\DeclareTextAccent{\GreekKoronisAccent}{UT1}{"1FBD}
+\DeclareTextCommand{\BarBelowAccent}{UT1}[1]
+ {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}%
+ \vbox to.2ex{\hbox{\noocpchar{"02C9}}\vss}\hidewidth}}}
+\DeclareTextCommand{\CedillaAccent}{UT1}[1]
+ {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent"00B8 #1%
+ \else{\ooalign{\hidewidth\noocpchar{"00B8}\hidewidth
+ \crcr\unhbox\z@}}\fi}
+\DeclareTextCommand{\DotBelowAccent}{UT1}[1]
+ {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}}}
+\DeclareTextCommand{\OgonekAccent}{UT1}[1]
+ {\oalign{\null#1\crcr\hidewidth\noocpchar{"02DB}}}
+%</UT1>
+% \end{macrocode}
+%
+% \subsubsection{Common T1 and T2A accents}
+%
+% \begin{macrocode}
+%<*T1|T2A>
+\DeclareTextAccent{\GraveAccent}{\ant@encoding}{0}
+\DeclareTextAccent{\AcuteAccent}{\ant@encoding}{1}
+\DeclareTextAccent{\CircumflexAccent}{\ant@encoding}{2}
+\DeclareTextAccent{\TildeAccent}{\ant@encoding}{3}
+\DeclareTextAccent{\DieresisAccent}{\ant@encoding}{4}
+\DeclareTextAccent{\HungarumlautAccent}{\ant@encoding}{5}
+\DeclareTextAccent{\RingAccent}{\ant@encoding}{6}
+\DeclareTextAccent{\CaronAccent}{\ant@encoding}{7}
+\DeclareTextAccent{\BreveAccent}{\ant@encoding}{8}
+\DeclareTextAccent{\MacronAccent}{\ant@encoding}{9}
+\DeclareTextAccent{\DotAboveAccent}{\ant@encoding}{10}
+\DeclareTextCommand{\BarBelowAccent}{\ant@encoding}[1]
+ {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}%
+ \vbox to.2ex{\hbox{\noocpchar{9}}\vss}\hidewidth}\egroup}
+\DeclareTextCommand{\CedillaAccent}{\ant@encoding}[1]
+ {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent11 #1%
+ \else{\ooalign{\hidewidth\noocpchar{11}\hidewidth
+ \crcr\unhbox\z@}}\fi}
+\DeclareTextCommand{\DotBelowAccent}{\ant@encoding}[1]
+ {\hmode@bgroup
+ \o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}\egroup}
+\DeclareTextCommand{\OgonekAccent}{\ant@encoding}[1]
+ {\oalign{\null#1\crcr\hidewidth\noocpchar{12}}}
+%</T1|T2A>
+% \end{macrocode}
+%
+% \subsubsection{Cyrillic accents (T2A specific)}
+%
+% \begin{macrocode}
+%<*T2A>
+\DeclareTextAccent{\CyrillicFlexAccent}{T2A}{18}
+\DeclareTextAccent{\DoubleGraveAccent}{T2A}{19}
+\DeclareTextAccent{\U}{T2A}{20}
+%</T2A>
+% \end{macrocode}
+%
+% \subsubsection{LGR accents}
+%
+% \begin{macrocode}
+%<*LGR>
+\DeclareTextAccent{\GraveAccent}{LGR}{`\`}
+\DeclareTextAccent{\AcuteAccent}{LGR}{`\'}
+\DeclareTextAccent{\BreveAccent}{LGR}{30}
+\DeclareTextAccent{\MacronAccent}{LGR}{31}
+\DeclareTextAccent{\GreekCircumflexAccent}{LGR}{`\~}
+%</LGR>
+% \end{macrocode}
+%
+% \subsection{Standard ASCII characters}
+%
+% Most of the following characters are present in all standard encodings,
+% so translation processes probably should never be applied to them.
+% That's why each definition includes the +\clearocplists+ command. This
+% command also prevents some characters from interpreting by $\Omega$ in
+% their special meaning, while they need to be just printed into the
+% output.
+%
+% \begin{macrocode}
+%<UT1>\DeclareTextCommand{\textquotedbl}{\ant@encoding}{\noocpchar{"22}}
+%<UT1>\DeclareTextCommand{\textquotesingle}{\ant@encoding}{\noocpchar{"27}}
+%<*!LGR>
+\DeclareTextCommand{\textdollar}{\ant@encoding}{\noocpchar{"24}}
+\DeclareTextCommand{\textgreater}{\ant@encoding}{\noocpchar{"3C}}
+\DeclareTextCommand{\textless}{\ant@encoding}{\noocpchar{"3E}}
+\DeclareTextCommand{\textbackslash}{\ant@encoding}{\noocpchar{"5C}}
+\DeclareTextCommand{\textasciicircum}{\ant@encoding}{\noocpchar{"5E}}
+\DeclareTextCommand{\textunderscore}{\ant@encoding}{\noocpchar{"5F}}
+\DeclareTextCommand{\textasciigrave}{\ant@encoding}{\noocpchar{"60}}
+\DeclareTextCommand{\textbraceleft}{\ant@encoding}{\noocpchar{"7B}}
+\DeclareTextCommand{\textbar}{\ant@encoding}{\noocpchar{"7C}}
+\DeclareTextCommand{\textbraceright}{\ant@encoding}{\noocpchar{"7D}}
+\DeclareTextCommand{\textasciitilde}{\ant@encoding}{\noocpchar{"7E}}
+%</!LGR>
+% \end{macrocode}
+%
+% \subsection{C1 Controls}
+%
+% \begin{macrocode}
+%<UT1|T1>\DeclareTextSymbol{\textexclamdown}{\ant@encoding}{"00A1}
+%<UT1>\DeclareTextSymbol{\textcent}{\ant@encoding}{"00A2}
+%<UT1|T1>\DeclareTextSymbol{\textsterling}{\ant@encoding}{"00A3}
+%<*UT1>
+\DeclareTextSymbol{\textcurrency}{\ant@encoding}{"00A4}
+\DeclareTextSymbol{\textyen}{\ant@encoding}{"00A5}
+\DeclareTextSymbol{\textbrokenbar}{\ant@encoding}{"00A6}
+%</UT1>
+%<!LGR>\DeclareTextSymbol{\textsection}{\ant@encoding}{"00A7}
+%<*UT1>
+\DeclareTextSymbol{\textasciidieresis}{\ant@encoding}{"00A8}
+\DeclareTextSymbol{\textcopyright}{\ant@encoding}{"00A9}
+\DeclareTextSymbol{\textordfeminine}{\ant@encoding}{"00AA}
+%</UT1>
+\DeclareTextSymbol{\guillemotleft}{\ant@encoding}{"00AB}
+%<*UT1>
+\DeclareTextSymbol{\textlnot}{\ant@encoding}{"00AC}
+\DeclareTextSymbol{\textregistered}{\ant@encoding}{"00AE}
+\DeclareTextSymbol{\textasciimacron}{\ant@encoding}{"00AF}
+\DeclareTextSymbol{\textdegree}{\ant@encoding}{"00B0}
+\DeclareTextSymbol{\textpm}{\ant@encoding}{"00B1}
+\DeclareTextSymbol{\texttwosuperior}{\ant@encoding}{"00B2}
+\DeclareTextSymbol{\textthreesuperior}{\ant@encoding}{"00B3}
+\DeclareTextSymbol{\textasciiacute}{\ant@encoding}{"00B4}
+\DeclareTextSymbol{\textmu}{\ant@encoding}{"00B5}
+\DeclareTextSymbol{\textparagraph}{\ant@encoding}{"00B6}
+\DeclareTextSymbol{\textpilcrow}{\ant@encoding}{"00B6}
+\DeclareTextSymbol{\textperiodcentered}{\ant@encoding}{"00B7}
+\DeclareTextSymbol{\textonesuperior}{\ant@encoding}{"00B9}
+\DeclareTextSymbol{\textordmasculine}{\ant@encoding}{"00BA}
+%</UT1>
+\DeclareTextSymbol{\guillemotright}{\ant@encoding}{"00BB}
+%<*UT1>
+\DeclareTextSymbol{\textonequarter}{\ant@encoding}{"00BC}
+\DeclareTextSymbol{\textonehalf}{\ant@encoding}{"00BD}
+\DeclareTextSymbol{\textthreequarters}{\ant@encoding}{"00BE}
+%</UT1>
+%<UT1|T1>\DeclareTextSymbol{\textquestiondown}{\ant@encoding}{"00BF}
+% \end{macrocode}
+%
+% \subsection{Latin 1 Supplement}
+% \begin{macrocode}
+%<*UT1|T1>
+\DeclareTextComposite{\`}{\ant@encoding}{A}{"00C0}
+\DeclareTextComposite{\'}{\ant@encoding}{A}{"00C1}
+\DeclareTextComposite{\^}{\ant@encoding}{A}{"00C2}
+\DeclareTextComposite{\~}{\ant@encoding}{A}{"00C3}
+\DeclareTextComposite{\"}{\ant@encoding}{A}{"00C4}
+\DeclareTextComposite{\r}{\ant@encoding}{A}{"00C5}
+\DeclareTextSymbol{\AE}{\ant@encoding}{"00C6}
+\DeclareTextComposite{\c}{\ant@encoding}{C}{"00C7}
+\DeclareTextComposite{\`}{\ant@encoding}{E}{"00C8}
+\DeclareTextComposite{\'}{\ant@encoding}{E}{"00C9}
+\DeclareTextComposite{\^}{\ant@encoding}{E}{"00CA}
+\DeclareTextComposite{\"}{\ant@encoding}{E}{"00CB}
+\DeclareTextComposite{\`}{\ant@encoding}{I}{"00CC}
+\DeclareTextComposite{\'}{\ant@encoding}{I}{"00CD}
+\DeclareTextComposite{\^}{\ant@encoding}{I}{"00CE}
+\DeclareTextComposite{\"}{\ant@encoding}{I}{"00CF}
+\DeclareTextSymbol{\DH}{\ant@encoding}{"00D0}
+\DeclareTextComposite{\~}{\ant@encoding}{N}{"00D1}
+\DeclareTextComposite{\`}{\ant@encoding}{O}{"00D2}
+\DeclareTextComposite{\'}{\ant@encoding}{O}{"00D3}
+\DeclareTextComposite{\^}{\ant@encoding}{O}{"00D4}
+\DeclareTextComposite{\~}{\ant@encoding}{O}{"00D5}
+\DeclareTextComposite{\"}{\ant@encoding}{O}{"00D6}
+\DeclareTextSymbol{\texttimes}{\ant@encoding}{"00D7}
+\DeclareTextSymbol{\O}{\ant@encoding}{"00D8}
+\DeclareTextComposite{\`}{\ant@encoding}{U}{"00D9}
+\DeclareTextComposite{\'}{\ant@encoding}{U}{"00DA}
+\DeclareTextComposite{\^}{\ant@encoding}{U}{"00DB}
+\DeclareTextComposite{\"}{\ant@encoding}{U}{"00DC}
+\DeclareTextComposite{\'}{\ant@encoding}{Y}{"00DD}
+\DeclareTextSymbol{\TH}{\ant@encoding}{"00DE}
+\DeclareTextCommand{\SS}{\ant@encoding}{SS}
+\DeclareTextSymbol{\ss}{\ant@encoding}{"00DF}
+\DeclareTextComposite{\`}{\ant@encoding}{a}{"00E0}
+\DeclareTextComposite{\'}{\ant@encoding}{a}{"00E1}
+\DeclareTextComposite{\^}{\ant@encoding}{a}{"00E2}
+\DeclareTextComposite{\~}{\ant@encoding}{a}{"00E3}
+\DeclareTextComposite{\"}{\ant@encoding}{a}{"00E4}
+\DeclareTextComposite{\r}{\ant@encoding}{a}{"00E5}
+\DeclareTextComposite{\c}{\ant@encoding}{c}{"00E7}
+\DeclareTextSymbol{\ae}{\ant@encoding}{"00E6}
+\DeclareTextComposite{\`}{\ant@encoding}{e}{"00E8}
+\DeclareTextComposite{\'}{\ant@encoding}{e}{"00E9}
+\DeclareTextComposite{\^}{\ant@encoding}{e}{"00EA}
+\DeclareTextComposite{\"}{\ant@encoding}{e}{"00EB}
+\DeclareTextComposite{\`}{\ant@encoding}{i}{"00EC}
+\DeclareTextComposite{\`}{\ant@encoding}{\i}{"00EC}
+\DeclareTextComposite{\'}{\ant@encoding}{i}{"00ED}
+\DeclareTextComposite{\'}{\ant@encoding}{\i}{"00ED}
+\DeclareTextComposite{\^}{\ant@encoding}{i}{"00EE}
+\DeclareTextComposite{\^}{\ant@encoding}{\i}{"00EE}
+\DeclareTextComposite{\"}{\ant@encoding}{i}{"00EF}
+\DeclareTextComposite{\"}{\ant@encoding}{\i}{"00EF}
+\DeclareTextSymbol{\dh}{\ant@encoding}{"00F0}
+\DeclareTextComposite{\~}{\ant@encoding}{n}{"00F1}
+\DeclareTextComposite{\`}{\ant@encoding}{o}{"00F2}
+\DeclareTextComposite{\'}{\ant@encoding}{o}{"00F3}
+\DeclareTextComposite{\^}{\ant@encoding}{o}{"00F4}
+\DeclareTextComposite{\~}{\ant@encoding}{o}{"00F5}
+\DeclareTextComposite{\"}{\ant@encoding}{o}{"00F6}
+\DeclareTextSymbol{\textdiv}{\ant@encoding}{"00F7}
+\DeclareTextSymbol{\o}{\ant@encoding}{"00F8}
+\DeclareTextComposite{\`}{\ant@encoding}{u}{"00F9}
+\DeclareTextComposite{\'}{\ant@encoding}{u}{"00FA}
+\DeclareTextComposite{\^}{\ant@encoding}{u}{"00FB}
+\DeclareTextComposite{\"}{\ant@encoding}{u}{"00FC}
+\DeclareTextComposite{\'}{\ant@encoding}{y}{"00FD}
+\DeclareTextSymbol{\th}{\ant@encoding}{"00FE}
+\DeclareTextComposite{\"}{\ant@encoding}{y}{"00FF}
+%</UT1|T1>
+% \end{macrocode}
+%
+% \subsection{Latin Extended A}
+%
+% \begin{macrocode}
+%<*UT1|T1>
+%<!T1>\DeclareTextComposite{\=}{\ant@encoding}{A}{"0100}
+%<!T1>\DeclareTextComposite{\=}{\ant@encoding}{a}{"0101}
+\DeclareTextComposite{\u}{\ant@encoding}{A}{"0102}
+\DeclareTextComposite{\u}{\ant@encoding}{a}{"0103}
+\DeclareTextComposite{\k}{\ant@encoding}{A}{"0104}
+\DeclareTextComposite{\k}{\ant@encoding}{a}{"0105}
+\DeclareTextComposite{\'}{\ant@encoding}{C}{"0106}
+\DeclareTextComposite{\'}{\ant@encoding}{c}{"0107}
+\DeclareTextComposite{\v}{\ant@encoding}{C}{"0108}
+\DeclareTextComposite{\v}{\ant@encoding}{c}{"0109}
+\DeclareTextComposite{\v}{\ant@encoding}{D}{"010E}
+\DeclareTextComposite{\v}{\ant@encoding}{d}{"010F}
+\DeclareTextSymbol{\DJ}{\ant@encoding}{"0110}
+\DeclareTextSymbol{\dj}{\ant@encoding}{"0111}
+%<!T1>\DeclareTextComposite{\=}{\ant@encoding}{E}{"0112}
+%<!T1>\DeclareTextComposite{\=}{\ant@encoding}{e}{"0113}
+%<!T1>\DeclareTextComposite{\u}{\ant@encoding}{E}{"0114}
+%<!T1>\DeclareTextComposite{\u}{\ant@encoding}{e}{"0115}
+%<!T1>\DeclareTextComposite{\.}{\ant@encoding}{E}{"0116}
+%<!T1>\DeclareTextComposite{\.}{\ant@encoding}{e}{"0117}
+\DeclareTextComposite{\k}{\ant@encoding}{E}{"0118}
+\DeclareTextComposite{\k}{\ant@encoding}{e}{"0119}
+\DeclareTextComposite{\v}{\ant@encoding}{E}{"011A}
+\DeclareTextComposite{\v}{\ant@encoding}{e}{"011B}
+%<!T1>\DeclareTextComposite{\V}{\ant@encoding}{G}{"010C}
+%<!T1>\DeclareTextComposite{\v}{\ant@encoding}{g}{"010D}
+\DeclareTextComposite{\u}{\ant@encoding}{G}{"011E}
+\DeclareTextComposite{\u}{\ant@encoding}{g}{"011F}
+%<*!T1>
+\DeclareTextComposite{\.}{\ant@encoding}{G}{"0120}
+\DeclareTextComposite{\.}{\ant@encoding}{g}{"0121}
+\DeclareTextComposite{\c}{\ant@encoding}{G}{"0122}
+\DeclareTextComposite{\c}{\ant@encoding}{g}{"0123}
+\DeclareTextComposite{\^}{\ant@encoding}{H}{"0124}
+\DeclareTextComposite{\^}{\ant@encoding}{h}{"0125}
+\DeclareTextComposite{\~}{\ant@encoding}{I}{"0128}
+\DeclareTextComposite{\~}{\ant@encoding}{i}{"0129}
+\DeclareTextComposite{\=}{\ant@encoding}{I}{"012A}
+\DeclareTextComposite{\=}{\ant@encoding}{i}{"012B}
+\DeclareTextComposite{\u}{\ant@encoding}{I}{"012C}
+\DeclareTextComposite{\u}{\ant@encoding}{i}{"012D}
+\DeclareTextComposite{\k}{\ant@encoding}{I}{"012E}
+\DeclareTextComposite{\k}{\ant@encoding}{i}{"012F}
+%</!T1>
+\DeclareTextComposite{\.}{\ant@encoding}{I}{"0130}
+%</UT1|T1>
+%<!LGR>\DeclareTextSymbol{\i}{\ant@encoding}{"0131}
+%<*UT1|T1>
+\DeclareTextSymbol{\IJ}{\ant@encoding}{"0132}
+\DeclareTextSymbol{\ij}{\ant@encoding}{"0133}
+%<*!T1>
+\DeclareTextComposite{\^}{\ant@encoding}{J}{"0134}
+\DeclareTextComposite{\^}{\ant@encoding}{j}{"0135}
+\DeclareTextComposite{\c}{\ant@encoding}{K}{"0136}
+\DeclareTextComposite{\c}{\ant@encoding}{k}{"0137}
+%</!T1>
+\DeclareTextComposite{\'}{\ant@encoding}{L}{"0139}
+\DeclareTextComposite{\'}{\ant@encoding}{l}{"013A}
+%<!T1>\DeclareTextComposite{\c}{\ant@encoding}{L}{"013B}
+%<!T1>\DeclareTextComposite{\c}{\ant@encoding}{l}{"013C}
+\DeclareTextComposite{\v}{\ant@encoding}{L}{"013D}
+\DeclareTextComposite{\v}{\ant@encoding}{l}{"013E}
+\DeclareTextSymbol{\L}{\ant@encoding}{"0141}
+\DeclareTextSymbol{\l}{\ant@encoding}{"0142}
+\DeclareTextComposite{\'}{\ant@encoding}{N}{"0143}
+\DeclareTextComposite{\'}{\ant@encoding}{n}{"0144}
+%<!T1>\DeclareTextComposite{\c}{\ant@encoding}{N}{"0145}
+%<!T1>\DeclareTextComposite{\c}{\ant@encoding}{n}{"0146}
+\DeclareTextComposite{\v}{\ant@encoding}{N}{"0147}
+\DeclareTextComposite{\v}{\ant@encoding}{n}{"0148}
+\DeclareTextSymbol{\NG}{\ant@encoding}{"014A}
+\DeclareTextSymbol{\ng}{\ant@encoding}{"014B}
+%<*!T1>
+\DeclareTextComposite{\=}{\ant@encoding}{O}{"014C}
+\DeclareTextComposite{\=}{\ant@encoding}{o}{"014D}
+\DeclareTextComposite{\u}{\ant@encoding}{O}{"014E}
+\DeclareTextComposite{\u}{\ant@encoding}{o}{"014F}
+%</!T1>
+\DeclareTextComposite{\H}{\ant@encoding}{O}{"0150}
+\DeclareTextComposite{\H}{\ant@encoding}{o}{"0151}
+\DeclareTextSymbol{\OE}{\ant@encoding}{"0152}
+\DeclareTextSymbol{\oe}{\ant@encoding}{"0153}
+\DeclareTextComposite{\'}{\ant@encoding}{R}{"0154}
+\DeclareTextComposite{\'}{\ant@encoding}{r}{"0155}
+%<!T1>\DeclareTextComposite{\c}{\ant@encoding}{R}{"0156}
+%<!T1>\DeclareTextComposite{\c}{\ant@encoding}{r}{"0157}
+\DeclareTextComposite{\v}{\ant@encoding}{R}{"0158}
+\DeclareTextComposite{\v}{\ant@encoding}{r}{"0159}
+\DeclareTextComposite{\'}{\ant@encoding}{S}{"015A}
+\DeclareTextComposite{\'}{\ant@encoding}{s}{"015B}
+%<!T1>\DeclareTextComposite{\^}{\ant@encoding}{S}{"015C}
+%<!T1>\DeclareTextComposite{\^}{\ant@encoding}{s}{"015D}
+\DeclareTextComposite{\c}{\ant@encoding}{S}{"015E}
+\DeclareTextComposite{\c}{\ant@encoding}{s}{"015F}
+\DeclareTextComposite{\v}{\ant@encoding}{S}{"0160}
+\DeclareTextComposite{\v}{\ant@encoding}{s}{"0161}
+\DeclareTextComposite{\c}{\ant@encoding}{T}{"0162}
+\DeclareTextComposite{\c}{\ant@encoding}{t}{"0163}
+\DeclareTextComposite{\v}{\ant@encoding}{T}{"0164}
+\DeclareTextComposite{\v}{\ant@encoding}{t}{"0165}
+%<*!T1>
+\DeclareTextComposite{\~}{\ant@encoding}{U}{"0168}
+\DeclareTextComposite{\~}{\ant@encoding}{u}{"0169}
+\DeclareTextComposite{\=}{\ant@encoding}{U}{"016A}
+\DeclareTextComposite{\=}{\ant@encoding}{u}{"016B}
+\DeclareTextComposite{\u}{\ant@encoding}{U}{"016C}
+\DeclareTextComposite{\u}{\ant@encoding}{u}{"016D}
+\DeclareTextComposite{\r}{\ant@encoding}{U}{"016E}
+\DeclareTextComposite{\r}{\ant@encoding}{u}{"016F}
+%</!T1>
+\DeclareTextComposite{\H}{\ant@encoding}{U}{"0170}
+\DeclareTextComposite{\H}{\ant@encoding}{u}{"0171}
+%<*!T1>
+\DeclareTextComposite{\k}{\ant@encoding}{U}{"0172}
+\DeclareTextComposite{\k}{\ant@encoding}{u}{"0173}
+\DeclareTextComposite{\^}{\ant@encoding}{W}{"0174}
+\DeclareTextComposite{\^}{\ant@encoding}{w}{"0175}
+\DeclareTextComposite{\^}{\ant@encoding}{Y}{"0176}
+\DeclareTextComposite{\^}{\ant@encoding}{y}{"0177}
+%</!T1>
+\DeclareTextComposite{\"}{\ant@encoding}{Y}{"0178}
+\DeclareTextComposite{\'}{\ant@encoding}{Z}{"0179}
+\DeclareTextComposite{\'}{\ant@encoding}{z}{"017A}
+\DeclareTextComposite{\.}{\ant@encoding}{Z}{"017B}
+\DeclareTextComposite{\.}{\ant@encoding}{z}{"017C}
+\DeclareTextComposite{\v}{\ant@encoding}{Z}{"017D}
+\DeclareTextComposite{\v}{\ant@encoding}{z}{"017E}
+%</UT1|T1>
+% \end{macrocode}
+%
+% \subsection{Latin Extended B}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textflorin}{\ant@encoding}{"0192}
+\DeclareTextComposite{\=}{\ant@encoding}{Y}{"0232}
+\DeclareTextComposite{\=}{\ant@encoding}{y}{"0233}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{Spacing modifier letters}
+%
+% This area is used once again to map some text commands for ASCII-styled
+% accents, originally defined in the TS1 encoding.
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textasciicaron}{\ant@encoding}{"02C7}
+\DeclareTextSymbol{\textasciibreve}{\ant@encoding}{"02D8}
+\DeclareTextSymbol{\textacutedbl}{\ant@encoding}{"02DD}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{Thai}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textbaht}{\ant@encoding}{"0E3F}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{General punctuation}
+%
+% \begin{macrocode}
+\DeclareTextSymbol{\textcompwordmark}{\ant@encoding}{"200C}
+%<UT1>\DeclareTextSymbol{\textbardbl}{\ant@encoding}{"2016}
+%<UT1>\DeclareTextSymbol{\textdagger}{\ant@encoding}{"2020}
+%<UT1>\DeclareTextSymbol{\textdaggerdbl}{\ant@encoding}{"2021}
+%<UT1>\DeclareTextSymbol{\textbullet}{\ant@encoding}{"2022}
+%<UT1|LGR>\DeclareTextSymbol{\textperthousand}{\ant@encoding}{"2030}
+%<UT1>\DeclareTextSymbol{\textpertenthousand}{\ant@encoding}{"2031}
+%<UT1|T1>\DeclareTextSymbol{\guilsinglleft}{\ant@encoding}{"2039}
+%<UT1|T1>\DeclareTextSymbol{\guilsinglright}{\ant@encoding}{"203A}
+\DeclareTextSymbol{\textendash}{\ant@encoding}{"2013}
+\DeclareTextSymbol{\textemdash}{\ant@encoding}{"2014}
+\DeclareTextSymbol{\textquoteleft}{\ant@encoding}{"2018}
+\DeclareTextSymbol{\textquoteright}{\ant@encoding}{"2019}
+%<UT1|T1>\DeclareTextSymbol{\quotesinglbase}{\ant@encoding}{"201A}
+\DeclareTextSymbol{\textquotedblleft}{\ant@encoding}{"201C}
+\DeclareTextSymbol{\textquotedblright}{\ant@encoding}{"201D}
+%<!LGR>\DeclareTextSymbol{\quotedblbase}{\ant@encoding}{"201E}
+%<UT1>\DeclareTextSymbol{\textreferencemark}{\ant@encoding}{"203B}
+%<UT1>\DeclareTextSymbol{\textinterrobang}{\ant@encoding}{"203D}
+%<UT1>\DeclareTextSymbol{\textlquill}{\ant@encoding}{"2045}
+%<UT1>\DeclareTextSymbol{\textrquill}{\ant@encoding}{"2046}
+% \end{macrocode}
+%
+% \subsection{Currency symbols}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textcolonmonetary}{\ant@encoding}{"20A1}
+\DeclareTextSymbol{\textlira}{\ant@encoding}{"20A4}
+\DeclareTextSymbol{\textnaira}{\ant@encoding}{"20A6}
+\DeclareTextSymbol{\textpeso}{\ant@encoding}{"20A7}
+\DeclareTextSymbol{\textwon}{\ant@encoding}{"20A9}
+\DeclareTextSymbol{\textdong}{\ant@encoding}{"20AB}
+%</UT1>
+%<UT1|LGR>\DeclareTextSymbol{\texteuro}{\ant@encoding}{"20AC}
+%<UT1>\DeclareTextSymbol{\textguarani}{\ant@encoding}{"20B2}
+% \end{macrocode}
+%
+% \subsection{Combining diacritical marks for symbols}
+%
+% \begin{macrocode}
+%<UT1>\DeclareTextSymbol{\textbigcircle}{\ant@encoding}{"20DD}
+\DeclareTextCommand{\textcircled}{\ant@encoding}[1]{{%
+ \ooalign{%
+ \hfil \raise .07ex\hbox {\upshape#1}\hfil \crcr
+ \char 79 % '117 = "4F
+ }%
+}}
+% \end{macrocode}
+%
+% \subsection{Letterlike symbols}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textcelsius}{\ant@encoding}{"2103}
+%</UT1>
+%<UT1|T2A>\DeclareTextSymbol{\textnumero}{\ant@encoding}{"2116}
+%<*UT1>
+\DeclareTextSymbol{\textcircledP}{\ant@encoding}{"2117}
+\DeclareTextSymbol{\textrecipe}{\ant@encoding}{"211E}
+\DeclareTextSymbol{\textservicemark}{\ant@encoding}{"2120}
+\DeclareTextSymbol{\texttrademark}{\ant@encoding}{"2122}
+\DeclareTextSymbol{\textohm}{\ant@encoding}{"2126}
+\DeclareTextSymbol{\textmho}{\ant@encoding}{"2127}
+\DeclareTextSymbol{\textestimated}{\ant@encoding}{"212E}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{Arrows}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textleftarrow}{\ant@encoding}{"2190}
+\DeclareTextSymbol{\textrightarrow}{\ant@encoding}{"2191}
+\DeclareTextSymbol{\textuparrow}{\ant@encoding}{"2192}
+\DeclareTextSymbol{\textdownarrow}{\ant@encoding}{"2193}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{Mathematical Operators}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textminus}{\ant@encoding}{"2212}
+\DeclareTextSymbol{\textsurd}{\ant@encoding}{"221A}
+%</UT1>
+%<UT1|T2A>\DeclareTextSymbol{\textlangle}{\ant@encoding}{"2329}
+%<UT1|T2A>\DeclareTextSymbol{\textrangle}{\ant@encoding}{"232A}
+% \end{macrocode}
+%
+% \subsection{Control Pictures}
+%
+% \begin{macrocode}
+%<UT1|T1|T2A>\DeclareTextSymbol{\textvisiblespace}{\ant@encoding}{"2423}
+% \end{macrocode}
+%
+% \subsection{Geometric Shapes}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textopenbullet}{\ant@encoding}{"25E6}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{Miscellaneous Symbols}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textmusicalnote}{\ant@encoding}{"266A}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{CJK Symbols and Punctuation}
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextSymbol{\textlbrackdbl}{\ant@encoding}{"301A}
+\DeclareTextSymbol{\textrbrackdbl}{\ant@encoding}{"301B}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{Private use area}
+%
+% PUA characters are mapped according to the Adobe Glyph List.
+% Don't use the following text commands, if your font really doesn't
+% include the corresponding characters.
+%
+% \begin{macrocode}
+%<UT1|T1|T2A>\DeclareTextSymbol{\j}{\ant@encoding}{"F6BE}
+%<*UT1>
+\DeclareTextSymbol{\textgravedbl}{\ant@encoding}{"F6D6}
+\DeclareTextSymbol{\textdollaroldstyle}{\ant@encoding}{"F724}
+\DeclareTextSymbol{\textzerooldstyle}{\ant@encoding}{"F730}
+\DeclareTextSymbol{\textoneoldstyle}{\ant@encoding}{"F731}
+\DeclareTextSymbol{\texttwooldstyle}{\ant@encoding}{"F732}
+\DeclareTextSymbol{\textthreeoldstyle}{\ant@encoding}{"F733}
+\DeclareTextSymbol{\textfouroldstyle}{\ant@encoding}{"F734}
+\DeclareTextSymbol{\textfiveoldstyle}{\ant@encoding}{"F735}
+\DeclareTextSymbol{\textsixoldstyle}{\ant@encoding}{"F736}
+\DeclareTextSymbol{\textsevenoldstyle}{\ant@encoding}{"F737}
+\DeclareTextSymbol{\texteightoldstyle}{\ant@encoding}{"F738}
+\DeclareTextSymbol{\textnineoldstyle}{\ant@encoding}{"F739}
+\DeclareTextSymbol{\textcentoldstyle}{\ant@encoding}{"F7A2}
+%</UT1>
+% \end{macrocode}
+%
+% Again, capital accents are mapped according to older Adobe
+% specifications and their real placement in Adobe's fonts.
+%
+% \begin{macrocode}
+%<*UT1>
+\DeclareTextCommand{\capitalogonek}{\ant@encoding}[1]
+ {{\ooalign{\null#1\crcr\hidewidth\noocpchar{"EFF1}\hidewidth}}}
+\DeclareTextCommand{\capitalcedilla}{\ant@encoding}[1]
+ {{\ooalign{\null#1\crcr\hidewidth\noocpchar{"EFF2}\hidewidth}}}
+\DeclareTextAccent{\capitalgrave}{\ant@encoding}{"F6CE}
+\DeclareTextAccent{\capitalacute}{\ant@encoding}{"F6C9}
+\DeclareTextAccent{\capitalcircumflex}{\ant@encoding}{"EFF7}
+\DeclareTextAccent{\capitaltilde}{\ant@encoding}{"EFF5}
+\DeclareTextAccent{\capitaldieresis}{\ant@encoding}{"F6CB}
+\DeclareTextAccent{\capitalhungarumlaut}{\ant@encoding}{"F6CF}
+\DeclareTextAccent{\capitalring}{\ant@encoding}{"EFF3}
+\DeclareTextAccent{\capitalcaron}{\ant@encoding}{"F6CA}
+\DeclareTextAccent{\capitalbreve}{\ant@encoding}{"EFEE}
+\DeclareTextAccent{\capitalmacron}{\ant@encoding}{"F6D0}
+\DeclareTextAccent{\capitaldotaccent}{\ant@encoding}{"EFED}
+%</UT1>
+% \end{macrocode}
+%
+% \subsection{Final operations}
+%
+% Finally undefine +\ant@encoding+.
+%
+% \begin{macrocode}
+\let\ant@encoding\@undefined
+% \end{macrocode}
+%</UT1|T1|T2A|LGR>
+%
+% \Finale
+%
+\endinput
+%%
+%% End of file `antenc.dtx'.
diff --git a/Master/texmf-dist/source/lambda/antomega/antenc.ins b/Master/texmf-dist/source/lambda/antomega/antenc.ins
new file mode 100644
index 00000000000..a8c41ad7732
--- /dev/null
+++ b/Master/texmf-dist/source/lambda/antomega/antenc.ins
@@ -0,0 +1,62 @@
+%%
+%% This file generates various encoding definition files from the file
+%% antenc.dtx by means of the LaTeX program docstrip. This program
+%% eliminates almost all commented lines thus speeding up the loading
+%% of the code. Documentation may be obtained by running LaTeX on
+%% the source file antomega.dtx.
+%% ----------------------------------------
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Copyright 2005 Alexej Kryukov
+%% All rights reserved.
+%%
+%% Permission is granted to distribute verbatim copies of this file
+%% together with antomega.dtx.
+%%
+%% No other permissions to copy or distribute this file in any form
+%% are granted and in particular no permission to modify its contents.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{antenc.ins}
+\def\fileversion{0.8}
+\def\filedate{7 May 2005}
+\input docstrip.tex
+\preamble
+
+This file is a part of the ANTOMEGA project version \fileversion
+-----------------------------------------------------
+
+It may be distributed under the terms of the LaTeX Project Public
+License, as described in lppl.txt in the base LaTeX distribution.
+Either version 1.0 or, at your option, any later version.
+Copyright (C) 2001 -- 2005 by Alexej Kryukov
+Please report errors to: A.M. Kryukov <basileia@yandex.ru>
+
+\endpreamble
+
+\keepsilent
+
+\Msg{*** Generating the extension package antomega.sty ***}
+
+\generateFile{ut1enc-antomega.def}{t}{\from{antenc.dtx}{UT1}}
+\generateFile{t1enc-antomega.def}{t}{\from{antenc.dtx}{T1}}
+\generateFile{t2aenc-antomega.def}{t}{\from{antenc.dtx}{T2A}}
+\generateFile{lgrenc-antomega.def}{t}{\from{antenc.dtx}{LGR}}
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* Now move the encoding definition files where Omega }
+\Msg{* can find them }
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/lambda/antomega/antomega.dtx b/Master/texmf-dist/source/lambda/antomega/antomega.dtx
new file mode 100644
index 00000000000..682c4c81898
--- /dev/null
+++ b/Master/texmf-dist/source/lambda/antomega/antomega.dtx
@@ -0,0 +1,1915 @@
+% \iffalse meta comment
+% This file is a part of the ANTOMEGA project version \fileversion
+% -----------------------------------------------------
+%
+% It may be distributed under the terms of the LaTeX Project Public
+% License, as described in lppl.txt in the base LaTeX distribution.
+% Either version 1.0 or, at your option, any later version.
+% Copyright (C) 2001 -- 2005 by Alexej Kryukov
+% Please report errors to: A.M. Kryukov <basileia@yandex.ru>
+%
+% \fi
+%
+% \iffalse
+%
+%<*dtx>
+\ProvidesFile{antomega.dtx}
+%</dtx>
+%
+%<antomega>\NeedsTeXFormat{LaTeX2e}
+%<antomega>\ProvidesPackage{antomega}
+%<antomega>\RequirePackage{keyval,ifthen,calc}
+%
+%<driver>\ProvidesFile{antomega.dtx}
+%
+%<*driver>
+\documentclass{ltxdoc}
+\GetFileInfo{antomega.dtx}
+\def\fileversion{0.8}
+\def\filedate{7 May 2005}
+\def\docdate{7 May 2005}
+
+\newcommand*\file[1]{\texttt{#1}}
+\title{Typesetting multilingual documents with ANTOMEGA
+ \thanks{This file
+ has version number \fileversion, last
+ revised on \filedate.}}
+\author{Alexej Kryukov}
+
+\begin{document}
+ \maketitle
+ \DocInput{antomega.dtx}
+ \DocInput{antenc.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \changes{v0.2}{2002/10/12}{First public release}
+% \changes{v0.5}{2002/11/14}{Added new interface for loading translation
+% processes}
+% \changes{v0.5}{2002/11/14}{The documentation is totally rewritten using
+% the doc package}
+% \changes{v0.5}{2002/11/14}{Many bugs fixed}
+% \changes{v0.6}{2003/03/18}{Added new translation processes in order
+% to make antomega more independent from the original `omega'
+% package}
+% \changes{v0.6}{2003/03/18}{Added new language switching commands,
+% compatible with the Babel package. Old commands are still
+% supported for backwards compatibility purposes.}
+% \changes{v0.61}{2003/03/27}{Fixed a bug in uni1f00.def}
+% \changes{v0.7}{2003/08/30}{Keyval syntax is now used for package
+% options. Old options are still supported for backwards
+% compatibility.}
+% \changes{v0.7}{2003/08/30}{Now it is possible to specify `input=utf-8'
+% in options of the whole package. This option will be inherited
+% by commands used to load specific languages.}
+% \changes{v0.7}{2003/08/30}{Added support files for new languages: German
+% (thanks to Olaf Dietrich <olaf.dietrich@ikra.med.uni-muenchen.de>),
+% Polish (thanks to Mariusz Wodzicki <wodzicki@Math.Berkeley.EDU>)
+% and Latvian (thanks to Dmitry Ivanov <dimss@solutions.lv>).}
+% \changes{v0.7}{2003/08/30}{Added special version of the file `hyphen.cfg',
+% allowing to load character codes for specific Unicode ranges
+% into Lambda format.}
+% \changes{v0.7}{2003/08/30}{Removed options `localtoc' and `nolocaltoc'.
+% These options were used to control if language markup should
+% be included into the arguments of `contentsline'. This is not
+% needed now, because language markup commands are written
+% into *.toc files separately, exactly as in Babel.}
+% \changes{v0.7}{2003/08/30}{Various minor improvements and bugfixes}
+% \changes{v0.8}{2004/04/30}{Bugfix: `local@hyphenmins' produced an
+% extra space in the output.}
+% \changes{v0.8}{2004/04/30}{Bugfix: An OCP was assigned to a wrong slot
+% in German and Polish language support files -- now fixed.}
+% \changes{v0.8}{2005/01/08}{Bugfix: fixed a bug which caused a language name
+% to be reproduced in the output while using that name as a name of a
+% language switching environment.}
+% \changes{v0.8}{2005/01/08}{Added an (experimental) support file for Latin
+% language.}
+% \changes{v0.8}{2005/01/09}{Bugfix: the `specials' key didn't work as
+% expected.}
+% \changes{v0.8}{2005/04/15}{Bugfix: the correct language environment was not
+% restored after exiting from `otherlanguage'.}
+% \changes{v0.8}{2005/04/17}{Language switching commands (i.~e.
+% `seletlanguage' and `otherlanguage' now cause locale dependent
+% captions to be displayed in the current language. So the concept
+% of having a special set of extras, applicable only for the
+% `background' document language (inherited from older omega.sty)
+% is abandoned.}
+% \changes{v0.8}{2005/04/17}{ANTOMEGA now prevents some special characters,
+% produced by text commands, from placing back to the OCP stack. To
+% implement this feature, I had to add a set of encoding definition
+% files, designed specially for ANTOMEGA. In particular this means
+% ANTOMEGA is no longer dependent from ut1enc.def.}
+% \changes{v0.8}{2005/04/17}{uppercase.otp (now called uppercase-dflt.otp)
+% is incorporated into ANTOMEGA. OCP-based conversion to uppercase
+% is now used by default, since Omega incorrectly performs the
+% standard (uccode/lccode based) conversion in the UTF-8 mode.}
+% \changes{v0.8}{2005/05/03}{Added an experimental support for Scientific
+% Word/Scientific Workplace.}
+% \changes{v0.8}{2005/05/07}{Workaround for the `accent' command: now all
+% standard commands used to type accents are redefined to produce
+% a character followed by a Unicode combining accent. Later this
+% sequence may be processed by OCP and turned back to an accented
+% character. So arguments of such commands may be processed by OCP
+% and correctly converted from user's input encoding to Unicode.}
+%
+% \MakeShortVerb{\|}
+%
+% \begin{abstract}
+% Antomega is a language support package for Lambda, based on the
+% original \file{omega.sty} file. However, it provides some additional
+% functionality.
+% \end{abstract}
+%
+% \section{Introduction}
+% Moving from \LaTeX\ to $\Omega$ is always difficult for an average
+% user, since the $\Omega$ distribution doesn't include any language support
+% package which could be used as a Babel replacement. The \file{omega.sty}
+% file, version of 1999/06/01, was released by the $\Omega$ developers as
+% a first attempt to make something like `Omega-Babel', but, unfortunately,
+% this work was not finished. Moreover, more recent versions of
+% \file{omega.sty} are suitable only for testing some right-to-left languages,
+% but not for regular work. So I prepared my own package, based on the original
+% \file{omega.sty}, which fixes some bugs and provides some additional
+% functionality.
+%
+% \section{Installation instructions}
+%
+% First, download and install the $\Omega$ binaries or ensure that your \TeX\
+% installation already includes them. Unpack the archive file with ANTOMEGA
+% and move all files to the appropriate directories (for example,
+% everything in \file{omega/lambda/} to |$$texmf/omega/lambda|, everything
+% in \file{omega/ocp/} to |$$texmf/omega/ocp|, and so on. If you already
+% have a file named \file{language.dat} in |$$texmf/omega/lambda/base|,
+% replace it with the provided file (called language.dat.sample) in case you
+% want to get correct hyphenation for Russian and/or Greek.
+%
+% Note that ANTOMEGA still needs some files from the original $\Omega$
+% distribution. The most important file is \file{ut1omlgc.fd}.
+% Unfortunately, this file was not included into some recent
+% $\Omega$ distributions. I can neither include
+% it into my package as is (this might cause name clashes) nor rename
+% it (since I can't rename the default font and the default encoding
+% vector used in $\Omega$). So in case you haven't this file already
+% installed you have to install it separately. Either take it from
+% an older \TeX\ distribution or from the $\Omega$ CVS tree.
+%
+% There are also some additional translation processes (useful mainly
+% for typesetting polytonic (classical) Greek), which you may want to
+% take from old $\Omega$.
+%
+% Of course, after installing new files you have to update the \TeX\
+% file names database. On teTeX or fpTeX systems this is performed
+% with |texconfig rehash| or |mktexlsr| commands. On MikTeX you
+% can do the same via a menu item. Refer yourself to a special
+% section (\ref{sw}) of this manual, in case you are interested in
+% installing and configuring ANTOMEGA under Scientific Word/Scientific
+% Workplace.
+%
+% \subsection{Deprecated files}
+%
+% If you are upgrading from an older version of ANTOMEGA, you can
+% safely delete the following deprecated files:
+%
+% \begin{itemize}
+%
+% \item In |$$TEXMF/omega/unidata|:
+%
+% \begin{itemize}
+%
+% \item \file{uni0300.def} (now called \file{uni0370.def};
+%
+% \item \file{grahyph.tex} and \file{grmhyph.tex} (replaced with
+% \file{ograhyph.tex} and \file{ogrmhyph.tex} correspondingly according
+% to the naming convention proposed by Dimitrios Filippou);
+%
+% \end{itemize}
+%
+% \item In |$$TEXMF/omega/hyphen|: \file{greek2uni.tex} and
+% \file{greek2omega.tex} (no longer needed);
+%
+% \item In |$$TEXMF/omega/otp/antomega|: \file{latin2punct.otp} and
+% \file{cyr2punct.otp} (replaced with files \file{tex2punct.otp},
+% \file{babel2punct.otp} and \file{babel2ru.otp});
+%
+% \item In |$$TEXMF/omega/ocp/antomega|: \file{latin2punct.ocp} and
+% \file{cyr2punct.ocp} (replaced with files \file{tex2punct.ocp},
+% \file{babel2punct.ocp} and \file{babel2ru.ocp}).
+%
+% \end{itemize}
+%
+% \subsection{Updating Lambda format}
+%
+% With older versions of ANTOMEGA you could do without updating Lambda
+% format (at least if you work only with Latin-based languages), but now
+% this operation is strongly recommended for the following
+% reasons. As you probably know, the core of the \LaTeX\ system consists of
+% \file{latex.ltx} and some other files which should be loaded into format.
+% Since there are no special versions of those files for $\Omega$,
+% the same files are used also for Lambda format.
+%
+% Of course, files designed for \LaTeX\ not always work well for
+% $\Omega$. For example, in order to get correct hyphenation for a text
+% in a specific language, we have to set |\catcode| (which should be equal
+% to 11 or 12) and |\lccode| for all characters used in that language.
+% For correct conversion to uppercase we need also |\uccode| values.
+% In standard \LaTeX\ these values are defined for all 256 characters
+% of the encoding table, but with $\Omega$ we need similar definitions for
+% a wider range of Unicode characters, and it would be nice to have these
+% definitions loaded into format. Some people achieve this effect putting
+% tables of such codes together with their hyphenation patterns.
+%
+% However, this approach causes some problems. First of all, it is very
+% inconvenient to set |\catcode|, |\lccode| and |\uccode| with primitive
+% commands for each letter from a large amount of characters. Antomega defines
+% some commands (namely |\makeletter|, |\makeucletter|, |\makelcletter|
+% and |\makesameletter|), allowing to simplify this process. It also
+% provides definition tables for some Unicode ranges, written using
+% these commands. However, in order to load these tables into the format
+% the commands they use should be already known to \file{iniomega}.
+%
+% There is another problem, even more important. The file responsible for
+% loading hyphenation patterns is called \file{hyphen.cfg}. This file
+% is part of the \file{babel} package, but some language-specific formats
+% like cslatex, platex etc. include their own versions of \file{hyphen.cfg}.
+% Note that those versions are mainly incompatible with ANTOMEGA. The
+% official $\Omega$ distribution also included its own simplified version
+% of \file{hyphen.cfg}, but this file was removed from the most recent versions.
+% That's why original babel's version of the file is also often loaded
+% into Lambda format.
+%
+% \emph{This} \file{hyphen.cfg} is mainly compatible with $\Omega$,
+% although it defines a lot of specific commands not needed if we are not
+% planning to use Babel itself. However, in last versions it has the following
+% feature: hyphenation patterns are loaded inside a \TeX\ group. This
+% means that hyphenation rules itself will be saved, but character codes
+% loaded together with them will be forgotten immediately after
+% processing hyphenation rules. That's correct, because character codes
+% required by specific hyphenation patterns may not match codes normally used
+% by \LaTeX. For example, Russian hyphenation patterns usually have the
+% koi8 encoding, which is not directly used by \LaTeX. So we need a specific
+% table of codes in order to reencode these patterns into an internal
+% font encoding supported by \TeX. Once reencoding is performed, these
+% character codes are no longer needed.
+%
+% However, this means that hyphenation patterns is an incorrect place
+% to store character codes for Unicode symbols, because it is very
+% possible that our settings will take no effect. And even if they are
+% saved (in case we have old Omega's \file{hyphen.cfg} installed) the
+% result may be rather unexpected, because $\Omega$ has no way to
+% determine which codes are necessary only for processing specific
+% hyphenation patterns, and which should really be stored for further
+% use.
+%
+% That's why ANTOMEGA now includes its own version of \file{hyphen.cfg}
+% and special file \file{antomega.cfg} which contains references to
+% tables of character codes for all supported Unicode ranges. This
+% version of \file{hyphen.cfg} first defines commands |\makeletter|,
+% |\makelcletter|, |\makeucletter| and |\makesameletter|. After that
+% it loads \file{antomega.cfg}. So if you created a custom table of
+% character codes for your script, you may load it via
+% \file{antomega.cfg} instead of including it into your hyphenation patterns.
+% Of course you can also prevent codes for a specific Unicode range
+% from loading into your format. For example, if you never use polytonic
+% Greek, comment out the following line in \file{antomega.cfg}:
+%
+% \begin{verbatim}
+% \input{uni1f00.def}
+% \end{verbatim}
+%
+% Only after loading character codes into format, hyphenation patterns
+% are processed. As well as in Babel, this procession is done inside a
+% group, and so all character codes defined here should be used only
+% for converting your patterns into another encoding.
+%
+% Note that, while old Omega's \file{hyphen.cfg} resides in
+% |$TEXMF/omega/lambda/config|, ANTOMEGA installes its version of the file
+% into |$TEXMF/omega/lambda/antomega|. This prevents name clashes, but,
+% in case you have old \file{hyphen.cfg} installed, you have to remove
+% it manually to ensure that the correct version will be found and loaded
+% by \file{iniomega}. Only after that you may rebuild the \file{lambda}
+% format file. On teTeX or fpTeX systems you have to run
+%
+% \begin{verbatim}
+% fmtutil --byfmt lambda
+% \end{verbatim}
+%
+% See section~\ref{sw} for information on doing that with True\TeX{}/
+% Scientific Word systems.
+%
+% It is easy to test if you have the correct \file{hyphen.cfg} version loaded
+% into your format: just take a look at any |.log| file produced by \file{lambda}.
+% In case everything is correct it should contain the following text at the
+% beginning: ``Antomega and hyphenation patters for\ldots loaded''.
+% Now you should be able to typeset you documents with ANTOMEGA.
+%
+% \section{Loading ANTOMEGA}
+% One of the main advantages of \file{omega.sty} was using different commands
+% for setting the main language of the document and for loading additional
+% languages. ANTOMEGA preserves this feature, using the same |\background|
+% and |\load| commands. So if you want to prepare an English
+% document including some Greek text, you can do it by the same way as
+% with \file{omega.sty}, for example:
+%
+% \begin{verbatim}
+% \usepackage{antomega}
+% \background{english}
+% \load{greek}
+% \end{verbatim}
+%
+% However, \file{omega.sty} needs two different files for each language:
+% first of them (with the *.bgd extension) is used by the |\background|
+% command, and second (with the *.lay extension) by the |\load| command.
+% Of course, these two files usually have very similar code. ANTOMEGA
+% fixes this problem: both |\background| and |\load| commands load the same
+% language definition file with the .ldf extension, but process it in a
+% different way.
+%
+% \section{Typesetting in different languages}
+%
+% \file{omega.sty} supported only a limited set of languages, which included
+% |usenglish|, |french| and |greek|. ANTOMEGA supports these languages too,
+% but separate support for |usenglish| is no longer available. Instead you
+% can load |english| with options |dialect=british| or |dialect=american|,
+% for example:
+%
+% \begin{verbatim}
+% \background[dialect=american]{english}
+% \end{verbatim}
+%
+% I added support files for Russian, and later also for German, Polish
+% and Latvian.
+%
+% Generally speaking, it is not
+% difficult to provide support for a new language, since language definition
+% files are quite independent from the core package, and so you can write
+% a file with definitions for your language without changing anything
+% in \file{antomega.sty}, using the existing .ldf files as an example.
+%
+% In the original \file{omega} package we could use for switching to
+% another language either an environment with the same
+% name as a name of your language, or
+% (for small pieces of text) the |\local<$language>| macro, there
+% |<$language>| is your language name. These commands had to be defined in
+% the language definition file. For example, \file{usenglish.bgd}
+% defined the |usenglish| environment and the |\localusenglish| command.
+%
+% These commands are still supported in ANTOMEGA. However, beginning
+% from the version 0.6 ANTOMEGA provides new language switching
+% commands, compatible with the Babel package. So you can use the
+% |\selectlanguage| and |\foreignlanguage| macros and the |otherlanguage|
+% environment exactly as you did with Babel. This means that your old
+% documents may be transferred to $\Omega$ with minimal changes.
+%
+% \section{Loading languages with options}
+%
+% As well as the original \file{omega.sty} file, ANTOMEGA requires the \file{keyval}
+% package. So all commands used for loading languages may be executed with
+% different parameters, which may take different values. Each language has
+% its own set of such parameters. However, some options are suitable for all
+% supported languages. The most important of them are |input| and |output|
+% parameters, which replace the \file{inputenc} and \file{fontenc} packages,
+% used in standard \LaTeX{}.
+%
+% Beginning from ANTOMEGA v.~0.7 the same \file{keyval} syntax is also
+% supported for options of the \file{antomega} package itself.
+%
+% \subsection{The ``input'' parameter}
+%
+% Of course, this parameter is language-specific. However, there are two
+% values, which are always supported: |utf-8| and |ucs-2|. The later really
+% means ``no conversion'', since ucs-2 is the native format for $\Omega$.
+% Since these two encodings are suitable for most languages, they may be
+% specified in options of the ANTOMEGA package, for example:
+%
+% \begin{verbatim}
+% \usepackage[input=utf-8]{antomega}
+% \end{verbatim}
+%
+% The |\load| and |\background| commands also support this option,
+% but they may additionally accept other values for it, depending
+% from the language you want to load. For example, if you want to type an
+% English document with some international symbols encoded in iso-8859-1,
+% you may put the following line into your \LaTeX{} preamble:
+%
+% \begin{verbatim}
+% \background[input=iso-8859-1]{english}
+% \end{verbatim}
+%
+% \subsection{The ``output'' parameter}
+%
+% For this parameter you can use one of the following values: |unicode|,
+% |omega| and |tex|. |unicode| is used by default. Note that the |omlgc|
+% font, distributed with $\Omega$, is not fully compatible with Unicode.
+% For example, it has a specific encoding for Latin ligatures and
+% general punctuation. So you have to set |output=omega| if you want
+% to use this font, and |output=unicode| if you have another font, more
+% strictly conforming the Unicode standard. You my want to set also
+% |output=tex| if you prefer using 8-bit fonts in standard \TeX{} encodings
+% (T1 for Western languages, T2A for Russian, LGR for Greek).
+%
+% For example, if you want to typeset your English text with the standard
+% EC fonts, but haven't any corresponding font for Greek, you may use the
+% following preamble:
+%
+% \begin{verbatim}
+% \documentclass{article}
+% \usepackage{antomega}
+% \background[output=tex]{english}
+% \load[output=omega]{greek}
+% \end{verbatim}
+%
+% \subsection{The ``shorthands'' parameter}
+%
+% Since ANTOMEGA tries to completely reproduce the functionality of
+% the Babel package, it also supports combinations with the |"| character
+% (\emph{shorthands}) which have a special meaning in Babel. Note
+% that ANTOMEGA always uses translation processes to emulate Babel's
+% behavior, and so it never really makes |"| an active character. The
+% set of supported shorthands differs from language to language, but
+% there is a minimal set available by default. For example, you may
+% use |"<| and |">| for guillemots. You may turn off support for Babel
+% shorthands by setting `shorthands=off', and, of course, you may explicitly
+% enable it (`shortahnds=on'). Currently this parameter is supported for
+% all languages except Greek.
+%
+% \section{Translation processes}
+%
+% Since the last $\Omega$ versions are suitable only for testing
+% purposes, they don't include many useful files, originally
+% provided by J.~Plaice ang Y.~Haralambous. Particularly some $\Omega$
+% translation processes were removed, and some are incorrect (e. g.
+% don't correspond to the |omlgc| font). That's why \file{antomega}
+% provides its own set of |ocp| and |otp| files, which makes it
+% rather independent from $\Omega$'s texmf part.
+%
+% For conversion to different encodings I added some new .otp and .ocp
+% files, which (I hope) work correctly. Beginning from v.~0.6
+% ANTOMEGA includes improved translation processes for conversion from
+% some standard iso-8859 and windows-125* codepages to Unicode.
+% However, some original |.ocp| files are still necessary for \file{antomega}
+% to work. There also some rarely used (but still supported in \file{antomega})
+% files, not present neither in \file{antomega} nor in the most recent $\Omega$
+% distributions.
+%
+% \section{Selecting fonts with ANTOMEGA}
+%
+% Of course, it is not enough to set an input encoding for your language.
+% You will need also a correct font matching your encoding. With
+% ANTOMEGA you can select a font separately for each script you use. For
+% example, it defines new commands |\westernrm|, |\westernsf| and |\westerntt|.
+% So, if you want to use Computer Modern for English but prefer to
+% keep standard omlgc for Greek, simply put the following
+% line in your preamble:
+%
+% \begin{verbatim}
+% \renewcommand{\westernrm}{cmr}
+% \end{verbatim}
+%
+% In ANTOMEGA's language support files some similar commands for
+% other scripts are defined. For example, \file{omega-russian.ldf}
+% introduces |\russianrm|, and \file{omega-latvian.ldf}~---
+% |\balticrm|. Note that there is no need to define specific commands
+% for Central European languages, because not only Unicode, but even
+% T1 covers both Western and Central European character sets.
+%
+% Of course, you can write your own special packages to make selecting
+% a new font a bit more easy. You can even use standard font selecting
+% packages, but, in this case, you must load them \emph{after} ANTOMEGA
+% itself and \emph{before} any language-specific commands. For example:
+%
+% \begin{verbatim}
+% \usepackage{antomega}
+% \usepackage{palatino}
+% \background{english}
+% \end{verbatim}
+%
+% \iffalse
+%<*kernel>
+% \fi
+%
+% \section{Using ANTOMEGA with MacKichan software products}
+%
+% \label{sw}
+% Generally speaking, adapting MacKichan software products (like
+% Scientific Word or Scientific Workplace) for non-Latin languages
+% represents a not so trivial task. The problem is, that their shell
+% (very powerful by itself) knows nothing about various input encodings,
+% supported by \LaTeX, and so it can't take advantage of multilingual
+% capabilities, provided by Babel. Instead, it represents any national
+% characters, typed by user, in the form |\U{<hexadecimal Unicode index>}|.
+% This representation is hardly legible for standard \LaTeX, because it
+% is Unicode-based. That's why $\Omega$ is traditionally used for preparing
+% multilingual documents with Scientific Word or Scientific Workplace.
+%
+% So, adapting ANTOMEGA (which is already distributed together with
+% these software packages) to MacKichan shell is a very natural solution
+% for those who want to get their text correctly typeset according to
+% typographic rules used in their native languages. Preparing your Scientific
+% products to use ANTOMEGA may be divided into two main stages:
+% configuring your True\TeX{} installation (which lies in the background
+% of Scientific Word/Scientific Workplace) and configuring the graphical
+% front-end itself.
+%
+% \subsection{Configuring True\TeX}
+%
+% First, ensure you have ANTOMEGA v.~0.8 or above. If necessary,
+% download the latest version from CTAN and copy the contents of
+% all directories available in the downloaded package into the
+% corresponding directories found in |TCITeX\Omega\|.
+%
+% Second, locate the file
+% |TCITeX\Omega\Lambda\base\languages.dat.sample| and rename it
+% to \file{languages.dat}. Edit this file to enable hyphenation
+% patterns for your language.
+%
+% Now you have to rebuild the Lambda format. This operation is
+% mandatory, because all default format files supplied with
+% Scientific products are built without multilingual extensions
+% provided by Babel, so that using ANTOMEGA with your default
+% \file{lambda.oft} just will cause an error. This is also probably
+% the hardest part, because True\TeX{}, unlike Mik\TeX{} or fp\TeX{},
+% provides no special tools allowing to call \file{iniomega} with
+% desired parameters. However, to simplify this task, you can use the
+% following batch script (call it, say, \file{runinilambda.bat}):
+%
+% \begin{verbatim}
+% echo off
+% setlocal
+% set TEXMF=C:\sw50\TCITeX
+% set TEXINPUTS=.;%TEXMF%/{omega,tex}//
+% %TEXMF%\web2c\iniomega %TEXMF%\omega\lambda\config\lambda.ini
+% endlocal
+% \end{verbatim}
+%
+% Note that you can run this script from any location, but the
+% resulting \file{lambda.oft} file must be placed into your
+% |TCITeX\web2c\| directory.
+%
+% \subsection{Configuring the Scientific Word / Scientific Workplace shell}
+%
+% When you have done with updating Lambda format, you can start Scientific
+% Word and create a new document (or load an existing one). To make its
+% processing with Lambda possible, you should do the following:
+%
+% \begin{itemize}
+%
+% \item From the main menu bar, select `Typeset'---`Expert Settings'.
+% The dialog box with several tabs will appear, where you should select
+% the `DVI Format Settings' page, and then the `TeX Live Lambda' entry
+% from the drop-down box.
+%
+% \item Go to the `Typeset'---`Options and packages' menu.
+% Ensure that \file{sw2unicode}, \file{swtimes} and \file{fontenc} are
+% \textbf{not} in the list of loaded packages. These packages are not
+% needed, since their functuionality is completely incorporated by
+% ANTOMEGA.
+%
+% \item From the same dialog box, click the `Go native' button. A dialog
+% box with a multi-line input field will appear. Add the following line
+% to that input field:
+%
+% \begin{verbatim}
+% [input=sw,ffi=ligatures]{antomega}
+% \end{verbatim}
+%
+% Note that the |ffi=ligatures| option is mandatory, since Times New
+% Roman (the only Unicode font which is supported in the Scientific
+% Word/Scientific Workplace distribution by default) hasn't some latin
+% ligatures at the places ANTOMEGA expects to find them, so that enabling the
+% corresponding translation process will result in missing glyphs in the
+% output. Unfortunately, the default \file{ofm} files for Times New Roman also
+% contain no information about ligature substitution, so that
+% |ffi=ligatures| practically means `no ligatures at all' in this case.
+%
+% \item Go to `Typeset'---`Preamble' and input any number of |\background|
+% and |\load| commands for the languages you are planning to use.
+%
+% \end{itemize}
+%
+% Now you should be able to compile your document with Lambda.
+%
+% \section{The ANTOMEGA code}
+%
+% \subsection{Handling identification codes for our files}
+%
+% Unlike in Babel, no tests if |\ProvidesFile| is already defined.
+% Since \LaTeXe\ was released in 1994, and the $\Omega$ project
+% started also in 1994, probably nobody will use $\Omega$ with the 2.09
+% format.
+%
+% \DescribeMacro{\ProvidesFile}
+% We save the original definition of |\ProvidesFile| in
+% |\ant@tempa| and restore it after we have stored the version of
+% the file in |\toks8|.
+%
+% \begin{macrocode}
+\let\ant@tempa\ProvidesFile
+\def\ProvidesFile#1[#2 #3 #4]{%
+ \toks8{Antomega <#3> and hyphenation patterns for }%
+ \ant@tempa#1[#2 #3 #4]%
+ \let\ProvidesFile\ant@tempa}
+% \end{macrocode}
+%
+% \DescribeMacro{\ProvidesLanguage}
+% As an alternative for |\ProvidesFile| we define
+% |\ProvidesLanguage| here to be used in the language definition
+% files.
+%
+% \begin{macrocode}
+\def\ProvidesLanguage#1{%
+ \begingroup
+ \catcode`\ 10 %
+ \@makeother\/%
+ \@ifnextchar[%]
+ {\@provideslanguage{#1}}{\@provideslanguage{#1}[]}}
+\def\@provideslanguage#1[#2]{%
+ \wlog{Language: #1 #2}%
+ \expandafter\xdef\csname ver@#1.ldf\endcsname{#2}%
+ \endgroup}
+\ProvidesFile{hyphen.cfg}
+ [2005/05/07 v0.8
+ Taken from Babel language switching mechanism
+ and modified for Antomega]
+% \end{macrocode}
+%
+% \iffalse
+%</kernel>
+%<*antomega>
+% \fi
+%
+% \subsection{Handling $\Omega$CP files}
+%
+% \DescribeMacro{\LoadOCPByName}
+% The macro |\LoadOCPByName| takes two arguments: an OCP file name
+% (without extension) and an $\Omega$ command which will be used for
+% loading this file. If the referenced .ocp file doesn't exist in user's
+% system, \file{id.ocp} will be used instead. So it is possible to proceed
+% with document processing, even if some .ocp files were not found.
+%
+% \begin{macrocode}
+\def\LoadOCPByName#1#2{\IfFileExists{#2.ocp}{\ocp#1=#2}{
+ \PackageWarning{antomega}{#2.ocp not found.
+ Identity will be used instead.}{}
+ \ocp#1=id}}
+% \end{macrocode}
+%
+% Now we load some commonly used translation processes, using the
+% macro |\LoadOCPByName|.
+%
+% \begin{macrocode}
+\ocp\IdOCP=id
+\LoadOCPByName{\BasicIsoUni}{uniutf2uni}
+\LoadOCPByName{\BasicWinUni}{uniutf2uni}
+\LoadOCPByName{\BasicUtfUni}{uniutf2uni}
+\LoadOCPByName{\BasicTexUni}{tex2punct}
+\LoadOCPByName{\BasicBabelUni}{babel2punct}
+\LoadOCPByName{\BasicAccentsUni}{uni2accents}
+\LoadOCPByName{\UniToOmega}{uni2omega}
+\LoadOCPByName{\Oldstyle}{oldstyle}
+\LoadOCPByName{\LatinUniToTex}{uni2t1}
+% \end{macrocode}
+%
+% \file{uni2lig.ocp} is used for setting up Latin ligatures. However,
+% the standard \TeX\ ligature mechanism should be a better choice, since
+% using OCP for combinations like `fi' or `fl' may break hyphenation. So I
+% provided a special |ffi| option which may be set either to `ocp' or to
+% `ligatures'. Setting it to `ligatures' simply prevents the translation
+% process from loading. Note that \file{uni2lig.ocp} is designed for pure
+% Unicode fonts and it is never used, if |output| is set to `omega'. In this
+% case you can't turn off processing ligatures via OCP, since the \file{omlgc}
+% font doesn't contain any ligatures at all.
+%
+% \begin{macrocode}
+\def\opt@ocp{ocp}
+\def\opt@ligatures{ligatures}
+\define@key{antomega}{ffi}[ocp]{%
+ \def\@tmpa{#1}
+ \ifx\@tmpa\opt@ocp%
+ \LoadOCPByName{\LatinUniToLig}{uni2lig}
+ \else\ifx\@tmpa\opt@ligatures%
+ \typeout{Antomega package option: ffi=ligatures}
+ \LoadOCPByName{\LatinUniToLig}{id}
+ \fi\fi
+}
+% \end{macrocode}
+%
+% The following option is deprecated and preserved for backwards compatibility
+% only. Use `ffi=ligatures' instead.
+%
+% \begin{macrocode}
+\DeclareOption{noffi}{\setkeys{antomega}{ffi=ligatures}}
+% \end{macrocode}
+%
+% By default we use OCP for Latin ligatures in order to prevent MikTeX crashes.
+%
+% \begin{macrocode}
+\setkeys{antomega}{ffi=ocp}
+% \end{macrocode}
+%
+% Now we can define some standard OCP lists, useful generally
+% for languages with Latin-based scripts.
+%
+% \DescribeMacro{\BasicTexOCP} This OCP list loads the default translation
+% process for standard TeX ligatures and punctuation characters.
+%
+% \begin{macrocode}
+\ocplist\BasicTexOCP=
+ \addbeforeocplist 1750 \BasicTexUni
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\BasicBabelOCP} This OCP list loads the default translation
+% process for Babel-like shorthands. If you don't like them, set
+% `shorthands=off' for your language.
+%
+% \begin{macrocode}
+\ocplist\BasicBabelOCP=
+ \addbeforeocplist 2000 \BasicBabelUni
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\BasicAccentsOCP} This OCP list converts Unicode
+% combining accents to \TeX-styled |\accent| commands.
+%
+% \begin{macrocode}
+\ocplist\BasicAccentsOCP=
+ \addbeforeocplist 2250 \BasicAccentsUni
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\BasicInputUcsOCP} This is ANTOMEGA's default OCP
+% list. It doesn't translate text to any other character set
+% (so, sctually, does nothing).
+%
+% \begin{macrocode}
+\ocplist\BasicInputUcsOCP=
+ \addbeforeocplist 500 \IdOCP
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\BasicInputUtfOCP} This OCP list should be
+% used for utf-8 encoded texts.
+%
+% \begin{macrocode}
+\ocplist\BasicInputUtfOCP=
+ \addbeforeocplist 500 \BasicUtfUni
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\BasicInputIsoOCP} This OCP list is intended for
+% 8-bit texts using Latin ISO-8859-1 codepage, but note that
+% it doesn't perform any real conversion, since ISO-8859-1 character
+% codes are the same as in Unicode, and $\Omega$ automatically
+% distinguishes 8-bit and 2-byte input.
+%
+% \begin{macrocode}
+\ocplist\BasicInputIsoOCP=
+ \addbeforeocplist 500 \BasicIsoUni
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\BasicInputWinOCP} This OCP list is intended for
+% 8-bit texts using Latin windows-1252 codepage.
+%
+% \begin{macrocode}
+\ocplist\BasicInputWinOCP=
+ \addbeforeocplist 500 \BasicWinUni
+\nullocplist
+% \end{macrocode}
+%
+% The following OCP lists are used to convert a text to an
+% $\Omega$ output.
+%
+% \DescribeMacro{\LatinUniOutOCP} A conversion to a Unicode
+% font. The only operation which may be performed here is setting
+% up the Latin ligatures.
+%
+% \begin{macrocode}
+\ocplist\LatinUniOutOCP=
+ \addbeforeocplist 3500 \LatinUniToLig
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\LatinOmegaOutOCP} A conversion to the default
+% omlgc font. Its encoding differs from Unicode, and so a
+% special conversion routine is required.
+%
+% \begin{macrocode}
+\ocplist\LatinOmegaOutOCP=
+ \addbeforeocplist 3500 \UniToOmega
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\LatinTexOutOCP} A conversion from Unicode
+% to the T1 encoding.
+%
+% \begin{macrocode}
+\ocplist\LatinTexOutOCP=
+ \addbeforeocplist 3500 \LatinUniToTex
+\nullocplist
+% \end{macrocode}
+%
+% \DescribeMacro{\OldstyleOCP} This OCP list converts ASCII
+% digits to their oldstyle equivalents. Note that it is not
+% compatible with the |omlgc| font.
+%
+% \begin{macrocode}
+\ocplist\OldstyleOCP=
+ \addbeforeocplist 4000 \Oldstyle
+\nullocplist
+% \end{macrocode}
+%
+% The following key allows to set input encoding globally for the whole
+% document instead of setting it separately for each language. Of course,
+% from all the standard codepages only `utf-8' makes a sense in this context.
+% `ucs-2' is also supported, but this encoding doesn't require any
+% translation processes, because $\Omega$ uses it by default anyway.
+%
+% Beginning from ANTOMEGA~v.~0.8 you can also select `sw' to match a
+% specific Unicode character representation, used in files generated
+% by MacKichan software products.
+%
+% \begin{macrocode}
+\let\BasicInputOCP\BasicInputUcsOCP
+ \define@key{antomega}{input}[ucs-2]{
+ \def\@tmpa{#1}%
+ \ifx\@tmpa\opt@utf%
+ \let\BasicInputOCP\BasicInputUtfOCP%
+ \typeout{Antomega package option: input=utf-8}
+ \else\ifx\@tmpa\opt@sw%
+ \def\U##1{/QQ[##1]}%
+ \def\rmdefault{swtimes}%
+ \let\westernrm\rmdefault%
+ \LoadOCPByName{\BasicSWordUni}{sw2uni}%
+ \ocplist\BasicInputSWordOCP=
+ \addbeforeocplist 500 \BasicSWordUni
+ \nullocplist
+ \let\BasicInputOCP\BasicInputSWordOCP%
+ \typeout{Antomega package option: input=sw}
+ \else%
+ \let\BasicInputOCP\BasicInputUcsOCP%
+ \typeout{Antomega package option: input=ucs-2}
+ \fi}
+% \end{macrocode}
+%
+% \DescribeMacro{\UppercaseOCP}.
+% ANTOMEGA includes a special translation process, \file{uppercase-dflt.ocp},
+% based on the \file{uppercase.ocp} file, available in older $\Omega$
+% distribution, which may be used for lowercase to uppercase conversion.
+% Although standard conversion rules, based on |\lccode| and |\uccode|
+% settings, usually produce a better result, I have to use the OCP-based
+% conversion by default, because $\Omega$ incorrectly processes some character
+% codes in its UTF-8 mode. You can disable this feature by setting
+% |uppercase=standard|.
+%
+% \begin{macrocode}
+\LoadOCPByName{\Uppercase}{uppercase-dflt}
+\ocplist\UppercaseOCP=
+ \addbeforeocplist 3000 \Uppercase
+\nullocplist
+\def\MakeUppercase#1{{\pushocplist\UppercaseOCP#1}}
+\def\opt@standard{standard}
+\define@key{antomega}{uppercase}[ocp]{
+ \def\@tmpa{#1}
+ \ifx\@tmpa\opt@standard
+ \let\MakeUppercase\uppercase
+ \typeout{Antomega package option: use character codes}
+ \typeout{for conversion to Uppercase}
+ \fi}
+% \end{macrocode}
+%
+% \DescribeMacro{\oldstylenums}
+% This command supposes that our text font contains old style
+% numerals and that they are mapped to their places in the
+% Unicode Private Use area as defined in AGL. Don't use it
+% with the |omlgc| font.
+%
+% \begin{macrocode}
+\def\oldstylenums#1{{\pushocplist\OldstyleOCP#1}}
+% \end{macrocode}
+%
+% \subsection{Encoding-independent commands for printing special characters}
+%
+% \DescribeMacro{\noocpchar}
+% After expanding a command, Omega puts the result back into the OCP stack.
+% If the result of expansion contains some characters, which have a
+% special meaning in the \TeX{} system, they will be processed again,
+% instead of typing into the output. So it is impossible e.~g. to
+% use the |\%| command in order to obtain the percent sign, because the
+% character produced by that command is recognized anyway as a comment mark
+% after processing it via OCP. The same problem affects character codes
+% less than 0x20 (used in most 8-bit encodings), since these characters
+% usually have no |\catcode| assigned, and so are treated as invalid
+% in the input.
+%
+% Previously some hacks were used to prevent this effect. For example,
+% in the \file{omlgc} some ASCII characters are reproduced once again
+% in the 0x80--0x0F range, not used in Unicode, so that e.~g. the |\%|
+% command could actually refer to a slot different from the `real' percent
+% sign. For 8-bit fonts we had to assign code 12 to some characters
+% in order to make them `valid'. Older ANTOMEGA versions had a special
+% option, |specials|, used to control such situations.
+%
+% However, this option is deprecated (and removed) now. Instead, we
+% just define a special command which puts |\clearocplists| before
+% |\char| in order to prevent the result from placing into the OCP
+% stack\ldots
+%
+% \begin{macrocode}
+\def\noocpchar#1{{\clearocplists\char#1}}
+% \end{macrocode}
+%
+% \ldots{}and then apply it to the most commonly used special characters.
+%
+% \begin{macrocode}
+\def\#{\noocpchar{"23}}
+\def\%{\noocpchar{"25}}
+\def\&{\noocpchar{"26}}
+% \end{macrocode}
+%
+% \subsection{Omega-specific commands to handle \TeX{} font encodings}
+%
+% \DescribeMacro{\uniencoding}
+% It is necessary to declare a special encoding for Omega-specific
+% 2-byte fonts. $\Omega$ developers called it |UT1|.
+%
+% \begin{macrocode}
+\def\uniencoding{UT1}
+% \end{macrocode}
+%
+% \DescribeMacro{\ant@load@encoding}
+% The concept of current font encoding doesn't really matter for ANTOMEGA.
+% Although some text commands traditionally used in \LaTeX\ are allowed
+% in the input, they just should be always mapped to the same Unicode
+% codepoints, and it is a task of translation processes to translate
+% them to the current font encoding.
+%
+% So the only reason why we have to declare font encodings at all is that
+% Omega needs to know the current encoding in order to select an
+% appropriate font. That's why \file{antomega} no longer loads any encoding
+% definition files. Instead, whatever encoding is requested,
+% \file{antomega} always declares it itself, and then loads the same
+% list of mappings between text commands and Unicode codepoints.
+%
+% \begin{macrocode}
+\def\ant@load@encoding#1{%
+ \edef\ant@encodingfile{%
+ \lowercase{\def\noexpand\ant@encodingfile{#1enc-antomega.def}}}%
+ \ant@encodingfile
+ \InputIfFileExists{\ant@encodingfile}{}{%
+ \DeclareFontEncoding{#1}{}{}
+ \PackageWarning{antomega}{The \ant@encodingfile\ file was not found.
+ The #1 encoding was defined by antomega.}{}
+ }
+ \let\ant@encodingfile\@undefined
+}
+\ant@load@encoding{\uniencoding}
+\def\encodingdefault{\uniencoding}
+% \end{macrocode}
+%
+% Since T1 is loaded into the Lambda format, we have to redefine it now.
+%
+% \begin{macrocode}
+\ant@load@encoding{T1}
+% \end{macrocode}
+%
+% \subsection{Font issues}
+%
+% The omlgc font is not perfect, but it is included into all standard
+% \TeX\ distributions. So, it will be used by default.
+%
+% \begin{macrocode}
+\def\rmdefault{omlgc}
+% \end{macrocode}
+%
+% \file{Antomega} stores its default font names in the |\westernrm|,
+% |\westernsf| and |\westerntt| variables, since |\rmdefault|, |\sfdefault|
+% and |\ttdefault| will be redefined each time we switch to a new
+% language.
+%
+% \begin{macrocode}
+\ifx\westernrm\@undefined\let\westernrm=\rmdefault\fi
+\ifx\westernsf\@undefined\let\westernsf=\sfdefault\fi
+\ifx\westerntt\@undefined\let\westerntt=\ttdefault\fi
+% \end{macrocode}
+%
+% Generally speaking, with $\Omega$ we should use translation processes
+% rather than active characters. So I made |textasciitilde| an
+% `other symbol'.
+%
+% \begin{macrocode}
+\catcode`\~=12
+% \end{macrocode}
+%
+% \iffalse
+%</antomega>
+%<*kernel>
+% \fi
+%
+% \subsection{Language-specific commands which should be loaded
+% into the Lambda format}
+%
+% Again, no tests for |\language| and |\newlanguage|, because $\Omega$
+% should be always compatible with \TeX\ version~3.0.
+%
+% \begin{macrocode}
+\countdef\last@language=19
+% \end{macrocode}
+%
+% \DescribeMacro{\addlanguage}
+% To add languages to \TeX's memory plain \TeX\ version~3.0
+% supplies |\newlanguage|. However, a new macro is defined here,
+% because the original |\newlanguage| was defined to be |\outer|.
+%
+% \begin{macrocode}
+\def\addlanguage{\alloc@9\language\chardef\@cclvi}
+% \end{macrocode}
+%
+% \DescribeMacro{\adddialect}
+% The macro |\adddialect| can be used to add the name of a dialect
+% or variant language, for which an already defined hyphenation
+% table can be used.
+%
+% \begin{macrocode}
+\def\adddialect#1#2{%
+ \global\chardef#1#2\relax
+ \wlog{\string#1 = a dialect from \string\language#2}}
+% \end{macrocode}
+%
+% \DescribeMacro{\iflanguage}
+% Users might want to test (in a private package for instance)
+% which language is currently active. For this we provide a test
+% macro, |\iflanguage|, that has three arguments. It checks
+% whether the first argument is a known language. If so, it
+% compares the first argument with the value of |\language|. Then,
+% depending on the result of the comparison, it executes either the
+% second or the third argument.
+%
+% \begin{macrocode}
+\def\iflanguage#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \PackageWarning{antomega}{#1 is not a known language.}%
+ \else
+ \ifnum\csname l@#1\endcsname=\language
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi%
+ \fi}
+% \end{macrocode}
+%
+% \subsection{Handling character codes}
+%
+% \iffalse
+%</kernel>
+%<*kernel|antomega>
+% \fi
+%
+% We can't get correct hyphenation for our 2-byte characters without
+% setting |\catcode|, |\lccode| and |\uccode| for each of them.
+% The following commands simplify making such definitions.
+%
+% \DescribeMacro{\makeletter} This command takes two arguments, the first
+% being an uppercase character and the second a corresponding lowercase
+% character, and sets |\lccode| and |\uccode| for both characters.
+%
+% \begin{macrocode}
+\ifx\makeletter\@undefined
+ \def\makeletter#1#2{%
+ \ifnum\catcode#2=11\else\catcode#2=12 \fi
+ \ifnum\catcode#1=11\else\catcode#1=12 \fi
+ \uccode#1=#1 \uccode#2=#1%
+ \lccode#1=#2 \lccode#2=#2}
+\fi
+% \end{macrocode}
+%
+% \DescribeMacro{\makelcletter} This command takes two arguments, the first
+% being an uppercase character and the second a corresponding lowercase
+% character, and sets |\lccode| and |\uccode| for the lowercase character.
+%
+% \begin{macrocode}
+\ifx\makelcletter\@undefined
+ \def\makelcletter#1#2{%
+ \ifnum\catcode#2=11\else\catcode#2=12 \fi
+ \uccode#2=#1%
+ \lccode#2=#2}
+\fi
+% \end{macrocode}
+%
+% \DescribeMacro{\makeucletter} This command takes two arguments, the first
+% being an uppercase character and the second a corresponding lowercase
+% character, and sets |\lccode| and |\uccode| for the uppercase character.
+%
+% \begin{macrocode}
+\ifx\makeucletter\@undefined
+ \def\makeucletter#1#2{%
+ \ifnum\catcode#1=11\else\catcode#1=12 \fi
+ \uccode#1=#1%
+ \lccode#1=#2}
+\fi
+% \end{macrocode}
+%
+% \DescribeMacro{\makesameletter} This command takes two arguments, both
+% of them being uppercase or lowercase characters,
+% and sets |\lccode| and |\uccode| for character 1 equal to character 2.
+%
+% \begin{macrocode}
+\ifx\makesameletter\@undefined
+ \def\makesameletter#1#2{%
+ \ifnum\catcode#1=11\else\catcode#1=12 \fi
+ \uccode#1=\uccode#2%
+ \lccode#1=\lccode#2}
+\fi
+% \end{macrocode}
+%
+% \iffalse
+%</kernel|antomega>
+%<*config>
+% \fi
+%
+% The following code should be written into \file{antomega.cfg}. You may
+% edit that file depending from which Unicode ranges you really need.
+%
+% \begin{macrocode}
+\input{uni0100.def} % Latin Extended-A
+\input{uni0370.def} % Greek Basic
+\input{uni0400.def} % Cyrillic
+\input{uni1f00.def} % Greek Extended
+% \end{macrocode}
+%
+% \iffalse
+%</config>
+%<*kernel>
+% \fi
+%
+% In \file{hyphen.cfg} first we test if \file{antomega.cfg} exists, and
+% then load it.
+%
+% \begin{macrocode}
+\openin1 = antomega.cfg
+\ifeof1
+ \message{I couldn't find the file antomega.cfg.\space
+ Codes for Unicode characters will not be loaded.}
+\else
+ \input{antomega.cfg}
+\fi
+\closein1
+% \end{macrocode}
+%
+% \iffalse
+%</kernel>
+%<*antomega>
+% \fi
+%
+% \subsection{Warnings and error messages}
+%
+% \DescribeMacro{\ant@nocodes}
+% This command is used to show a warning message if $\Omega$ can't find
+% a file with lccodes/uccodes for the specified Unicode range.
+%
+% \begin{macrocode}
+\providecommand*{\ant@nocodes}[3]{%
+ \PackageWarningNoLine{antomega}%
+ {No file was found with symbol codes\MessageBreak
+ for the #2 range #3.\MessageBreak
+ You may proceed, but your #1 texts\MessageBreak
+ probably will not be correctly hyphenated.}}
+% \end{macrocode}
+%
+% \DescribeMacro{\ant@nopatterns}
+% This macro is based on Babel's |\@nopatterns| command.
+% However I removed test if |\PackageWarningNoLine| is defined,
+% because probably nobody will try to build \LaTeX~2.09 based
+% format for $\Omega$.
+%
+% \begin{macrocode}
+\providecommand*{\ant@nopatterns}[1]{%
+ \PackageWarningNoLine{antomega}%
+ {No hyphenation patterns were loaded for\MessageBreak
+ the language `#1'\MessageBreak
+ I will use the patterns loaded for \string\language=0
+ instead}}
+% \end{macrocode}
+%
+% \DescribeMacro{\ant@nolang}
+% This macro defines the error message which will be displayed
+% if the requested language definition file was not found.
+%
+% \begin{macrocode}
+\providecommand*{\ant@nolang}[1]{%
+ \PackageWarningNoLine{antomega}%
+ {Couldn't find file omega-#1.ldf!!}}
+% \end{macrocode}
+%
+% \subsection{Different corrections for standard \LaTeX\ commands}
+%
+% With $\Omega$ we usually have to control all commands which print
+% some strings (for example, to headers/footers), so that they always
+% apply correct translation processes and correct font to the text they
+% produce. However, modifying these commands may be inconvenient if we
+% have to use some packages which also try to redefine them. If you
+% want to prevent \file{antomega} from modifying these commands, you
+% may control its behavior by setting the |localmarks| option either
+% to `on' or to `off'.
+%
+% \DescribeMacro{\local@marks}
+% This command is executed every time we are switching to a new
+% language. It applies all rules specific for this language to
+% the text, which is written to headers/footers.
+%
+% \begin{macrocode}
+\def\opt@enabled{on}
+\def\opt@disabled{off}
+\def\opt@tex{tex}
+\def\opt@omega{omega}
+\def\opt@unicode{unicode}
+\def\opt@utf{utf-8}
+\def\opt@ucs{ucs-2}
+\def\opt@sw{sw}
+\define@key{antomega}{localmarks}[on]{%
+ \def\@tmpa{#1}
+ \ifx\@tmpa\opt@enabled
+ \def\local@marks##1{%
+ \def\markboth####1####2{%
+ \begingroup%
+ \let\label\relax \let\index\relax \let\glossary\relax%
+ \unrestored@protected@xdef\@themark%
+ {{\foreignlanguage{##1}{####1}}{\foreignlanguage{##1}{####2}}}%
+ \@temptokena \expandafter{\@themark}%
+ \mark{\the\@temptokena}%
+ \endgroup%
+ \if@nobreak\ifvmode\nobreak\fi\fi}%
+ \def\markright####1{%
+ \begingroup%
+ \let\label\relax \let\index\relax \let\glossary\relax%
+ \expandafter\@markright\@themark{\foreignlanguage{##1}{####1}}%
+ \@temptokena \expandafter{\@themark}%
+ \mark{\the\@temptokena}%
+ \endgroup%
+ \if@nobreak\ifvmode\nobreak\fi\fi}%
+ \def\@markright####1####2####3{\@temptokena{####1}%
+ \unrestored@protected@xdef\@themark{{\the\@temptokena}%
+ {{####3}}}}}
+ \else\ifx\@tmpa\opt@disabled
+ \def\local@marks#1{}
+ \typeout{Antomega package option: localmarks=off}
+ \fi\fi
+}
+% \end{macrocode}
+%
+% The following option is preserved for backwards compatibility only.
+% Use `localmarks=off' instead.
+%
+% \begin{macrocode}
+\DeclareOption{nolocalmarks}{\setkeys{antomega}{localmarks=off}}
+% \end{macrocode}
+%
+% By default string conversion in headers and footers is enabled.
+%
+% \begin{macrocode}
+\setkeys{antomega}{localmarks=on}
+% \end{macrocode}
+%
+% \DescribeMacro{\oaddto}
+% This command was taken from the Babel package and renamed in
+% order to avoid conflicts. It is useful for modifying
+% some language-specific commands, predefined in *.lfd files.
+%
+% \begin{macrocode}
+\def\oaddto#1#2{%
+ \ifx#1\@undefined
+ \def#1{#2}%
+ \else
+ \ifx#1\relax
+ \def#1{#2}%
+ \else
+ {\toks@\expandafter{#1#2}%
+ \xdef#1{\the\toks@}}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \subsection{Loading languages}
+%
+% Standard commands for loading languages
+% (the core of the antomega package).
+%
+% \DescribeMacro{\background} This command requires one arguments which
+% must be a language name and loads it as the first language for
+% our document.
+%
+% The optional argument is a set of parameters and their values
+% for the given language.
+%
+% \begin{macrocode}
+\newcommand{\background}[2][]{%
+ \IfFileExists{omega-#2.ldf}%
+ {\input{omega-#2.ldf}%
+ \AtBeginDocument{\selectlanguage[#1]{#2}}%
+ \newenvironment{#2}[1][]{\begin{otherlanguage}[####1]{#2}}%
+ {\end{otherlanguage}}%
+ \expandafter\newcommand\csname local#2\endcsname[2][]{%
+ \foreignlanguage[####1]{#2}{####2}}}%
+ {\ant@nolang{#2}}%
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\load} This command takes one argument which
+% must be a language name and loads it in addition to the first
+% language.
+%
+% The optional argument is a set of parameters and their values
+% for the given language.
+%
+% Both |\background| and |\load| commands are used to define
+% a |\local<$language>| command and a |<$language>| environment.
+% Commands and environments with these names were standard way
+% to switch languages in the original \file{omega} package, as well as
+% in \file{antomega} until the version 0.6. Now they are defined
+% in terms of standard babel-like commands.
+%
+% \begin{macrocode}
+\newcommand{\load}[2][]{\IfFileExists{omega-#2.ldf}
+ {\input{omega-#2.ldf}\setkeys{#2}{#1}%
+ \newenvironment{#2}[1][]{\begin{otherlanguage}[####1]{#2}}%
+ {\end{otherlanguage}}
+ \expandafter\newcommand\csname local#2\endcsname[2][]{%
+ \foreignlanguage[####1]{#2}{####2}}}
+ {\ant@nolang{#2}}}
+% \end{macrocode}
+%
+% \subsection{Default values for language-specific settings}
+%
+% First we define some standard values for the punctuation
+% commands, used by \file{lat2punct.otp}. The command names
+% are self-explanative.
+%
+% \begin{macrocode}
+\def\common@punctuation{%
+ \def\InitialThinSpace{\nobreak\hskip.2em\ignorespaces}%
+ \def\ExplicitHyphen{\nobreak\-\nobreak\hskip\z@skip}%
+ \def\AllowHyphenation{\hskip\z@skip}%
+ \def\DisableLigature{\textormath{\nobreak\discretionary{-}{}%
+ {\kern.03em}\allowhyphens}{}}%
+ \def\CompoundWordMarkWithBreakpoint{\nobreak-\hskip\z@skip}%
+ \def\CompoundWordMarkNoBreakpoint{\textormath{\leavevmode\hbox{-}}{-}}%
+ \def\LeftDoubleQuotationMark{^^^^201c}%
+ \def\RightDoubleQuotationMark{^^^^201d}%
+ \def\LeftPointingDoubleAngleQuotationMark{^^^^00ab}%
+ \def\RightPointingDoubleAngleQuotationMark{^^^^00bb}%
+ \def\GermanLeftDoubleQuotationMark{^^^^201e}%
+ \def\GermanRightDoubleQuotationMark{^^^^201c}%
+ \def\QuestionMark{?}%
+ \def\ExclamationMark{!}%
+ \def\InvertedQuestionMark{^^^^00bf}%
+ \def\InvertedExclamationMark{^^^^00a1}%
+ \def\Semicolon{;}%
+ \def\Colon{:}%
+ \def\NonBreakingSpace{\leavevmode\nobreak\ }}
+% \end{macrocode}
+%
+% \DescribeMacro{\common@font}
+% The |\common@font| macro will be used at the beginning of the
+% document and also each time we should return to the default
+% fonts (e. g. before switching to another language).
+%
+% \begin{macrocode}
+\def\common@font{\normalfont\fontfamily{\westernrm}%
+ \fontencoding{\uniencoding}\selectfont%
+ \let\rmdefault=\westernrm\let\sfdefault=\westernsf%
+ \let\ttdefault=\westerntt\let\encodingdefault=\uniencoding}
+% \end{macrocode}
+%
+% \DescribeMacro{\common@language}
+% This macro is used for enabling default hyphenation patterns.
+%
+% \begin{macrocode}
+\def\common@language{%
+ \protect\language=0%
+ \lefthyphenmin=2\righthyphenmin=3}
+% \end{macrocode}
+%
+% \DescribeMacro{\noextrascurrent}
+% \DescribeMacro{\originalOmega}
+% The |\originalOmega| macro is used to switch all settings,
+% which could be modified by the language switching commands,
+% to their default values.
+%
+% \begin{macrocode}
+\def\noextrascurrent#1{\@ifundefined{noextras@#1}{}%
+ {\csname noextras@#1\endcsname}}
+\def\originalOmega{\@ifundefined{languagename}{}%
+ {\noextrascurrent{\languagename}}%
+ \common@language%
+ \common@punctuation%
+ \common@font%
+ \clearocplists%
+ }
+\AtBeginDocument{\originalOmega}
+% \end{macrocode}
+%
+% \subsection{Language switching commands}
+%
+% In case we have Babel's \file{hyphen.cfg} loaded into format,
+% |\foreignlanguage| is already defined, and so we have to unset
+% it first.
+%
+% \begin{macrocode}
+\@ifundefined{foreignlanguage}{}%
+ {\let\foreignlanguage\@undefined}
+% \end{macrocode}
+%
+% \DescribeMacro{\foreignlanguage}
+% This macro works exactly as Babel's |\foreignlanguage| command,
+% but it takes 3 arguments. The first (optional) argument allows
+% to set any options, defined in the support file for the
+% given language. The second argument is languages's name itself,
+% and the third~--- the piece of text, which should be typeset in
+% this language.
+%
+% \begin{macrocode}
+\newcommand{\foreignlanguage}[3][]{%
+ \@ifundefined{inlineextras@#2}{\ant@nolang{#2}}{%
+ {\def\languagename{#2}%
+ \setkeys{#2}{#1}%
+ \csname inlineextras@#2\endcsname#3}%
+}}
+% \end{macrocode}
+%
+% |\selectlanguage| have to be redefined too.
+%
+% \begin{macrocode}
+\@ifundefined{selectlanguage}{}%
+ {\let\selectlanguage\@undefined}
+% \end{macrocode}
+%
+% \DescribeMacro{\selectlanguage}
+% This macro works exactly as Babel's |\selectlanguage| command,
+% but it takes 2 arguments. The second argument is languages's name
+% itself, and the first (optional) allows to set any options, defined
+% in the support file for the given language.
+%
+% \begin{macrocode}
+\newcommand{\selectlanguage}[2][]{%
+ \@ifundefined{blockextras@#2}{\ant@nolang{#2}}{%
+ \def\ant@pop@language{%
+ \ant@set@language{\languagename}%
+ \let\emp@langname\undefined}%
+ \aftergroup\ant@pop@language%
+ \setkeys{#2}{#1}%
+ \ant@set@language{#2}%
+}}
+\newcommand{\ant@set@language}[1]{%
+ \select@language{#1}%
+ \if@filesw%
+ \protected@write\@auxout{}{\protect\select@language{#1}}%
+ \addtocontents{toc}{\protect\select@language{#1}}%
+ \addtocontents{lof}{\protect\select@language{#1}}%
+ \addtocontents{lot}{\protect\select@language{#1}}%
+ \fi%
+}
+\@ifundefined{select@language}{}%
+ {\let\select@language\@undefined}
+\newcommand{\select@language}[1]{%
+ \originalOmega%
+ \edef\languagename{#1}%
+ \csname blockextras@#1\endcsname%
+}
+\let\ant@pop@language\relax
+% \end{macrocode}
+%
+% We have to redefine the |otherlanguage| environment as well.
+%
+% \begin{macrocode}
+\@ifundefined{otherlanguage}{}%
+ {\let\otherlanguage\@undefined}
+\@ifundefined{endotherlanguage}{}%
+ {\let\endotherlanguage\@undefined}
+% \end{macrocode}
+%
+% \DescribeEnv{otherlanguage}
+% This environment works exactly as Babel's |otherlanguage| environment.
+% The only difference is that is has an optional argument allowing
+% to set any options, defined in the .ldf file.
+%
+% \begin{macrocode}
+\newenvironment{otherlanguage}[2][]{%
+ \selectlanguage[#1]{#2}%
+ }{}
+% \end{macrocode}
+%
+% \iffalse
+%</antomega>
+%<*patterns>
+% \fi
+%
+% \subsection{Handling hyphenation rules}
+%
+% \DescribeEnv{hyphenrules}
+% The environment \texttt{hyphenrules} can be used to select
+% \emph{just} the hyphenation rules. This environment does
+% \emph{not} change |\languagename| and when the hyphenation rules
+% specified were not loaded it has no effect.
+%
+% \begin{macrocode}
+\def\hyphenrules#1{%
+ \expandafter\ifx\csname l@#1\endcsname\@undefined
+ \@nolanerr{#1}%
+ \else
+ \language=\csname l@#1\endcsname\relax
+ \fi
+}
+\def\endhyphenrules{}
+% \end{macrocode}
+%
+% \DescribeMacro{\set@hyphenmins}
+% This macro sets the values of |\lefthyphenmin| and
+% |\righthyphenmin|. It expects two values as its argument.
+%
+% \begin{macrocode}
+\def\set@hyphenmins#1#2{\lefthyphenmin#1\righthyphenmin#2}
+% \end{macrocode}
+%
+% \iffalse
+%</patterns>
+%<*antomega>
+% \fi
+%
+% \DescribeMacro{\local@hyphenmins}
+% This macro takes 3 arguments: a language name and default
+% |\lefthyphenmin| and |\righthyphenmin| values for that language.
+% First it tests if |\<language>hyphenmins| is already defined (i.~e.
+% some |\lefthyphenmin| and |\righthyphenmin| values were specified in
+% the hyphenation patterns loaded into format), and either executes this
+% command, or sets both variables to the provided default values.
+%
+% \begin{macrocode}
+\newcommand{\local@hyphenmins}[3]{%
+ \@ifundefined{#1hyphenmins}%
+ {\lefthyphenmin=#2\righthyphenmin=#3}%
+ {\csname #1hyphenmins\endcsname}%
+}
+% \end{macrocode}
+%
+% \iffalse
+%</antomega>
+%<*patterns>
+% \fi
+%
+% \subsection{Loading hyphenation rules into format}
+%
+% \DescribeMacro{\process@line}
+% Each line in the file \file{language.dat} is processed by
+% |\process@line| after it is read. The first thing this macro does
+% is to check wether the line starts with \texttt{=}.
+% When the first token of a line is an \texttt{=}, the macro
+% |\process@synonym| is called; otherwise the macro
+% |\process@language| will continue.
+%
+% \begin{macrocode}
+\def\process@line#1#2 #3/{%
+ \ifx=#1
+ \process@synonym#2 /
+ \else
+ \process@language#1#2 #3/%
+ \fi
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\process@synonym}
+% This macro takes care of the lines which start with an
+% \texttt{=}. It needs an empty token register to begin with.
+%
+% \begin{macrocode}
+\toks@{}
+\def\process@synonym#1 /{%
+ \ifnum\last@language=\m@ne
+% \end{macrocode}
+%
+% When no languages have been loaded yet the name following the
+% \texttt{=} will be a synonym for hyphenation register 0.
+%
+% \begin{macrocode}
+ \expandafter\chardef\csname l@#1\endcsname0\relax
+ \wlog{\string\l@#1=\string\language0}
+% \end{macrocode}
+%
+% As no hyphenation patterns are read in yet, we can not yet set
+% the hyphenmin paramaters. Therefor a commands to do so is stored
+% in a token register and executed when the first pattern file has
+% been processed.
+%
+% \begin{macrocode}
+ \toks@\expandafter{\the\toks@
+ \expandafter\let\csname #1hyphenmins\expandafter\endcsname
+ \csname\languagename hyphenmins\endcsname}%
+ \else
+% \end{macrocode}
+%
+% Otherwise the name will be a synonym for the language loaded last.
+%
+% \begin{macrocode}
+ \expandafter\chardef\csname l@#1\endcsname\last@language
+ \wlog{\string\l@#1=\string\language\the\last@language}
+% \end{macrocode}
+%
+% We also need to copy the hyphenmin paramaters for the synonym.
+%
+% \begin{macrocode}
+ \expandafter\let\csname #1hyphenmins\expandafter\endcsname
+ \csname\languagename hyphenmins\endcsname
+ \fi
+ }
+% \end{macrocode}
+%
+% \DescribeMacro{\process@language}
+% The macro |\process@language| is used to process a non-empty line
+% from the `configuration file'. It has three arguments, each
+% delimited by white space. The third argument is optional,
+% therefore a |/| character is expected to delimit the last
+% argument. The first argument is the `name' of a language, the
+% second is the name of the file that contains the patterns. The
+% optional third argument is the name of a file containing
+% hyphenation exceptions.
+%
+% The first thing to do is call |\addlanguage| to allocate a
+% pattern register and to make that register `active'.
+%
+% \begin{macrocode}
+\def\process@language#1 #2 #3/{%
+ \expandafter\addlanguage\csname l@#1\endcsname
+ \expandafter\language\csname l@#1\endcsname
+ \def\languagename{#1}%
+% \end{macrocode}
+%
+% Then the `name' of the language that will be loaded now is
+% added to the token register |\toks8|. and finally
+% the pattern file is read.
+%
+% \begin{macrocode}
+ \global\toks8\expandafter{\the\toks8#1, }%
+% \end{macrocode}
+%
+% For some hyphenation patterns it is needed to load them with a
+% specific font encoding selected. This can be specified in the
+% file \file{language.dat} by adding for instance `\texttt{:T1}' to
+% the name of the language. The macro |\ant@get@enc| extracts the
+% font encoding from the language name and stores it in
+% |\ant@hyph@enc|.
+%
+% \begin{macrocode}
+ \begingroup
+ \ant@get@enc#1:\@@@
+ \ifx\ant@hyph@enc\@empty
+ \else
+ \fontencoding{\ant@hyph@enc}\selectfont
+ \fi
+% \end{macrocode}
+%
+% Some pattern files contain assignments to |\lefthyphenmin| and
+% |\righthyphenmin|. \TeX\ does not keep track of these
+% assignments. Therefor we try to detect such assignments and
+% store them in the |\<langvar>hyphenmins| macro. When no
+% assignments were made we provide a default setting.
+%
+% \begin{macrocode}
+ \lefthyphenmin\m@ne
+% \end{macrocode}
+%
+% Some pattern files contain changes to the |\lccode| en |\uccode|
+% arrays. Such changes should remain local to the language;
+% therefor we process the pattern file in a group; the |\patterns|
+% command acts globally so it's effect will be remembered.
+%
+% \begin{macrocode}
+ \input #2\relax
+% \end{macrocode}
+%
+% Now we globally store the settings of |\lefthyphenmin| and
+% |\righthyphenmin| and close the group.
+%
+% \begin{macrocode}
+ \ifnum\lefthyphenmin=\m@ne
+ \else
+ \expandafter\xdef\csname #1hyphenmins\endcsname{%
+ \set@hyphenmins{\the\lefthyphenmin}{\the\righthyphenmin}}%
+ \fi
+ \endgroup
+% \end{macrocode}
+%
+% If the counter |\language| is still equal to zero we set the
+% hyphenmin parameters to the values for the language loaded on
+% pattern register 0.
+%
+% \begin{macrocode}
+ \ifnum\the\language=\z@
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname
+ \fi
+% \end{macrocode}
+%
+% Now execute the contents of token register zero as it may
+% contain commands which set the hyphenmin parameters for synonyms
+% that were defined before the first pattern file is read in.
+%
+% \begin{macrocode}
+ \the\toks@
+ \fi
+% \end{macrocode}
+%
+% Empty the token register after use.
+%
+% \begin{macrocode}
+ \toks@{}%
+% \end{macrocode}
+%
+% When the hyphenation patterns have been processed we need to see
+% if a file with hyphenation exceptions needs to be read. This is
+% the case when the third argument is not empty and when it does
+% not contain a space token.
+%
+% \begin{macrocode}
+ \def\ant@tempa{#3}%
+ \ifx\ant@tempa\@empty
+ \else
+ \ifx\ant@tempa\space
+ \else
+ \input #3\relax
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\ant@get@enc}
+% \DescribeMacro{\ant@hyph@enc}
+% The macro |\ant@get@enc| extracts the font encoding from the
+% language name and stores it in |\ant@hyph@enc|. It uses delimited
+% arguments to acheive this.
+%
+% \begin{macrocode}
+\def\ant@get@enc#1:#2\@@@{%
+% \end{macrocode}
+%
+% First store both arguments in temporary macros,
+%
+% \begin{macrocode}
+ \def\ant@tempa{#1}%
+ \def\ant@tempb{#2}%
+% \end{macrocode}
+%
+% then, if the second argument was empty, no font encoding was
+% specified and we're done.
+%
+% \begin{macrocode}
+ \ifx\ant@tempb\@empty
+ \let\ant@hyph@enc\@empty
+ \else
+% \end{macrocode}
+%
+% But if the second argument was \emph{not} empty it will now have
+% a superfluous colon attached to it which we need to remove. This
+% done by feeding it to |\ant@get@enc|. The string that we are
+% after will then be in the first argument and be stored in
+% |\ant@tempa|.
+%
+% \begin{macrocode}
+ \ant@get@enc#2\@@@
+ \edef\ant@hyph@enc{\ant@tempa}%
+ \fi}
+% \end{macrocode}
+%
+% The configuration file can now be opened for reading.
+%
+% \begin{macrocode}
+\openin1 = language.dat
+% \end{macrocode}
+%
+% See if the file exists, if not, use the default hyphenation file
+% \file{hyphen.tex}. The user will be informed about this.
+%
+% \begin{macrocode}
+\ifeof1
+ \message{I couldn't find the file language.dat,\space
+ I will try the file hyphen.tex}
+ \input hyphen.tex\relax
+\else
+% \end{macrocode}
+%
+% Pattern registers are allocated using count register
+% |\last@language|. Its initial value is~0. The definition of the
+% macro |\newlanguage| is such that it first increments the count
+% register and then defines the language. In order to have the
+% first patterns loaded in pattern register number~0 we initialize
+% |\last@language| with the value~$-1$.
+%
+% \begin{macrocode}
+ \last@language\m@ne
+% \end{macrocode}
+%
+% We now read lines from the file untill the end is found
+%
+% \begin{macrocode}
+ \loop
+% \end{macrocode}
+%
+% While reading from the input it is useful to switch off
+% recognition of the end-of-line character. This saves us stripping
+% off spaces from the contents of the controlsequence.
+%
+% \begin{macrocode}
+ \endlinechar\m@ne
+ \read1 to \ant@line
+ \endlinechar`\^^M
+% \end{macrocode}
+%
+% Empty lines are skipped.
+%
+% \begin{macrocode}
+ \ifx\ant@line\@empty
+ \else
+% \end{macrocode}
+%
+% Now we add a space and a |/| character to the end of
+% |\ant@line|. This is needed to be able to recognize the third,
+% optional, argument of |\process@language| later on.
+%
+% \begin{macrocode}
+ \edef\ant@line{\ant@line\space/}%
+ \expandafter\process@line\ant@line
+ \fi
+% \end{macrocode}
+%
+% Check for the end of the file. To avoid a new \texttt{if}
+% control sequence we create the necessary |\iftrue| or |\iffalse|
+% with the help of |\csname|. But there is one complication with
+% this approach: when skipping the \texttt{loop...repeat} \TeX\ has
+% to read |\if|/|\fi| pairs. So we have to insert a `dummy'
+% |\iftrue|.
+%
+% \begin{macrocode}
+ \iftrue \csname fi\endcsname
+ \csname if\ifeof1 false\else true\fi\endcsname
+ \repeat
+% \end{macrocode}
+%
+% Reactivate the default patterns,
+%
+% \begin{macrocode}
+ \language=0
+\fi
+% \end{macrocode}
+%
+% and close the configuration file.
+%
+% \begin{macrocode}
+\closein1
+% \end{macrocode}
+%
+% Also remove some macros from memory
+%
+% \begin{macrocode}
+\let\process@language\@undefined
+\let\process@synonym\@undefined
+\let\process@line\@undefined
+\let\ant@tempa\@undefined
+\let\ant@tempb\@undefined
+\let\ant@eq@\@undefined
+\let\ant@line\@undefined
+\let\ant@get@enc\@undefined
+\ifx\addto@hook\@undefined
+\else
+ \expandafter\addto@hook\expandafter\everyjob\expandafter{%
+ \expandafter\typeout\expandafter{\the\toks8 loaded.}}
+\fi
+% \end{macrocode}
+%
+% \iffalse
+%</patterns>
+%<*antomega>
+% \fi
+%
+% \subsection{Processing options}
+%
+% \begin{macrocode}
+\DeclareOption*{%
+ \edef\@temp{\noexpand\setkeys{antomega}{\CurrentOption}}%
+ \@temp%
+}
+\ProcessOptions
+% \end{macrocode}
+%
+% \iffalse
+%</antomega>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/lambda/antomega/antomega.ins b/Master/texmf-dist/source/lambda/antomega/antomega.ins
new file mode 100644
index 00000000000..7fc31478f15
--- /dev/null
+++ b/Master/texmf-dist/source/lambda/antomega/antomega.ins
@@ -0,0 +1,74 @@
+%%
+%% This file generates file antomega.sty from file antomega.dtx by means
+%% of the LaTeX program docstrip. This program eliminates almost all
+%% commented lines thus speeding up the loading of the code. Documentation
+%% may be obtained by running LaTeX on the source file antomega.dtx.
+%%
+%%
+%% ----------------------------------------
+%%
+%% This system is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Copyright 2002 Alexej Kryukov
+%% All rights reserved.
+%%
+%% Permission is granted to distribute verbatim copies of this file
+%% together with antomega.dtx.
+%%
+%% No other permissions to copy or distribute this file in any form
+%% are granted and in particular no permission to modify its contents.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{antomega.ins}
+\def\fileversion{0.8}
+\def\filedate{7 May 2005}
+\input docstrip.tex
+\preamble
+
+This file is a part of the ANTOMEGA project version \fileversion
+-----------------------------------------------------
+
+It may be distributed under the terms of the LaTeX Project Public
+License, as described in lppl.txt in the base LaTeX distribution.
+Either version 1.0 or, at your option, any later version.
+Copyright (C) 2001 -- 2002 by Alexej Kryukov
+Please report errors to: A.M. Kryukov <basileia@yandex.ru>
+
+\endpreamble
+
+\keepsilent
+
+\Msg{*** Generating the extension package antomega.sty ***}
+
+\generateFile{antomega.sty}{t}{\from{antomega.dtx}{antomega}}
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* Now move antomega.sty where Omega can find it }
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{***********************************************************}
+}
+
+\Msg{*** Generating the files which should be loaded into Lambda format ***}
+
+\generateFile{hyphen.cfg}{t}{\from{antomega.dtx}{kernel,patterns}}
+\generateFile{antomega.cfg}{t}{\from{antomega.dtx}{config}}
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* Now move hyphen.cfg and antomega.cfg where iniomega can }
+\Msg{* find them }
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/lambda/oinuit/oinuit.dtx b/Master/texmf-dist/source/lambda/oinuit/oinuit.dtx
new file mode 100644
index 00000000000..78b4ba079b7
--- /dev/null
+++ b/Master/texmf-dist/source/lambda/oinuit/oinuit.dtx
@@ -0,0 +1,958 @@
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%\iffalse
+%
+% oinuit.dtx
+% Copyright 2002 Apostolos Syropoulos
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of the files oinuit.dtx and oinuit.ins
+%
+% Please report errors or suggestions for improvement to
+%
+% Apostolos Syropoulos
+% 366, 28th October Str.
+% GR-671 00 Xanthi, GREECE
+% apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr
+%
+%\fi
+% \CheckSum{475}
+% \iffalse This is a Metacomment
+%
+%<oinuit, >\ProvidesPackage{oinuit.sty}
+%<LITenc, >\ProvidesFile{litenc.def}
+%<LITcmr, >\ProvidesFile{litcmr.fd}
+%<Hyphenation, >\message{2002/07/21 v1.0 Inuktitut hyphenation patterns}
+%<Ninuit2uni, >%% Omega translation process Ninuit2uni
+%<Qinuit2uni, >%% Omega translation process Qinuit2uni
+%<inuitscii, >%% Omega translation process inuitscii
+%
+%<oinuit, >[2002/07/21 v1.0 Package `oinuit.sty']
+%<LITenc, >[2002/07/21 v1.0 Local Inuktitut Encoding]
+%<LITcmr, >[2002/07/21 v1.0 Inuktitut Font Definition]
+%<Ninuit2uni, >%% 2002/07/21 v1.0 Inuktitut Latin transcription to Unicode,
+%<Ninuit2uni, >%% follows the Anglican orthography.
+%<Qinuit2uni, >%% 2002/07/21 v1.0 Inuktitut Latin transcription to Unicode,
+%<Qinuit2uni, >%% follows the Catholic orthography.
+%<inuitscii, >%% 2002/07/21 v1.0 Inuit ASCII to Unicode.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url,graphicx}
+\GetFileInfo{oinuit.drv}
+\begin{document}
+ \frenchspacing
+ \DocInput{oinuit.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \title{The \textit{oinuit} package}
+% \author{Apostolos Syropoulos\\366, 28th October Str.\\
+% GR-671 00 Xanthi, HELLAS\\
+% Email:\texttt{apostolo@obelix.ee.duth.gr}\\ or \\
+% \hphantom{Email:}\texttt{apostolo@ocean1.ee.duth.gr}}
+% \date{2002/07/21}
+% \maketitle
+%
+%\MakeShortVerb{\|}
+%\StopEventually{}
+%
+% \section{Introduction}
+%
+% This $\Lambda$\footnote{$\Lambda$ is \LaTeX's nickname when used with the
+% $\Omega$ typesetting engine.} package is part of a system that
+% provides a rather complete solution to the problem of typesetting Inuktitut
+% documents. The package is bundled with a PostScript version of the Nunacom
+% TrueType font developed by Nortext (\url{http://www.nortext.com}), which is
+% redistributed with permission from Nortext. In addition, there four $\Omega$
+% virtual fonts, which define a Unicode encoded font that consists of the
+% English alphabet, the digits, some symbols and the Inuktitut syllabary.
+%
+% Inuktitut is the language of the Inuit (also known as Eskimos, but the term
+% is considered offensive by Inuit who live in Canada and Greenland). The
+% language is spoken in Greenland, Canada, Alaska, and the Chukotka Autonomous
+% Okrug, which is located in the far northeast region of the Russian
+% Federation, by approximately 152,000 people. The Inuktitut syllabics are
+% used by Inuit who live in Canada, especially in the new Canadian territory
+% of Nunavut. This writing system was invented by Reverend James Evans, a
+% Wesleyan missionary. This system was based on earlier work on the Cree
+% language, which, in turn, was based on work on the Ojibway language.
+%
+% The complete system consists of the following files:
+% \begin{description}
+% \item[\texttt{driver}] produces a documentation driver file.
+% \item[\texttt{oinuit.sty}] the package itself.
+% \item[\texttt{litenc.def}] font encoding definition file.
+% \item[\texttt{litcmr.fd}] font definition file.
+% \item[\texttt{inuit.tex}] Inuktitut hyphenation patterns.
+% \item[\texttt{Ninuit2uni.otp}] an $\Omega$TP that transforms text written
+% in the Inuktitut Latin transcription to Unicode that follows the
+% Anglican orthography.
+% \item[\texttt{Qinuit2uni.otp}] an $\Omega$TP that transforms text written
+% in the Inuktitut Latin transcription to Unicode that follows the
+% Catholic orthography.
+% \item[\texttt{inuitscii.otp}] an $\Omega$TP that transforms text written in
+% a Inuit ASCII to Unicode.
+% \end{description}
+%
+% \section{The package `oinuit'}
+%
+% The package `oinuit' provides the basic user-interface for the typesetting
+% of Inuktitut text with $\Lambda$. The package provides five options:
+% \texttt{nunavut} (default option), \texttt{quebec}, \texttt{iscii},
+% \texttt{utf8}, and \texttt{ucs2}, which should be used when users want to
+% enter text using the Latin transcription of Inuktitut and the Anglican
+% orthography, the Latin transcription of Inuktitut and the Catholic
+% orthography, the Inuit ASCII (see Table~\ref{iscii}), the UTF-8 Unicode,
+% or the UCS-2 Unicode encoding, respectively.
+% \begin{table}
+% \begin{center}
+% \includegraphics[scale=0.8]{Table.eps}
+% \end{center}
+% \caption{The Inuit character table that the \texttt{inuitscii}
+% $\Omega$TP implements.}\label{iscii}
+% \end{table}
+% The Inuit ASCII presented in the above is based on PC Inuit Character Table
+% proposed by Everson Typography
+% (see \url{http://www.evertype.com/standards/iu/iu-tables.html}).
+%
+% The first thing we have to do is to redefine the
+% \texttt{\char`\\ttde\-fault} or, else, we will not be able to use the
+% |\verb| command and the \texttt{verbatim} environment.
+% \begin{macrocode}
+%<*oinuit>
+\IfFileExists{ot1uctt.fd}{%
+ \def\ttdefault{uctt}}{}%
+% \end{macrocode}
+% Each option corresponds to a particular ``$\Omega$ Translation Process,''
+% or $\Omega$TP, for short. Consequently, depending on the option the user has
+% specified, we must load the corresponding $\Omega$TP. The \texttt{nunavut}
+% option should be used to transform Inuktitut text that is ``encoded'' in the
+% Latin transcription that follows the Anglican orthography to Unicode. In all
+% cases we use the same $\Omega$CP (for $\Omega$ Compiled Process) list that
+% consists of only one $\Omega$CP, namely the one that corresponds to the
+% option.
+% \begin{macrocode}
+\DeclareOption{nunavut}{%
+ \ocp\InInuit=Ninuit2uni
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+% \end{macrocode}
+% The \texttt{quebec} option should be used to transform Inuktitut text that
+% is ``encoded'' in the Latin transcription that follows the Catholic
+% orthography to Unicode:
+% \begin{macrocode}
+\DeclareOption{quebec}{%
+ \ocp\InInuit=Qinuit2uni
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+% \end{macrocode}
+% The \texttt{iscii} option should be used when Inuit ASCII is the prefered
+% input encoding:
+% \begin{macrocode}
+\DeclareOption{iscii}{%
+ \ocp\InInuit=inuitscii
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+% \end{macrocode}
+% Naturally, people may find it easier to type directly prepare their
+% documents using a Unicode editor, so we support UTF-8 input. Note
+% that the \texttt{inutf8} $\Omega$CP is a standard part of every $\Omega$
+% installtion.
+% \begin{macrocode}
+\DeclareOption{utf8}{%
+ \ocp\InInuit=inutf8
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+% \end{macrocode}
+% Naturally, we support UCS-2 input. Note that here we use the \texttt{id}
+% $\Omega$CP which maps any character to itself.
+% \begin{macrocode}
+\DeclareOption{ucs2}{%
+ \ocp\InInuit=id
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+% \end{macrocode}
+% The default input encoding for the Inuktitut text is the Latin transcription
+% that follows the Anglican orthography:
+% \begin{macrocode}
+\ExecuteOptions{nunavut}
+\ProcessOptions
+% \end{macrocode}
+% Now, we load a local font encoding which is a temporal solution as we do
+% not really have a complete Unicode font.
+% \begin{macrocode}
+\input litenc.def
+% \end{macrocode}
+%\begin{macro}{\selectlanguage}
+% The command |\selectlanguage| is actaully a hack that simulates the
+% behavior of the corresponding command that the \textsf{babel} package
+% provides. The command has one argument, which is the name of a lnaguage
+% whose hyphenation patterns will be enabled. Each language,
+% \texttt{\textit{lang}}, is internally represented by the control sequence
+% \texttt{\char`\\l@\textit{lang}}. If this control sequence expands to
+% \texttt{\char`\\re\-lax}, then there are no preloaded hyphenation patterns
+% for \texttt{\textit{lang}} and so the default (American) hyphenation
+% patterns are loaded. Otherwise, we load the hyphenation patterns of the
+% requested \texttt{\textit{lang}}.
+% \begin{macrocode}
+\def\selectlanguage#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax%
+ \typeout{^^J Error: No hyphenation pattern for language #1 loaded,}%
+ \typeout{ default hyphenation patterns are used.^^J}%
+ \language=0%
+ \else\language=\csname l@#1\endcsname\fi}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\inuittext}
+% The |\inuittext| command should be used to permanently change the font
+% encoding, make the Inuktitut hyphenation patterns the default hyphenation
+% patterns and select the appropriate $\Omega$CP list.
+% \begin{macrocode}
+\def\inuittext{%
+ \fontencoding{LIT}\selectfont%
+ \def\encodingdefault{LIT}%
+ \selectlanguage{inuit}%
+ \pushocplist\InInuitList%
+}
+% \end{macrocode}
+% Although we do not provide the ``opposite'' declaration, it is fairly
+% easy to write a macro that will do this job.
+%\end{macro}
+%\begin{macro}{inuit}
+% The \texttt{inuit} environment is actually a local scope in which we
+% activate the equivalent of the \texttt{\char`\\inuit\-text} declaration.
+% \begin{macrocode}
+\newenvironment{inuit}{\fontencoding{LIT}\selectfont%
+ \selectlanguage{inuit}%
+ \pushocplist\InInuitList}%
+ {\popocplist}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\textinuit}
+% The |\textinuit| command is a long command that does exactly what the
+% \texttt{inuit} environment does:
+% \begin{macrocode}
+\DeclareRobustCommand{\textinuit}[1]{{%
+ \leavevmode\fontencoding{LIT}\selectfont%
+ \selectlanguage{inuit}%
+ \pushocplist\InInuitList #1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\InuitToday}
+% The |\InuitToday| command prints the current date in Inuktitut. Note that
+% we use the |^^^^hhhh| notation to write the letters of the word and so we
+% actually using Unicode code points instead of ``letters.''
+% \begin{macrocode}
+\DeclareRobustCommand{\InuitToday}{{%
+ \fontencoding{LIT}\selectfont%
+ \number\day\space%
+ \ifcase\month%
+ \or ^^^^1528^^^^14c4^^^^140a^^^^1546 %January
+ \or ^^^^1555^^^^1433^^^^140a^^^^1546 %February
+ \or ^^^^14ab^^^^1550^^^^14ef %March
+ \or ^^^^140a^^^^1403^^^^1433^^^^1546^^^^14ea %April
+ \or ^^^^14aa^^^^1403 %May
+ \or ^^^^152a^^^^14c2 %June
+ \or ^^^^152a^^^^14da^^^^1403 %July
+ \or ^^^^140a^^^^1405^^^^148d^^^^1505 %August
+ \or ^^^^14ef^^^^144e^^^^14bb^^^^1433^^^^1546 %September
+ \or ^^^^1505^^^^1483^^^^1450^^^^1433^^^^1546 %October
+ \or ^^^^14c4^^^^1555^^^^14bb^^^^1433^^^^1546 %November
+ \or ^^^^144e^^^^14ef^^^^14bb^^^^1433^^^^1546 %December
+ \fi%
+ \number\year}}
+%</oinuit>
+% \end{macrocode}
+% Of course, we do need to do a few more things (e.g., provide translation
+% of the common strings that \LaTeX\ uses), but we wanted to release the
+% package to make available the tools and to give other package writer's
+% the chance to check out a complete and (hopefully) well-documented $\Lambda$
+% package.
+%\end{macro}
+%
+% \section{Font Encoding and Font Definition Files}
+%
+% Since the fonts that we use do not have a standard encoding (they support
+% ASCII and the Inuktitut symbols that are contained in the Canadian
+% Aboriginal Syllabics section of the Unicode Standard), we have to declare
+% a new ``local'' font encoding.
+% \begin{macrocode}
+%<*LITenc>
+\DeclareFontEncoding{LIT}{}{}
+\DeclareFontSubstitution{LIT}{cmr}{m}{n}
+\DeclareErrorFont{LIT}{cmr}{m}{n}{10}
+%</LITenc>
+% \end{macrocode}
+%
+% Of course, declaring a new font encoding is not enough: we need a font
+% definition file. Note that we claim to support a Roman font, but we
+% actually support a san-serif font as this matches with the Inuktitut
+% symbols. In addition, the available ``shapes'' are: up-right, slanted,
+% bold, and bold slanted.
+%
+% \begin{macrocode}
+%<*LITcmr>
+\DeclareFontShape{LIT}{cmr}{m}{n}{%
+ <-> OInuit}{}
+\DeclareFontShape{LIT}{cmr}{m}{sc}{%
+ <-> ssub * cmr/m/n}{}
+\DeclareFontShape{LIT}{cmr}{m}{sl}{%
+ <-> OInuito}{}
+\DeclareFontShape{LIT}{cmr}{m}{it}{%
+ <-> ssub * cmr/m/sl}{}
+\DeclareFontShape{LIT}{cmr}{bx}{n}{%
+ <-> OInuitb}{}
+\DeclareFontShape{LIT}{cmr}{bx}{sc}{%
+ <-> ssub * cmr/bx/n}{}
+\DeclareFontShape{LIT}{cmr}{bx}{sl}{%
+ <-> OInuitbo}{}
+\DeclareFontShape{LIT}{cmr}{bx}{it}{%
+ <-> ssub * cmr/bx/sl}{}
+%</LITcmr>
+% \end{macrocode}
+%
+% \section{Inuktitut Hyphenation Patterns}
+%
+% The hyphenation rules of the Inuktitut language are very simple:
+% words can be broken at any point! The only exception is that a
+% break-point cannot appear before a final consonant. Before, we code
+% the hyphenation patterns, we must change the catcode of all symbols that
+% the Inuktitut language uses. By default, all these symbols have catcode
+% ``other,'' so we set it to ``letter.'' In addition, we set the lowercase
+% codes and the uppercase codes of each symbol. Since there are no uppercase
+% or lowercase letters, we define that the uppercase/lowercase of a symbol
+% is the symbol itself.
+% \begin{macrocode}
+%<*Hyphenation>
+\catcode`^^^^1403=11 \lccode`^^^^1403=`^^^^1403
+ \uccode`^^^^1403=`^^^^1403
+\catcode`^^^^1404=11 \lccode`^^^^1404=`^^^^1404
+ \uccode`^^^^1404=`^^^^1404
+\catcode`^^^^1405=11 \lccode`^^^^1405=`^^^^1405
+ \uccode`^^^^1405=`^^^^1405
+\catcode`^^^^1406=11 \lccode`^^^^1406=`^^^^1406
+ \uccode`^^^^1406=`^^^^1406
+\catcode`^^^^140a=11 \lccode`^^^^140a=`^^^^140a
+ \uccode`^^^^140a=`^^^^140a
+\catcode`^^^^140b=11 \lccode`^^^^140b=`^^^^140b
+ \uccode`^^^^140b=`^^^^140b
+\catcode`^^^^1431=11 \lccode`^^^^1431=`^^^^1431
+ \uccode`^^^^1431=`^^^^1431
+\catcode`^^^^1432=11 \lccode`^^^^1432=`^^^^1432
+ \uccode`^^^^1432=`^^^^1432
+\catcode`^^^^1433=11 \lccode`^^^^1433=`^^^^1433
+ \uccode`^^^^1433=`^^^^1433
+\catcode`^^^^1434=11 \lccode`^^^^1434=`^^^^1434
+ \uccode`^^^^1434=`^^^^1434
+\catcode`^^^^1438=11 \lccode`^^^^1438=`^^^^1438
+ \uccode`^^^^1438=`^^^^1438
+\catcode`^^^^1439=11 \lccode`^^^^1439=`^^^^1439
+ \uccode`^^^^1439=`^^^^1439
+\catcode`^^^^1449=11 \lccode`^^^^1449=`^^^^1449
+ \uccode`^^^^1449=`^^^^1449
+\catcode`^^^^144e=11 \lccode`^^^^144e=`^^^^144e
+ \uccode`^^^^144e=`^^^^144e
+\catcode`^^^^144f=11 \lccode`^^^^144f=`^^^^144f
+ \uccode`^^^^144f=`^^^^144f
+\catcode`^^^^1450=11 \lccode`^^^^1450=`^^^^1450
+ \uccode`^^^^1450=`^^^^1450
+\catcode`^^^^1451=11 \lccode`^^^^1451=`^^^^1451
+ \uccode`^^^^1451=`^^^^1451
+\catcode`^^^^1455=11 \lccode`^^^^1455=`^^^^1455
+ \uccode`^^^^1455=`^^^^1455
+\catcode`^^^^1456=11 \lccode`^^^^1456=`^^^^1456
+ \uccode`^^^^1456=`^^^^1456
+\catcode`^^^^1466=11 \lccode`^^^^1466=`^^^^1466
+ \uccode`^^^^1466=`^^^^1466
+\catcode`^^^^146d=11 \lccode`^^^^146d=`^^^^146d
+ \uccode`^^^^146d=`^^^^146d
+\catcode`^^^^146e=11 \lccode`^^^^146e=`^^^^146e
+ \uccode`^^^^146e=`^^^^146e
+\catcode`^^^^146f=11 \lccode`^^^^146f=`^^^^146f
+ \uccode`^^^^146f=`^^^^146f
+\catcode`^^^^1470=11 \lccode`^^^^1470=`^^^^1470
+ \uccode`^^^^1470=`^^^^1470
+\catcode`^^^^1472=11 \lccode`^^^^1472=`^^^^1472
+ \uccode`^^^^1472=`^^^^1472
+\catcode`^^^^1473=11 \lccode`^^^^1473=`^^^^1473
+ \uccode`^^^^1473=`^^^^1473
+\catcode`^^^^1483=11 \lccode`^^^^1483=`^^^^1483
+ \uccode`^^^^1483=`^^^^1483
+\catcode`^^^^148b=11 \lccode`^^^^148b=`^^^^148b
+ \uccode`^^^^148b=`^^^^148b
+\catcode`^^^^148c=11 \lccode`^^^^148c=`^^^^148c
+ \uccode`^^^^148c=`^^^^148c
+\catcode`^^^^148d=11 \lccode`^^^^148d=`^^^^148d
+ \uccode`^^^^148d=`^^^^148d
+\catcode`^^^^148e=11 \lccode`^^^^148e=`^^^^148e
+ \uccode`^^^^148e=`^^^^148e
+\catcode`^^^^1490=11 \lccode`^^^^1490=`^^^^1490
+ \uccode`^^^^1490=`^^^^1490
+\catcode`^^^^1491=11 \lccode`^^^^1491=`^^^^1491
+ \uccode`^^^^1491=`^^^^1491
+\catcode`^^^^14a1=11 \lccode`^^^^14a1=`^^^^14a1
+ \uccode`^^^^14a1=`^^^^14a1
+\catcode`^^^^14a5=11 \lccode`^^^^14a5=`^^^^14a5
+ \uccode`^^^^14a5=`^^^^14a5
+\catcode`^^^^14a6=11 \lccode`^^^^14a6=`^^^^14a6
+ \uccode`^^^^14a6=`^^^^14a6
+\catcode`^^^^14a7=11 \lccode`^^^^14a7=`^^^^14a7
+ \uccode`^^^^14a7=`^^^^14a7
+\catcode`^^^^14a8=11 \lccode`^^^^14a8=`^^^^14a8
+ \uccode`^^^^14a8=`^^^^14a8
+\catcode`^^^^14aa=11 \lccode`^^^^14aa=`^^^^14aa
+ \uccode`^^^^14aa=`^^^^14aa
+\catcode`^^^^14ab=11 \lccode`^^^^14ab=`^^^^14ab
+ \uccode`^^^^14ab=`^^^^14ab
+\catcode`^^^^14bb=11 \lccode`^^^^14bb=`^^^^14bb
+ \uccode`^^^^14bb=`^^^^14bb
+\catcode`^^^^14c2=11 \lccode`^^^^14c2=`^^^^14c2
+ \uccode`^^^^14c2=`^^^^14c2
+\catcode`^^^^14c3=11 \lccode`^^^^14c3=`^^^^14c3
+ \uccode`^^^^14c3=`^^^^14c3
+\catcode`^^^^14c4=11 \lccode`^^^^14c4=`^^^^14c4
+ \uccode`^^^^14c4=`^^^^14c4
+\catcode`^^^^14c5=11 \lccode`^^^^14c5=`^^^^14c5
+ \uccode`^^^^14c5=`^^^^14c5
+\catcode`^^^^14c7=11 \lccode`^^^^14c7=`^^^^14c7
+ \uccode`^^^^14c7=`^^^^14c7
+\catcode`^^^^14c8=11 \lccode`^^^^14c8=`^^^^14c8
+ \uccode`^^^^14c8=`^^^^14c8
+\catcode`^^^^14d0=11 \lccode`^^^^14d0=`^^^^14d0
+ \uccode`^^^^14d0=`^^^^14d0
+\catcode`^^^^14ef=11 \lccode`^^^^14ef=`^^^^14ef
+ \uccode`^^^^14ef=`^^^^14ef
+\catcode`^^^^14f0=11 \lccode`^^^^14f0=`^^^^14f0
+ \uccode`^^^^14f0=`^^^^14f0
+\catcode`^^^^14f1=11 \lccode`^^^^14f1=`^^^^14f1
+ \uccode`^^^^14f1=`^^^^14f1
+\catcode`^^^^14f2=11 \lccode`^^^^14f2=`^^^^14f2
+ \uccode`^^^^14f2=`^^^^14f2
+\catcode`^^^^14f4=11 \lccode`^^^^14f4=`^^^^14f4
+ \uccode`^^^^14f4=`^^^^14f4
+\catcode`^^^^14f5=11 \lccode`^^^^14f5=`^^^^14f5
+ \uccode`^^^^14f5=`^^^^14f5
+\catcode`^^^^1505=11 \lccode`^^^^1505=`^^^^1505
+ \uccode`^^^^1505=`^^^^1505
+\catcode`^^^^14d5=11 \lccode`^^^^14d5=`^^^^14d5
+ \uccode`^^^^14d5=`^^^^14d5
+\catcode`^^^^14d6=11 \lccode`^^^^14d6=`^^^^14d6
+ \uccode`^^^^14d6=`^^^^14d6
+\catcode`^^^^14d7=11 \lccode`^^^^14d7=`^^^^14d7
+ \uccode`^^^^14d7=`^^^^14d7
+\catcode`^^^^14d8=11 \lccode`^^^^14d8=`^^^^14d8
+ \uccode`^^^^14d8=`^^^^14d8
+\catcode`^^^^14da=11 \lccode`^^^^14da=`^^^^14da
+ \uccode`^^^^14da=`^^^^14da
+\catcode`^^^^14db=11 \lccode`^^^^14db=`^^^^14db
+ \uccode`^^^^14db=`^^^^14db
+\catcode`^^^^14ea=11 \lccode`^^^^14ea=`^^^^14ea
+ \uccode`^^^^14ea=`^^^^14ea
+\catcode`^^^^1528=11 \lccode`^^^^1528=`^^^^1528
+ \uccode`^^^^1528=`^^^^1528
+\catcode`^^^^1529=11 \lccode`^^^^1529=`^^^^1529
+ \uccode`^^^^1529=`^^^^1529
+\catcode`^^^^152a=11 \lccode`^^^^152a=`^^^^152a
+ \uccode`^^^^152a=`^^^^152a
+\catcode`^^^^152b=11 \lccode`^^^^152b=`^^^^152b
+ \uccode`^^^^152b=`^^^^152b
+\catcode`^^^^152d=11 \lccode`^^^^152d=`^^^^152d
+ \uccode`^^^^152d=`^^^^152d
+\catcode`^^^^152e=11 \lccode`^^^^152e=`^^^^152e
+ \uccode`^^^^152e=`^^^^152e
+\catcode`^^^^153e=11 \lccode`^^^^153e=`^^^^153e
+ \uccode`^^^^153e=`^^^^153e
+\catcode`^^^^1555=11 \lccode`^^^^1555=`^^^^1555
+ \uccode`^^^^1555=`^^^^1555
+\catcode`^^^^1556=11 \lccode`^^^^1556=`^^^^1556
+ \uccode`^^^^1556=`^^^^1556
+\catcode`^^^^1557=11 \lccode`^^^^1557=`^^^^1557
+ \uccode`^^^^1557=`^^^^1557
+\catcode`^^^^1558=11 \lccode`^^^^1558=`^^^^1558
+ \uccode`^^^^1558=`^^^^1558
+\catcode`^^^^1559=11 \lccode`^^^^1559=`^^^^1559
+ \uccode`^^^^1559=`^^^^1559
+\catcode`^^^^155a=11 \lccode`^^^^155a=`^^^^155a
+ \uccode`^^^^155a=`^^^^155a
+\catcode`^^^^155d=11 \lccode`^^^^155d=`^^^^155d
+ \uccode`^^^^155d=`^^^^155d
+\catcode`^^^^1546=11 \lccode`^^^^1546=`^^^^1546
+ \uccode`^^^^1546=`^^^^1546
+\catcode`^^^^1547=11 \lccode`^^^^1547=`^^^^1547
+ \uccode`^^^^1547=`^^^^1547
+\catcode`^^^^1548=11 \lccode`^^^^1548=`^^^^1548
+ \uccode`^^^^1548=`^^^^1548
+\catcode`^^^^1549=11 \lccode`^^^^1549=`^^^^1549
+ \uccode`^^^^1549=`^^^^1549
+\catcode`^^^^154b=11 \lccode`^^^^154b=`^^^^154b
+ \uccode`^^^^154b=`^^^^154b
+\catcode`^^^^154c=11 \lccode`^^^^154c=`^^^^154c
+ \uccode`^^^^154c=`^^^^154c
+\catcode`^^^^1550=11 \lccode`^^^^1550=`^^^^1550
+ \uccode`^^^^1550=`^^^^1550
+\catcode`^^^^157f=11 \lccode`^^^^157f=`^^^^157f
+ \uccode`^^^^157f=`^^^^157f
+\catcode`^^^^1580=11 \lccode`^^^^1580=`^^^^1580
+ \uccode`^^^^1580=`^^^^1580
+\catcode`^^^^1581=11 \lccode`^^^^1581=`^^^^1581
+ \uccode`^^^^1581=`^^^^1581
+\catcode`^^^^1582=11 \lccode`^^^^1582=`^^^^1582
+ \uccode`^^^^1582=`^^^^1582
+\catcode`^^^^1583=11 \lccode`^^^^1583=`^^^^1583
+ \uccode`^^^^1583=`^^^^1583
+\catcode`^^^^1584=11 \lccode`^^^^1584=`^^^^1584
+ \uccode`^^^^1584=`^^^^1584
+\catcode`^^^^1585=11 \lccode`^^^^1585=`^^^^1585
+ \uccode`^^^^1585=`^^^^1585
+\catcode`^^^^158f=11 \lccode`^^^^158f=`^^^^158f
+ \uccode`^^^^158f=`^^^^158f
+\catcode`^^^^1590=11 \lccode`^^^^1590=`^^^^1590
+ \uccode`^^^^1590=`^^^^1590
+\catcode`^^^^1592=11 \lccode`^^^^1592=`^^^^1592
+ \uccode`^^^^1592=`^^^^1592
+\catcode`^^^^1591=11 \lccode`^^^^1591=`^^^^1591
+ \uccode`^^^^1591=`^^^^1591
+\catcode`^^^^1593=11 \lccode`^^^^1593=`^^^^1593
+ \uccode`^^^^1593=`^^^^1593
+\catcode`^^^^1594=11 \lccode`^^^^1594=`^^^^1594
+ \uccode`^^^^1594=`^^^^1594
+\catcode`^^^^1595=11 \lccode`^^^^1595=`^^^^1595
+ \uccode`^^^^1595=`^^^^1595
+\catcode`^^^^1671=11 \lccode`^^^^1671=`^^^^1671
+ \uccode`^^^^1671=`^^^^1671
+\catcode`^^^^1672=11 \lccode`^^^^1672=`^^^^1672
+ \uccode`^^^^1672=`^^^^1672
+\catcode`^^^^1673=11 \lccode`^^^^1673=`^^^^1673
+ \uccode`^^^^1673=`^^^^1673
+\catcode`^^^^1674=11 \lccode`^^^^1674=`^^^^1674
+ \uccode`^^^^1674=`^^^^1674
+\catcode`^^^^1675=11 \lccode`^^^^1675=`^^^^1675
+ \uccode`^^^^1675=`^^^^1675
+\catcode`^^^^1676=11 \lccode`^^^^1676=`^^^^1676
+ \uccode`^^^^1676=`^^^^1676
+\catcode`^^^^1596=11 \lccode`^^^^1596=`^^^^1596
+ \uccode`^^^^1596=`^^^^1596
+\catcode`^^^^15a0=11 \lccode`^^^^15a0=`^^^^15a0
+ \uccode`^^^^15a0=`^^^^15a0
+\catcode`^^^^15a1=11 \lccode`^^^^15a1=`^^^^15a1
+ \uccode`^^^^15a1=`^^^^15a1
+\catcode`^^^^15a2=11 \lccode`^^^^15a2=`^^^^15a2
+ \uccode`^^^^15a2=`^^^^15a2
+\catcode`^^^^15a3=11 \lccode`^^^^15a3=`^^^^15a3
+ \uccode`^^^^15a3=`^^^^15a3
+\catcode`^^^^15a4=11 \lccode`^^^^15a4=`^^^^15a4
+ \uccode`^^^^15a4=`^^^^15a4
+\catcode`^^^^15a5=11 \lccode`^^^^15a5=`^^^^15a5
+ \uccode`^^^^15a5=`^^^^15a5
+\catcode`^^^^15a6=11 \lccode`^^^^15a6=`^^^^15a6
+ \uccode`^^^^15a6=`^^^^15a6
+\catcode`^^^^157c=11 \lccode`^^^^157c=`^^^^157c
+ \uccode`^^^^157c=`^^^^157c
+% \end{macrocode}
+% Before we present the hyphenation patterns, we must explain the
+% hyphenation rules of the language. The rules are very easy: a word
+% can be broken at any point and the only exception is that we should never
+% break a word before or after a final consonant. Let us now see how we can
+% code this rule. Given a letter \texttt{\textit{c}}, the pattern
+% \texttt{\textit{c}1} means that it is possible to break a word just after
+% this letter. So, we need such a pattern for each syllable.
+% \begin{macrocode}
+\patterns{%
+^^^^14031 ^^^^14041 ^^^^14051 ^^^^14061 ^^^^140a1 ^^^^140b1 ^^^^14311
+^^^^14321 ^^^^14331 ^^^^14341 ^^^^14381 ^^^^14391 ^^^^14491 ^^^^144e1
+^^^^144f1 ^^^^14501 ^^^^14511 ^^^^14551 ^^^^14561 ^^^^14661 ^^^^146d1
+^^^^146e1 ^^^^146f1 ^^^^14701 ^^^^14721 ^^^^14731 ^^^^14831 ^^^^148b1
+^^^^148c1 ^^^^148d1 ^^^^148e1 ^^^^14901 ^^^^14911 ^^^^14a11 ^^^^14a51
+^^^^14a61 ^^^^14a71 ^^^^14a81 ^^^^14aa1 ^^^^14ab1 ^^^^14bb1 ^^^^14c21
+^^^^14c31 ^^^^14c41 ^^^^14c51 ^^^^14c71 ^^^^14c81 ^^^^14d01 ^^^^14ef1
+^^^^14f01 ^^^^14f11 ^^^^14f21 ^^^^14f41 ^^^^14f51 ^^^^15051 ^^^^14d51
+^^^^14d61 ^^^^14d71 ^^^^14d81 ^^^^14da1 ^^^^14db1 ^^^^14ea1 ^^^^15281
+^^^^15291 ^^^^152a1 ^^^^152b1 ^^^^152d1 ^^^^152e1 ^^^^153e1 ^^^^15551
+^^^^15561 ^^^^15571 ^^^^15581 ^^^^15591 ^^^^155a1 ^^^^155d1 ^^^^15461
+^^^^15471 ^^^^15481 ^^^^15491 ^^^^154b1 ^^^^154c1 ^^^^15501 ^^^^157f1
+^^^^15801 ^^^^15811 ^^^^15821 ^^^^15831 ^^^^15841 ^^^^15851 ^^^^158f1
+^^^^15901 ^^^^15911 ^^^^15921 ^^^^15931 ^^^^15941 ^^^^15951 ^^^^16711
+^^^^16721 ^^^^16731 ^^^^16741 ^^^^16751 ^^^^16761 ^^^^15961 ^^^^15a01
+^^^^15a11 ^^^^15a21 ^^^^15a31 ^^^^15a41 ^^^^15a51 ^^^^15a61 ^^^^157c1
+%
+% \end{macrocode}
+% Now, we are going to code the exception. Given a letter \texttt{\textit{c}},
+% the pattern \texttt{2\textit{c}.} prohibits hyphenation before the letter
+% \texttt{\textit{c}}. So, we need such a pattern for each final consonant.
+% \begin{macrocode}
+2^^^^1449. 2^^^^1466. 2^^^^1483. 2^^^^14a1. 2^^^^14bb. 2^^^^14d0.
+2^^^^1505. 2^^^^14ea. 2^^^^153e. 2^^^^155d. 2^^^^1550. 2^^^^1585.
+2^^^^1595. 2^^^^1596. 2^^^^15a6. 2^^^^157c.}
+%</Hyphenation>
+% \end{macrocode}
+% The hyphenation pattern can be used only if we remake the $\Lambda$
+% format. To do this we append the following line
+% \begin{center}
+% \texttt{inuit inuit.tex}
+% \end{center}
+% to file \texttt{language.dat}, which can should be in the
+% \texttt{omega/lambda/base} directory. Note that you should not use
+% the file that resides in the directory \texttt{tex/generic/config}, as the
+% the later is used by \TeX\ only.
+%
+% \section{Translation Processes}
+%
+% In this section we present the various $\Omega$TPs that we have to design
+% to facilitate input for Inuktitut texts. We first describe the $\Omega$TPs
+% that transform Inuktitut text written in using the Latin transcription. Then
+% we descibe the $\Omega$TP that is used to transform text written in the
+% Inuktitut ASCII presented above to Unicode.
+%
+% First of all, we need to specify the length (in bytes) of each input and
+% output character, respectively.
+% \begin{macrocode}
+%<*Ninuit2uni|Qinuit2uni>
+input : 1;
+output: 2;
+% \end{macrocode}
+% The input stream we are dealing is not very complex, so we start immediately
+% the \texttt{expressions} section of the $\Omega$TPs. First, we have to
+% handle the voweles of the language and the letter ``h'':
+%
+% \begin{macrocode}
+expressions:
+%<Ninuit2uni>`i' `i' => @"1404;
+`i' => @"1403;
+%<Ninuit2uni>`u' `u' => @"1406;
+`u' => @"1405;
+%<Ninuit2uni>`a' `a' => @"140B;
+`a' => @"140A;
+`h' => @"157C;
+% \end{macrocode}
+% Now, we will discribe how we will handle a consonant and the various
+% syllables that start with with this consonant. If this consonant is the
+% last character of the input stream, we simply push to the output stream
+% the Unicode charcater that corresponds to this letter. If the consonant
+% is not followed by one of the vowels, then we push back to the input stream
+% the character that immediately follows the consonant and to the output
+% stream the code point of the consonant. Finally, depending on the vowel
+% (or vowels) that follow the consonant, we push to the output stream the
+% Unicode character that corresponds to this syllable. We start with the
+% consonant ``p'':
+% \begin{macrocode}
+`p' end: => @"1449;
+`p' ^(`i'|`a'|`u') => @"1449 <= \2;
+%<Ninuit2uni>`p' `i' `i' => @"1432;
+`p' `i' => @"1431;
+%<Ninuit2uni>`p' `a' `a' => @"1439;
+`p' `a' => @"1438;
+%<Ninuit2uni>`p' `u' `u' => @"1434;
+`p' `u' => @"1433;
+% \end{macrocode}
+% Since the all other cases are coded in a similar way, we will not
+% comment the rest of the code.
+% \begin{macrocode}
+`t' end: => @"1466;
+`t' ^(`i'|`a'|`u') => @"1466 <= \2;
+%<Ninuit2uni>`t' `i' `i' => @"144F;
+`t' `i' => @"144E;
+%<Ninuit2uni>`t' `a' `a' => @"1456;
+`t' `a' => @"1455;
+%<Ninuit2uni>`t' `u' `u' => @"1451;
+`t' `u' => @"1450;
+%
+`k' end: => @"1483;
+`k' ^(`i'|`a'|`u') => @"1483 <= \2;
+%<Ninuit2uni>`k' `i' `i' => @"146E;
+`k' `i' => @"146D;
+%<Ninuit2uni>`k' `a' `a' => @"1473;
+`k' `a' => @"1472;
+%<Ninuit2uni>`k' `u' `u' => @"1470;
+`k' `u' => @"146F;
+%
+`n' `n' `g' end: => @"1596;
+`n' `n' `g' ^(`i'|`a'|`u') => @"1596 <= \2;
+%<Ninuit2uni>`n' `n' `g' `i' `i' => @"1672;
+`n' `n' `g' `i' => @"1671;
+%<Ninuit2uni>`n' `n' `g' `u' `u' => @"1674;
+`n' `n' `g' `u' => @"1673;
+%<Ninuit2uni>`n' `n' `g' `a' `a' => @"1676;
+`n' `n' `g' `a' => @"1675;
+%
+`n' `g' end: => @"1595;
+`n' `g' ^(`i'|`a'|`u') => @"1595 <= \2;
+%<Ninuit2uni>`n' `g' `i' `i' => @"1590;
+`n' `g' `i' => @"158F;
+%<Ninuit2uni>`n' `g' `u' `u' => @"1592;
+`n' `g' `u' => @"1591;
+%<Ninuit2uni>`n' `g' `a' `a' => @"1594;
+`n' `g' `a' => @"1593;
+%
+`g' end: => @"14A1;
+`g' ^(`i'|`a'|`u') => @"14A1 <= \2;
+%<Ninuit2uni>`g' `i' `i' => @"148C;
+`g' `i' => @"148B;
+%<Ninuit2uni>`g' `a' `a' => @"1491;
+`g' `a' => @"1490;
+%<Ninuit2uni>`g' `u' `u' => @"148E;
+`g' `u' => @"148D;
+%
+`m' end: => @"14BB;
+`m' ^(`i'|`a'|`u') => @"14BB <= \2;
+%<Ninuit2uni>`m' `i' `i' => @"14A6;
+`m' `i' => @"14A5;
+%<Ninuit2uni>`m' `a' `a' => @"14AB;
+`m' `a' => @"14AA;
+%<Ninuit2uni>`m' `u' `u' => @"14A8;
+`m' `u' => @"14A7;
+%
+`n' end: => @"14D0;
+`n' ^(`i'|`a'|`u') => @"14D0 <= \2;
+%<Ninuit2uni>`n' `i' `i' => @"14C3;
+`n' `i' => @"14C2;
+%<Ninuit2uni>`n' `a' `a' => @"14C8;
+`n' `a' => @"14C7;
+%<Ninuit2uni>`n' `u' `u' => @"14C5;
+`n' `u' => @"14C4;
+%
+`l' end: => @"14EA;
+`l' ^(`i'|`a'|`u'|`h') => @"14EA <= \2;
+%<Ninuit2uni>`l' `i' `i' => @"14D6;
+`l' `i' => @"14D5;
+%<Ninuit2uni>`l' `a' `a' => @"14DB;
+`l' `a' => @"14DA;
+%<Ninuit2uni>`l' `u' `u' => @"14D8;
+`l' `u' => @"14D7;
+%
+`s' end: => @"1505;
+`s' ^(`i'|`a'|`u') => @"1505 <= \2;
+%<Ninuit2uni>`s' `i' `i' => @"14F0;
+`s' `i' => @"14EF;
+%<Ninuit2uni>`s' `a' `a' => @"14F5;
+`s' `a' => @"14F4;
+%<Ninuit2uni>`s' `u' `u' => @"14F2;
+`s' `u' => @"14F1;
+%
+`j' end: => @"153E;
+`j' ^(`i'|`a'|`u') => @"153E <= \2;
+%<Ninuit2uni>`j' `i' `i' => @"1529;
+`j' `i' => @"1528;
+%<Ninuit2uni>`j' `u' `u' => @"152B;
+`j' `u' => @"152A;
+%<Ninuit2uni>`j' `a' `a' => @"1529;
+`j' `a' => @"152D;
+%
+`r' end: => @"1550;
+`r' ^(`i'|`a'|`u') => @"1550 <= \2;
+%<Ninuit2uni>`r' `i' `i' => @"1547;
+`r' `i' => @"1546;
+%<Ninuit2uni>`r' `u' `u' => @"1549;
+`r' `u' => @"1548;
+%<Ninuit2uni>`r' `a' `a' => @"154C;
+`r' `a' => @"154B;
+%
+`v' end: => @"155D;
+`v' ^(`i'|`a'|`u') => @"155D <= \2;
+%<Ninuit2uni>`v' `i' `i' => @"1556;
+`v' `i' => @"1555;
+%<Ninuit2uni>`v' `u' `u' => @"1558;
+`v' `u' => @"1559;
+%<Ninuit2uni>`v' `a' `a' => @"155A;
+`v' `a' => @"1559;
+%
+`q' end: => @"1585;
+`q' ^(`i'|`a'|`u') => @"1585 <= \2;
+%<Ninuit2uni>`q' `i' `i' => @"1580;
+`q' `i' => @"157F;
+%<Ninuit2uni>`q' `u' `u' => @"1582;
+`q' `u' => @"1581;
+%<Ninuit2uni>`q' `a' `a' => @"1584;
+`q' `a' => @"1583;
+% \end{macrocode}
+% The consonant we dealing with in the last case is usually writen as \l,
+% however, the Unicode standard uses the name ``lh.'' Since we want to be
+% Unicode compliant, we opt to use this name. Note that in the very last
+% case, we simply push to the output stream unprocessed any other character.
+% This is quite useful as one may want to have punctuation marks or numbers
+% in the text.
+% \begin{macrocode}
+`l' `h' end: => @"15A6;
+`l' `h' ^(`i'|`a'|`u') => @"15A6 <= \2;
+%<Ninuit2uni>`l' `h' `i' `i' => @"15A1;
+`l' `h' `i' => @"15A0;
+%<Ninuit2uni>`l' `h' `u' `u' => @"15A3;
+`l' `h' `u' => @"15A2;
+%<Ninuit2uni>`l' `h' `a' `a' => @"15A5;
+`l' `h' `a' => @"15A4;
+. => \1;
+%</Ninuit2uni|Qinuit2uni>
+% \end{macrocode}
+% Now, we present the code of the $\Omega$TP that transforms an input stream
+% encoded in the 8-bit Inuit ASCII to Unicode.
+% \begin{macrocode}
+%<*inuitscii>
+input: 1;
+output: 2;
+% \end{macrocode}
+% Since, we have quite a specific code page, we use an array to store the
+% Unicode code points of the upper-half of the code page.
+% \begin{macrocode}
+tables:
+tabInuitSCII[@"81] = {
+@"1403, @"1404, @"1405, @"1406, @"140A, @"2026, @"140B, @"1431,
+@"1432, @"1433, @"1434, @"1438, @"1439, @"1449, @"144E, @"144F,
+@"1450, @"2018, @"2019, @"201C, @"201D, @"2022, @"2013, @"2014,
+@"1451, @"2122, @"1455, @"1456, @"1466, @"146D, @"146E, @"146F,
+@"00A0, @"1470, @"1472, @"1473, @"1483, @"148B, @"148C, @"148D,
+@"148E, @"00A9, @"1490, @"1491, @"14A1, @"14A5, @"00AE, @"14A6,
+@"FFFD, @"14A7, @"14A8, @"14AA, @"14AB, @"14BB, @"FFFD, @"14C2,
+@"14C3, @"14C4, @"14C5, @"14C7, @"14C8, @"14D0, @"14EF, @"14F0,
+@"14F1, @"14F2, @"14F4, @"14F5, @"1505, @"14D5, @"14D6, @"14D7,
+@"14D8, @"14DA, @"14DB, @"14EA, @"1528, @"1529, @"152A, @"152B,
+@"152D, @"152E, @"143E, @"1555, @"1556, @"1557, @"1558, @"1559,
+@"155A, @"155D, @"1546, @"1547, @"1548, @"1549, @"154B, @"154C,
+@"1550, @"157F, @"1580, @"1581, @"1582, @"1583, @"1584, @"1585,
+@"158F, @"1590, @"1591, @"1592, @"1593, @"1594, @"1595, @"1671,
+@"1672, @"1673, @"1674, @"1675, @"1676, @"1596, @"15A0, @"15A1,
+@"15A2, @"15A3, @"15A4, @"15A5, @"15A6, @"157C, @"FFFD, @"FFFD};
+% \end{macrocode}
+% Now we proceed with the expressions. First, we define some ligatures, though
+% these should be part of the virtual font. On the other hand, these ligatures
+% are proper Unicode characters, so go figure!
+% \begin{macrocode}
+expressions:
+`f' `f' => @"FB00;
+`f' `i' => @"FB01;
+`f' `l' => @"FB02;
+`f' `f' `i' => @"FB03;
+`f' `f' `l' => @"FB04;
+% \end{macrocode}
+% And now we show how we map the ISCII characters to Unicode characters:
+% if the character has ordinal number less than or equal to 127, then
+% we just push to the output stream the character as it is. If its ordinal
+% number is greater than 127, we consult the array and return its entry
+% at the index which determined by the ordinal number minus 0x80 (128).
+% Any other character is mapped to the Unicode \textit{replacement character},
+% which is used to replace an incoming character whose value is unknown or
+% unpresentable in Unicode.
+% \begin{macrocode}
+@"00-@"7F => \1;
+@"80-@"FF => #(tabInuitSCII[\1-@"80]);
+. => @"FFFD;
+%</inuitscii>
+% \end{macrocode}
+%
+% \section{The Virtual Fonts}
+%
+% In this section we present only the general structure of the $\Omega$
+% virtual property list files that we had to create to allow users to enter
+% directly Unicode text. The reader may wonder why we do not present the
+% complete code of all four $\Omega$VP file? The answer simply is that each
+% file is about 2,000 lines long with repeated information. In addition, the
+% package does not inlcude these files, as the \texttt{ovp2ovf} program that
+% is included with most \TeX\ distributions fails to process these
+% files and so they are practically useless\footnote{The author used
+% \texttt{ovp2ovf} version 1.5 to process the files, while most \TeX\
+% installations provide version 2.0, which is buggy.} Users who want to
+% experiment with the files can obtain them directly from the author of the
+% package.
+%
+% At the beggining of each $\Omega$VP file, we have the identification part
+% and the assigment of the font dimensions.
+% \begin{macrocode}
+%<*OVP>
+(FAMILY OINUIT)
+(CODINGSCHEME Unicode Inuit)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.5)
+ (STRETCH R 0.3)
+ (SHRINK R 0.1)
+ (XHEIGHT R 0.583)
+ (QUAD R 1.0)
+ )
+% \end{macrocode}
+% We wanted each virtual font to inlcude the ASCII characters and the
+% characters used in Inuktitut. That is why we have two \texttt{MAPFONT}
+% definitions (more complex fonts, may need more \texttt{MAFONT} definitions).
+% Note that we use the Computer Modern sans serif font as this matches better
+% with the Nunacom font.
+% \begin{macrocode}
+(MAPFONT D 0
+ (FONTNAME Inuit)
+ (FONTDSIZE R 10.0)
+ )
+(MAPFONT D 1
+ (FONTNAME cmss10)
+ (FONTDSIZE R 10.0)
+ )
+% \end{macrocode}
+% The ligature table contains the ``ordinary'' kerning information found in all% Computer Modern fonts plus some that deal with the Inuktitut charcaters.
+% It is interesting to note that we cannot have ligature definitions, as
+% these instructions cause \texttt{ovp2ovf} to crash!
+% \begin{macrocode}
+(LIGTABLE
+ (LABEL H 0066)
+ (KRN H 0027 R 0.069445)
+ (KRN H 003F R 0.069445)
+ (KRN H 0021 R 0.069445)
+ (KRN H 0029 R 0.069445)
+ (KRN H 005D R 0.069445)
+ (STOP)
+ )
+% \end{macrocode}
+% Although each character entry is quite standard, we present just one so
+% that can see what has to be done.
+% \begin{macrocode}
+(CHARACTER H 0021
+ (CHARWD R 0.256)
+ (CHARHT R 0.689)
+ (CHARDP R 0.004)
+ (MAP
+ (SELECTFONT D 0)
+ (SETCHAR O 41)
+ )
+ )
+%</OVP>
+% \end{macrocode}
+%
+% \section*{Acknowledgments}
+%
+% I would like to thank Andrea Tomkins for giving me the right to redistribute
+% the Nunacom font. I also thank Luis-Jacques Dorais, who explained to me the
+% hyphenation rules of the Inuktitut language, and Dimitrios Filippou, who
+% deciphered to me the secrets of transforming hyphenation rules into
+% hyphenation patterns suitable for use with \TeX/$\Omega$.
+%
diff --git a/Master/texmf-dist/source/lambda/oinuit/oinuit.ins b/Master/texmf-dist/source/lambda/oinuit/oinuit.ins
new file mode 100644
index 00000000000..9ead2e8bd40
--- /dev/null
+++ b/Master/texmf-dist/source/lambda/oinuit/oinuit.ins
@@ -0,0 +1,65 @@
+%% Copyright 2002 Apostolos Syropoulos
+%%
+%% This file is part of the `grtimes' package.
+%% You are not allowed to modify its contents.
+%%
+\def\filedate{2002/07/21}
+\def\batchfile{oinuit.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\preamble
+
+ (c) copyright 2002 Apostolos Syropoulos
+ This program can be redistributed and/or modified under the terms
+ of the LaTeX Project Public License Distributed from CTAN
+ archives in directory macros/latex/base/lppl.txt; either
+ version 1 of the License, or any later version.
+ use or alter this file in any way.
+
+ Please report errors or suggestions for improvement to
+
+ Apostolos Syropoulos
+ 366, 28th October Str.
+ GR-671 00 Xanthi, GREECE
+ apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr
+
+\endpreamble
+
+
+\keepsilent
+
+\generate{\generateFile{oinuit.sty}{f}{\from{oinuit.dtx}{oinuit}}
+ \generateFile{litenc.def}{f}{\from{oinuit.dtx}{LITenc}}
+ \generateFile{litcmr.fd}{f}{\from{oinuit.dtx}{LITcmr}}
+ \generateFile{inuit.tex}{f}{\from{oinuit.dtx}{Hyphenation}}}
+\postamble
+\endpostamble
+\generate{\generateFile{Ninuit2uni.otp}{f}{\from{oinuit.dtx}{Ninuit2uni}}
+ \generateFile{Qinuit2uni.otp}{f}{\from{oinuit.dtx}{Qinuit2uni}}
+ \generateFile{inuitscii.otp}{f}{\from{oinuit.dtx}{inuitscii}}}
+\Msg{********************************************************}
+\Msg{To finish installation you have to create the directory }
+\Msg{/omega/lambda/oinuit and copy there the .fd, the .end }
+\Msg{and the .sty files. The .otp files should be copied to }
+\Msg{the directory omega/ocp/oinuit, which must be created. }
+\Msg{Now, rehash your TeX installation , if it is required to}
+\Msg{do this. Optionally, you can regenerate the Lambda }
+\Msg{format. }
+\Msg{ Happy Inuiktitut ``Omega''-ing!}
+\Msg{********************************************************}
+\endinput
diff --git a/Master/texmf-dist/source/lambda/oinuit/oinuit.sty b/Master/texmf-dist/source/lambda/oinuit/oinuit.sty
new file mode 100644
index 00000000000..a2444870fa7
--- /dev/null
+++ b/Master/texmf-dist/source/lambda/oinuit/oinuit.sty
@@ -0,0 +1,100 @@
+% (c) copyright 2002 Apostolos Syropoulos
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+% Please report errors or suggestions for improvement to
+%
+% Apostolos Syropoulos
+% 366, 28th October Str.
+% GR-671 00 Xanthi, GREECE
+% apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr
+%
+%% onuit.sty
+\IfFileExists{ot1uctt.fd}{%
+ \def\ttdefault{uctt}}{}%
+%
+\DeclareOption{nunavut}{%
+ \ocp\InInuit=Ninuit2uni
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+%
+\DeclareOption{quebec}{%
+ \ocp\InInuit=Qinuit2uni
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+%
+\DeclareOption{iscii}{%
+ \ocp\InInuit=inuitscii
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+%
+\DeclareOption{utf8}{%
+ \ocp\InInuit=inutf8
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+%
+\DeclareOption{ucs2}{%
+ \ocp\InInuit=id
+ \ocplist\InInuitList=
+ \addbeforeocplist 1 \InInuit
+ \nullocplist
+}
+%
+\ExecuteOptions{nunavut}
+\ProcessOptions
+%
+\input litenc.def
+\def\selectlanguage#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax%
+ \typeout{^^J Error: No hyphenation pattern for language #1 loaded,}%
+ \typeout{ default hyphenation patterns are used.^^J}%
+ \language=0%
+ \else\language=\csname l@#1\endcsname\fi}
+%
+\def\inuittext{%
+ \fontencoding{LIT}\selectfont%
+ \def\encodingdefault{LIT}%
+ \selectlanguage{inuit}%
+ \pushocplist\InInuitList%
+}
+%
+\newenvironment{inuit}{\fontencoding{LIT}\selectfont%
+ \selectlanguage{inuit}%
+ \pushocplist\InInuitList}%
+ {\popocplist}
+%
+\DeclareRobustCommand{\textinuit}[1]{{%
+ \leavevmode\fontencoding{LIT}\selectfont%
+ \selectlanguage{inuit}%
+ \pushocplist\InInuitList #1}}
+%
+\DeclareRobustCommand{\InuitToday}{{%
+ \fontencoding{LIT}\selectfont%
+ \number\day\space%
+ \ifcase\month%
+ \or ^^^^1528^^^^14c4^^^^140a^^^^1546 %January
+ \or ^^^^1555^^^^1433^^^^140a^^^^1546 %February
+ \or ^^^^14ab^^^^1550^^^^14ef %March
+ \or ^^^^140a^^^^1403^^^^1433^^^^1546^^^^14ea %April
+ \or ^^^^14aa^^^^1403 %May
+ \or ^^^^152a^^^^14c2 %June
+ \or ^^^^152a^^^^14da^^^^1403 %July
+ \or ^^^^140a^^^^1405^^^^148d^^^^1505 %August
+ \or ^^^^14ef^^^^144e^^^^14bb^^^^1433^^^^1546 %September
+ \or ^^^^1505^^^^1483^^^^1450^^^^1433^^^^1546 %October
+ \or ^^^^14c4^^^^1555^^^^14bb^^^^1433^^^^1546 %November
+ \or ^^^^144e^^^^14ef^^^^14bb^^^^1433^^^^1546 %December
+ \fi%
+ \number\year}}
+%
+\endinput