From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 language/mongolian/babel/mongolian.dtx | 1112 ++++++++++++++++++++++++++++++++
 1 file changed, 1112 insertions(+)
 create mode 100644 language/mongolian/babel/mongolian.dtx

(limited to 'language/mongolian/babel/mongolian.dtx')

diff --git a/language/mongolian/babel/mongolian.dtx b/language/mongolian/babel/mongolian.dtx
new file mode 100644
index 0000000000..3b526d4f4c
--- /dev/null
+++ b/language/mongolian/babel/mongolian.dtx
@@ -0,0 +1,1112 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 Johannes L. Braams and any individual authors
+% listed elsewhere in this file.  All rights reserved.
+%
+% This file is part of the Babel system.
+% --------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Johannes Braams.
+%
+% The list of all files belonging to the Babel system is
+% given in the file `manifest.bbl. See also `legal.bbl' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+% \fi
+% \CheckSum{1319}
+%
+% \iffalse
+%    Tell the \LaTeX\ system who we are and write an entry on the
+%    transcript.
+%<*dtx>
+\ProvidesFile{mongolian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{mongolian}
+        [2008/03/30 v1.2 Mongolian support from the babel system]
+%
+%% File `mongolian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%%           by Johannes Braams, TeXniek
+%
+%% Mongolian Language Definition File
+%% Copyright (C) 2007 - 2008
+%%           by Dorjgotov Batmunkh bataak at gmail.com
+%
+%% derived from the Russianb Language Definition File
+%% Copyright (C) 1995 - 2005
+%%           by Olga Lapko cyrtug at mir.msk.su
+%%              Johannes Braams, TeXniek
+% adapted to the new T2 and X2 Cyrillic encodings
+%           by Vladimir Volovich TeX at vvv.vsu.ru
+%              Werner Lemberg wl at gnu.org
+%
+%% Please report errors to: J.L. Braams
+%%                          babel at braams.cistron.nl
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\usepackage[mongolian,english]{babel}
+\newcommand\TeXhax{\TeX hax}
+\newcommand\babel{\textsf{babel}}
+\newcommand\langvar{$\langle \it lang \rangle$}
+\newcommand\note[1]{}
+\newcommand\Lopt[1]{\textsf{#1}}
+\newcommand\file[1]{\texttt{#1}}
+\newcommand\pkg[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{mongolian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{mongolian.dtx}
+%
+%
+%  \section{The Mongolian language}
+%
+%    The file \file{\filename}\footnote{The file described in this
+%    section has version number \fileversion.
+%    This file was derived from the \file{russianb.dtx} version 1.1r.}
+%    defines all the language-specific macros for the Mongolian
+%    language. It needs the file \file{cyrcod} for success documentation
+%    with Mongolian encodings (see below).
+%
+%    For this language the character |"| is made active. In
+%    table~\ref{tab:mongolian-quote} an overview is given of its
+%    purpose.
+%
+%    \begin{table}[htb]
+%      \begin{center}
+%      \begin{tabular}{lp{8cm}}
+%       \verb="|= & disable ligature at this position.               \\
+%       |"-| & an explicit hyphen sign, allowing hyphenation
+%                   in the rest of the word.                         \\
+%       |"---| & Cyrillic emdash in plain text.                      \\
+%       |"--~| & Cyrillic emdash in compound names (surnames).       \\
+%       |"--*| & Cyrillic emdash for denoting direct speech.         \\
+%       |""| & like |"-|, but producing no hyphen sign
+%                   (for compund words with hyphen, e.g.\ |x-""y|
+%                   or some other signs  as ``disable/enable'').     \\
+%       |"~| & for a compound word mark without a breakpoint.        \\
+%       |"=| & for a compound word mark with a breakpoint, allowing
+%              hyphenation in the composing words.                   \\
+%       |",| & thinspace for initials with a breakpoint
+%               in following surname.                                \\
+%       |"`| & for German left double quotes
+%                   (looks like ,\kern-0.08em,).                     \\
+%       |"'| & for German right double quotes (looks like ``).       \\%''
+%       |"<| & for French left double quotes (looks like $<\!\!<$).  \\
+%       |">| & for French right double quotes (looks like $>\!\!>$). \\
+%      \end{tabular}
+%      \caption{The extra definitions made
+%               by \file{mongolian}}\label{tab:mongolian-quote}
+%      \end{center}
+%    \end{table}
+%
+%    The quotes in table~\ref{tab:mongolian-quote} (see, also
+%    table~\ref{tab:russian-quote}) can also be typeset by using the commands
+%    in table~\ref{tab:umore-quote} (see, also table~\ref{tab:rmore-quote}).
+%
+%    \begin{table}[htb]
+%      \begin{center}
+%      \begin{tabular}{lp{8cm}}
+%       |\cdash---| & Cyrillic emdash in plain text.                    \\
+%       |\cdash--~| & Cyrillic emdash in compound names (surnames).     \\
+%       |\cdash--*| & Cyrillic emdash for denoting direct speech.       \\
+%       |\glqq| & for German left double quotes
+%                    (looks like ,\kern-0.08em,).                       \\
+%       |\grqq| & for German right double quotes (looks like ``).       \\%''
+%       |\flqq| & for French left double quotes (looks like $<\!\!<$).  \\
+%       |\frqq| & for French right double quotes (looks like $>\!\!>$). \\
+%       |\dq|   & the original quotes character (|"|).                  \\
+%      \end{tabular}
+%      \caption{More commands which produce quotes, defined
+%               by \babel}\label{tab:umore-quote}
+%      \end{center}
+%    \end{table}
+%
+%    The French quotes are also available as ligatures `|<<|' and `|>>|' in
+%    8-bit Cyrillic font encodings (\texttt{LCY}, \texttt{X2}, \texttt{T2*})
+%    and as `|<|' and `|>|' characters in 7-bit Cyrillic font encodings
+%    (\texttt{OT2} and \texttt{LWN}).
+%
+%    The quotation marks traditionally used in Mongolian and Russian
+%    languages were borrowed from other languages (e.g. French and German)
+%    so they keep their original names.
+%
+% \StopEventually{}
+%
+%    The macro |\LdfInit| takes care of preventing that this file is loaded
+%    more than once, checking the category code of the \texttt{@} sign, etc.
+%
+%    \begin{macrocode}
+%<*code>
+\LdfInit{mongolian}{captionsmongolian}
+%    \end{macrocode}
+%
+%    When this file is read as an option, i.e., by the |\usepackage|
+%    command, \texttt{mongolian} will be an `unknown' language, in which case
+%    we have to make it known. So we check for the existence of |\l@mongolian|
+%    to see whether we have to do something here.
+%
+%    \begin{macrocode}
+\ifx\l@mongolian\@undefined
+  \@nopatterns{Mongolian}
+  \adddialect\l@mongolian0
+\fi
+%    \end{macrocode}
+%
+%  \begin{macro}{\latinencoding}
+%
+%    We need to know the encoding for text that is supposed to be which is
+%    active at the end of the \babel\ package. If the \pkg{fontenc} package
+%    is loaded later, then\ldots too bad!
+%
+%    \begin{macrocode}
+\let\latinencoding\cf@encoding
+%    \end{macrocode}
+%
+%  \end{macro}
+%
+%    The user may choose between different available Cyrillic
+%    encodings---e.g., \texttt{X2}, \texttt{LCY}, or \texttt{LWN}.\@
+%    Hopefully, \texttt{X2} will eventually replace the two latter encodings
+%    (\texttt{LCY} and \texttt{LWN}).\@ If the user wants to use another
+%    font encoding than the default (\texttt{T2A}), he has to load the
+%    corresponding file \emph{before} \file{mongolian.sty}. This may be done
+%    in the following way:
+%
+%    \begin{verbatim}
+%      % override the default X2 encoding used in Babel
+%      \usepackage[cpctt,OT1]{fontenc}
+%      \usepackage[english,mongolian]{babel}
+%    \end{verbatim}
+%    \unskip
+%
+%    Note: for the Mongolian language, the \texttt{T2A} encoding is better than
+%    \texttt{X2}, because \texttt{X2} does not contain Latin letters, and
+%    users should be very careful to switch the language every time they
+%    want to typeset a Latin word inside a Mongolian phrase or vice versa.
+%
+%    We parse the |\cdp@list| containing the encodings known to \LaTeX\ in
+%    the order they were loaded. We set the |\cyrillicencoding| to the
+%    \emph{last} loaded encoding in the list of supported Cyrillic
+%    encodings: \texttt{OT2}, \texttt{X2}, \texttt{T2B}, \texttt{T2A},
+%    \texttt{CTT}, \texttt{MNK}, \texttt{MLS}, if any.
+%
+%    \begin{macrocode}
+\def\reserved@a#1#2{%
+   \edef\reserved@b{#1}%
+   \edef\reserved@c{#2}%
+   \ifx\reserved@b\reserved@c
+     \let\cyrillicencoding\reserved@c
+   \fi}
+\def\cdp@elt#1#2#3#4{%
+   \reserved@a{#1}{X2}%
+   \reserved@a{#1}{T2B}%
+   \reserved@a{#1}{T2A}}
+\cdp@list
+%    \end{macrocode}
+%
+%    Now, if |\cyrillicencoding| is undefined, then the user did not load
+%    any of supported encodings. So, we have to set |\cyrillicencoding| to
+%    some default value. We test the presence of the encoding definition
+%    files in the order from less preferable to more preferable encodings.
+%    We use the lowercase names (i.e., \file{lcyenc.def} instead of
+%    \file{LCYenc.def}).
+%
+%    \begin{macrocode}
+\ifx\cyrillicencoding\undefined
+  \IfFileExists{x2enc.def}{\def\cyrillicencoding{X2}}\relax
+  \IfFileExists{t2benc.def}{\def\cyrillicencoding{T2B}}\relax
+  \IfFileExists{t2aenc.def}{\def\cyrillicencoding{T2A}}\relax
+%    \end{macrocode}
+%
+%    If |\cyrillicencoding| is still undefined, then the user seems not to
+%    have a properly installed distribution. A fatal error.
+%
+%    \begin{macrocode}
+  \ifx\cyrillicencoding\undefined
+    \PackageError{babel}%
+      {No Cyrillic encoding definition files were found}%
+      {Your installation is incomplete.\MessageBreak
+       You need at least one of the following files:\MessageBreak
+       \space\space
+       x2enc.def, t2aenc.def, t2benc.def, x2enc.def.}%
+  \else
+%    \end{macrocode}
+%
+%    We avoid |\usepackage[\cyrillicencoding]{fontenc}| because we don't
+%    want to force the switch of |\encodingdefault|.
+%
+%    \begin{macrocode}
+    \lowercase
+      \expandafter{\expandafter\input\cyrillicencoding enc.def\relax}%
+  \fi
+\fi
+%    \end{macrocode}
+%
+%    \begin{verbatim}
+%      \PackageInfo{babel}
+%        {Using `\cyrillicencoding' as a default Cyrillic encoding}%
+%    \end{verbatim}
+%    \unskip
+%
+%    \begin{macrocode}
+\DeclareRobustCommand{\Mongolian}{%
+  \fontencoding\cyrillicencoding\selectfont
+  \let\encodingdefault\cyrillicencoding
+  \expandafter\set@hyphenmins\mongolianhyphenmins
+  \language\l@mongolian}%
+\DeclareRobustCommand{\English}{%
+  \fontencoding\latinencoding\selectfont
+  \let\encodingdefault\latinencoding
+  \expandafter\set@hyphenmins\englishhyphenmins
+  \language\l@english}%
+\let\Mon\Mongolian
+\let\Eng\English
+\let\cyrillictext\Mongolian
+\let\cyr\Mongolian
+%    \end{macrocode}
+%
+%    Since the \texttt{X2} encoding does not contain Latin letters, we
+%    should make some redefinitions of \LaTeX\ macros which implicitly
+%    produce Latin letters.
+%
+%    \begin{macrocode}
+\expandafter\ifx\csname T@X2\endcsname\relax\else
+%    \end{macrocode}
+%
+%    We put |\latinencoding| in braces to avoid problems with
+%    |\@alph| inside minipages (e.g., footnotes inside minipages) where
+%    |\@alph| is expanded and we get for example `|\fontencoding OT1|'
+%    (|\fontencoding| is robust).
+%
+%    \begin{macrocode}
+  \def\@alph#1{{\fontencoding{\latinencoding}\selectfont
+    \ifcase#1\or
+      a\or b\or c\or d\or e\or f\or g\or h\or
+      i\or j\or k\or l\or m\or n\or o\or p\or
+      q\or r\or s\or t\or u\or v\or w\or x\or
+      y\or z\else\@ctrerr\fi}}%
+  \def\@Alph#1{{\fontencoding{\latinencoding}\selectfont
+    \ifcase#1\or
+      A\or B\or C\or D\or E\or F\or G\or H\or
+      I\or J\or K\or L\or M\or N\or O\or P\or
+      Q\or R\or S\or T\or U\or V\or W\or X\or
+      Y\or Z\else\@ctrerr\fi}}%
+%    \end{macrocode}
+%
+%    Unfortunately, the commands |\AA| and |\aa| are not encoding dependent
+%    in \LaTeX\ (unlike e.g., |\oe| or |\DH|). They are defined as |\r{A}| and
+%    |\r{a}|. This leads to unpredictable results when the font encoding
+%    does not contain the Latin letters `A' and `a' (like \texttt{X2}).
+%
+%    \begin{macrocode}
+  \DeclareTextSymbolDefault{\AA}{OT1}
+  \DeclareTextSymbolDefault{\aa}{OT1}
+  \DeclareTextCommand{\aa}{OT1}{\r a}
+  \DeclareTextCommand{\AA}{OT1}{\r A}
+\fi
+%    \end{macrocode}
+%
+%    The following block redefines the character class of uppercase Greek
+%    letters and some accents, if it is equal to 7 (variable family), to
+%    avoid incorrect results if the font encoding in some math family does
+%    not contain these characters in places of OT1 encoding. The code was
+%    taken from |amsmath.dtx|. See comments and further explanation there.
+%
+%    \begin{macrocode}
+% \begingroup\catcode`\"=12
+% % uppercase greek letters:
+% \def\@tempa#1{\expandafter\@tempb\meaning#1\relax\relax\relax\relax
+%   "0000\@nil#1}
+% \def\@tempb#1"#2#3#4#5#6\@nil#7{%
+%   \ifnum"#2=7 \count@"1#3#4#5\relax
+%     \ifnum\count@<"1000 \else \global\mathchardef#7="0#3#4#5\relax \fi
+%   \fi}
+% \@tempa\Gamma\@tempa\Delta\@tempa\Theta\@tempa\Lambda\@tempa\Xi
+% \@tempa\Pi\@tempa\Sigma\@tempa\Upsilon\@tempa\Phi\@tempa\Psi
+% \@tempa\Omega
+% % some accents:
+% \def\@tempa#1#2\@nil{\def\@tempc{#1}}\def\@tempb{\mathaccent}
+% \expandafter\@tempa\hat\relax\relax\@nil
+% \ifx\@tempb\@tempc
+%   \def\@tempa#1\@nil{#1}%
+%   \def\@tempb#1{\afterassignment\@tempa\mathchardef\@tempc=}%
+%   \def\do#1"#2{}
+%   \def\@tempd#1{\expandafter\@tempb#1\@nil
+%     \ifnum\@tempc>"FFF
+%       \xdef#1{\mathaccent"\expandafter\do\meaning\@tempc\space}%
+%     \fi}
+%   \@tempd\hat\@tempd\check\@tempd\tilde\@tempd\acute\@tempd\grave
+%   \@tempd\dot\@tempd\ddot\@tempd\breve\@tempd\bar
+% \fi
+% \endgroup
+%    \end{macrocode}
+%
+%    The user must use the \pkg{inputenc} package when any 8-bit Cyrillic
+%    font encoding is used, selecting one of the Cyrillic input encodings.
+%    We do not assume any default input encoding, so the user should
+%    explicitly call the \pkg{inputenc} package by |\usepackage{inputenc}|.
+%    We also removed |\AtBeginDocument|, so \pkg{inputenc} should be used
+%    before \babel.
+%
+%    \begin{macrocode}
+\@ifpackageloaded{inputenc}{}{%
+  \def\reserved@a{LWN}%
+  \ifx\reserved@a\cyrillicencoding\else
+    \def\reserved@a{OT2}%
+    \ifx\reserved@a\cyrillicencoding\else
+      \PackageWarning{babel}%
+        {No input encoding specified for Mongolian language}
+  \fi\fi}
+%    \end{macrocode}
+%
+%    Now we define two commands that offer the possibility to switch between
+%    Cyrillic and Roman encodings.
+%
+%  \begin{macro}{\cyrillictext}
+%  \begin{macro}{\latintext}
+%
+%    The command |\cyrillictext| will switch from Latin font encoding to the
+%    Cyrillic font encoding, the command |\latintext| switches back. This
+%    assumes that the `normal' font encoding is a Latin one. These commands
+%    are \emph{declarations}, for shorter peaces of text the commands
+%    |\textlatin| and |\textcyrillic| can be used.
+%
+%    \begin{macrocode}
+%\DeclareRobustCommand{\latintext}{%
+%  \fontencoding{\latinencoding}\selectfont
+%  \def\encodingdefault{\latinencoding}}
+\let\lat\latintext
+%    \end{macrocode}
+%
+%  \end{macro}
+%  \end{macro}
+%
+%  \begin{macro}{\textcyrillic}
+%  \begin{macro}{\textlatin}
+%
+%    These commands take an argument which is then typeset using the
+%    requested font encoding.
+%    \begin{macrocode}
+\DeclareTextFontCommand{\textcyrillic}{\cyrillictext}
+%\DeclareTextFontCommand{\textlatin}{\latintext}
+%    \end{macrocode}
+%
+%  \end{macro}
+%  \end{macro}
+%
+%    We make the \TeX
+%    \begin{macrocode}
+%\ifx\ltxTeX\undefined\let\ltxTeX\TeX\fi
+%\ProvideTextCommandDefault{\TeX}{\textlatin{\ltxTeX}}
+%    \end{macrocode}
+%    and \LaTeX\ logos encoding independent.
+%    \begin{macrocode}
+%\ifx\ltxLaTeX\undefined\let\ltxLaTeX\LaTeX\fi
+%\ProvideTextCommandDefault{\LaTeX}{\textlatin{\ltxLaTeX}}
+%    \end{macrocode}
+%
+%    The next step consists of defining commands to switch to (and
+%    from) the Mongolian language.
+%
+% \begin{macro}{\captionsmongolian}
+%
+%    The macro |\captionsmongolian| defines all strings used in the four
+%    standard document classes provided with \LaTeX. The two commands |\cyr|
+%    and |\lat| activate Cyrillic resp.\ Latin encoding.
+%    \begin{macrocode}
+\addto\captionsmongolian{%
+  \def\prefacename{{\cyr\CYROTLD\cyrm\cyrn\cyrotld\cyrh
+  \ \cyry\cyrg}}%
+  \def\refname{%
+  {\cyr\CYRA\cyrsh\cyri\cyrg\cyrl\cyra\cyrs\cyra\cyrn
+  \ \cyrn\cyro\cyrm}}%
+  \def\abstractname{{\cyr\CYRU\cyrd\cyri\cyrr\cyrt\cyrg\cyra\cyrl}}%
+  \def\bibname{{\cyr\CYRN\cyro\cyrm\cyrz\cyry\cyrishrt}}%
+  \def\chaptername{{\cyr\CYRB\cyry\cyrl\cyrerev\cyrg}}%
+  \def\appendixname{{\cyr\CYRH\cyra\cyrv\cyrs\cyrr\cyra\cyrl\cyrt}}%
+  \@ifundefined{thechapter}%
+    {\def\contentsname{{\cyr\CYRA\cyrg\cyru\cyru\cyrl\cyrg\cyra}}}%
+    {\def\contentsname{{\cyr\CYRG\cyra\cyrr\cyrch\cyri\cyrg}}}%
+  \def\listfigurename{{\cyr\CYRZ\cyru\cyrr\cyrg\cyri\cyrishrt\cyrn
+    \ \cyrzh\cyra\cyrg\cyrs\cyra\cyra\cyrl\cyrt}}%
+  \def\listtablename{%
+  {\cyr\CYRH\cyry\cyrs\cyrn\cyrerev\cyrg\cyrt\cyri\cyrishrt\cyrn
+  \ \cyrzh\cyra\cyrg\cyrs\cyra\cyra\cyrl\cyrt}}%
+  \def\indexname{{\cyr\CYRT\cyro\cyrv\cyrhrdsn\cyryo\cyrg}}%
+  \def\authorname{{\cyr\CYRN\cyrerev\cyrr\cyri\cyrishrt\cyrn
+    \ \cyrh\cyrerev\cyrl\cyrh\cyrerev\cyrerev}}%
+  \def\figurename{{\cyr\CYRZ\cyru\cyrr\cyra\cyrg}}%
+  \def\tablename{{\cyr\CYRH\cyry\cyrs\cyrn\cyrerev\cyrg\cyrt}}%
+  \def\partname{{\cyr\CYRH\cyrerev\cyrs\cyrerev\cyrg}}%
+  \def\enclname{{\cyr\CYRI\cyrsh\cyrl\cyrerev\cyrl}}%
+  \def\ccname{{\cyr\cyrerev.\cyrs.}}%
+  \def\headtoname{}%
+  \def\pagename{{\cyr\cyrt\cyra\cyrl}}%
+  \def\seename{{\cyr\cyrt\cyra\cyrl\cyrd\ \cyry\cyrz}}%
+  \def\alsoname{%
+  {\cyr\cyrm\cyrotld\cyrn\ \cyrt\cyra\cyrl\cyrd\ \cyry\cyrz}}%
+  \def\proofname{{\cyr\CYRB\cyra\cyrt\cyra\cyrl\cyrg\cyra\cyra}}%
+  \def\glossaryname{{\cyr\CYRT\cyra\cyrishrt\cyrl\cyrb\cyra\cyrr}}%
+  }
+%    \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\datemongolian}
+%
+%    The macro |\datemongolian| redefines the command |\today| to produce
+%    Mongolian dates.
+%
+%    \begin{macrocode}
+\def\datemongolian{%
+  \def\today{\number\year~\cyro\cyrn\cyrery\ \ifcase\month\or
+  1-\cyrr\or 2-\cyrr\or 3-\cyrr\or 4-\cyrr\or 5-\cyrr\or 6-\cyrr\or
+  7-\cyrr\or 8-\cyrr\or 9-\cyrr\or 10-\cyrr\or 11-\cyrr\or 12-\cyrr\fi
+  ~\cyrs\cyra\cyrr\cyrery\cyrn\ \number\day}}
+%    \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\extrasmongolian}
+%
+%    The macro |\extrasmongolian| will perform all the extra definitions
+%    needed for the Mongolian language. The macro |\noextrasmongolian|
+%    is used to cancel the actions of |\extrasmongolian|.
+%
+%    The first action we define is to switch on the selected Cyrillic
+%    encoding whenever we enter `mongolian'.
+%
+%    \begin{macrocode}
+\addto\extrasmongolian{\cyrillictext}
+%    \end{macrocode}
+%
+%    When the encoding definition file was processed by \LaTeX\ the current
+%    font encoding is stored in |\latinencoding|, assuming that \LaTeX\ uses
+%    \texttt{T1} or \texttt{OT1} as default. Therefore we switch back to
+%    |\latinencoding| whenever the Mongolian language is no longer `active'.
+%
+%    \begin{macrocode}
+\addto\noextrasmongolian{\latintext}
+%    \end{macrocode}
+%
+%    Next we must allow hyphenation in the Mongolian words with apostrophe
+%    whenever we enter `mongolian'. This solution was proposed by
+%    Vladimir Volovich <vvv@vvv.vsu.ru>
+%
+%    \begin{macrocode}
+\addto\extrasmongolian{\lccode`\'=`\'}
+\addto\noextrasmongolian{\lccode`\'=0}
+%    \end{macrocode}
+%
+%  \begin{macro}{\verbatim@font}
+%
+%    In order to get both Latin and Cyrillic letters in verbatim text we
+%    need to change the definition of an internal \LaTeX\ command somewhat:
+%
+%    \begin{macrocode}
+%\def\verbatim@font{%
+%  \let\encodingdefault\latinencoding
+%  \normalfont\ttfamily
+%  \expandafter\def\csname\cyrillicencoding-cmd\endcsname##1##2{%
+%    \ifx\protect\@typeset@protect
+%      \begingroup\UseTextSymbol\cyrillicencoding##1\endgroup
+%    \else\noexpand##1\fi}}
+%    \end{macrocode}
+%
+%  \end{macro}
+%
+%    The category code of the characters `\texttt{:}', `\texttt{;}',
+%    `\texttt{!}', and `\texttt{?}' is made |\active| to insert a little
+%    white space.
+%
+%    For Mongolian (as well as for Russian and German) the \texttt{"}
+%    character also is made active.
+%
+%    Note: It is \emph{very} questionable whether the Russian typesetting
+%    tradition requires additional spacing before those punctuation signs.
+%    Therefore, we make the corresponding code optional. If you need it,
+%    then define the \texttt{frenchpunct} docstrip option in
+%    \file{babel.ins}.
+%
+%    Borrowed from french.
+%    Some users dislike automatic insertion of a space before
+%    `double punctuation', and prefer to decide themselves whether a
+%    space should be added or not; so a hook |\NoAutoSpaceBeforeFDP|
+%    is provided: if this command is added (in file |mongolian.cfg|, or
+%    anywhere in a document) |mongolian| will respect your typing, and
+%    introduce a suitable space before `double punctuation' \emph{if
+%    and only if} a space is typed in the source file before those
+%    signs.
+%
+%    The command |\AutoSpaceBeforeFDP| switches back to the
+%    default behavior of |mongolian|.
+%
+%    \begin{macrocode}
+%<*frenchpunct>
+\initiate@active@char{:}
+\initiate@active@char{;}
+%</frenchpunct>
+%<*frenchpunct|spanishligs>
+\initiate@active@char{!}
+\initiate@active@char{?}
+%</frenchpunct|spanishligs>
+\initiate@active@char{"}
+%    \end{macrocode}
+%
+%    The code above is necessary because we need extra active characters.
+%    The character |"| is used as indicated in
+%    table~\ref{tab:mongolian-quote}.
+%
+%    We specify that the Mongolian group of shorthands should be used.
+%
+%    \begin{macrocode}
+\addto\extrasmongolian{\languageshorthands{mongolian}}
+%    \end{macrocode}
+%
+%    These characters are `turned on' once, later their definition may
+%    vary.
+%
+%    \begin{macrocode}
+\addto\extrasmongolian{%
+%<frenchpunct>  \bbl@activate{:}\bbl@activate{;}%
+%<frenchpunct|spanishligs>  \bbl@activate{!}\bbl@activate{?}%
+  \bbl@activate{"}}
+\addto\noextrasmongolian{%
+%<frenchpunct>  \bbl@deactivate{:}\bbl@deactivate{;}%
+%<frenchpunct|spanishligs>  \bbl@deactivate{!}\bbl@deactivate{?}%
+  \bbl@deactivate{"}}
+%    \end{macrocode}
+%
+%   The \texttt{X2} and \texttt{T2*} encodings do not contain
+%   |spanish_shriek| and |spanish_query| symbols; as a consequence, the
+%   ligatures `|?`|' and `|!`|' do not work with them (these characters are
+%   useless for Cyrillic texts anyway). But we define the shorthands to
+%   emulate these ligatures (optionally).
+%
+%   We do not use |\latinencoding| here (but instead explicitly use
+%   \texttt{OT1}) because the user may choose \texttt{T2A} to be the primary
+%   encoding, but it does not contain these characters.
+%
+%    \begin{macrocode}
+%<*spanishligs>
+\declare@shorthand{mongolian}{?`}{\UseTextSymbol{OT1}\textquestiondown}
+\declare@shorthand{mongolian}{!`}{\UseTextSymbol{OT1}\textexclamdown}
+%</spanishligs>
+%    \end{macrocode}
+%
+% \begin{macro}{\mongolian@sh@;@}
+% \begin{macro}{\mongolian@sh@:@}
+% \begin{macro}{\mongolian@sh@!@}
+% \begin{macro}{\mongolian@sh@?@}
+%
+%    We have to reduce the amount of white space before \texttt{;},
+%    \texttt{:} and \texttt{!}. This should only happen in horizontal mode,
+%    hence the test with |\ifhmode|.
+%
+%    \begin{macrocode}
+%<*frenchpunct>
+\declare@shorthand{mongolian}{;}{%
+  \ifhmode
+%    \end{macrocode}
+%
+%    In horizontal mode we check for the presence of a `space', `unskip' if
+%    it exists and place a |0.1em| kerning.
+%
+%    \begin{macrocode}
+    \ifdim\lastskip>\z@
+      \unskip\nobreak\kern.1em
+    \else
+%    \end{macrocode}
+%    If no space has been typed, we add |\FDP@thinspace|
+%    which will be
+%    defined, up to the user's wishes, as an automatic added
+%    thinspace, or as |\@empty|.
+%
+%    \begin{macrocode}
+        \FDP@thinspace
+    \fi
+  \fi
+%    \end{macrocode}
+%
+%    Now we can insert a `|;|' character.
+%
+%    \begin{macrocode}
+  \string;}
+%    \end{macrocode}
+%
+%    The other definitions are very similar.
+%
+%    \begin{macrocode}
+\declare@shorthand{mongolian}{:}{%
+  \ifhmode
+    \ifdim\lastskip>\z@
+      \unskip\nobreak\kern.1em
+    \else
+        \FDP@thinspace
+    \fi
+  \fi
+  \string:}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\declare@shorthand{mongolian}{!}{%
+  \ifhmode
+    \ifdim\lastskip>\z@
+      \unskip\nobreak\kern.1em
+    \else
+        \FDP@thinspace
+    \fi
+  \fi
+  \string!}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\declare@shorthand{mongolian}{?}{%
+  \ifhmode
+    \ifdim\lastskip>\z@
+      \unskip\nobreak\kern.1em
+    \else
+        \FDP@thinspace
+    \fi
+  \fi
+  \string?}
+%    \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+%  \begin{macro}{\AutoSpaceBeforeFDP}
+%  \begin{macro}{\NoAutoSpaceBeforeFDP}
+%  \begin{macro}{\FDP@thinspace}
+%    |\FDP@thinspace| is defined as unbreakable
+%    spaces if |\AutoSpaceBeforeFDP| is activated or as |\@empty| if
+%    |\NoAutoSpaceBeforeFDP| is in use.
+%    The default is |\AutoSpaceBeforeFDP|.
+%    \begin{macrocode}
+\def\AutoSpaceBeforeFDP{%
+      \def\FDP@thinspace{\nobreak\kern.1em}}
+\def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty}
+\AutoSpaceBeforeFDP
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%
+%  \begin{macro}{\FDPon}
+%  \begin{macro}{\FDPoff}
+%
+%     The next macros allow to switch on/off activeness of double
+%     punctuation signs.
+%
+%    \begin{macrocode}
+\def\FDPon{\bbl@activate{:}%
+        \bbl@activate{;}%
+        \bbl@activate{?}%
+        \bbl@activate{!}}
+\def\FDPoff{\bbl@deactivate{:}%
+        \bbl@deactivate{;}%
+        \bbl@deactivate{?}%
+        \bbl@deactivate{!}}
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%
+%  \begin{macro}{\system@sh@:@}
+%  \begin{macro}{\system@sh@!@}
+%  \begin{macro}{\system@sh@?@}
+%  \begin{macro}{\system@sh@;@}
+%
+%    When the active characters appear in an environment where their
+%    Mongolian behaviour is not wanted they should give an `expected'
+%    result. Therefore we define shorthands at system level as well.
+%
+%    \begin{macrocode}
+\declare@shorthand{system}{:}{\string:}
+\declare@shorthand{system}{;}{\string;}
+%</frenchpunct>
+%<*frenchpunct&!spanishligs>
+\declare@shorthand{system}{!}{\string!}
+\declare@shorthand{system}{?}{\string?}
+%</frenchpunct&!spanishligs>
+%    \end{macrocode}
+%
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%
+%    To be able to define the function of `|"|', we first define a couple of
+%    `support' macros.
+%
+%  \begin{macro}{\dq}
+%
+%    We save the original double quote character in |\dq| to keep it
+%    available, the math accent |\"| can now be typed as `|"|'.
+%
+%    \begin{macrocode}
+\begingroup \catcode`\"12
+\def\reserved@a{\endgroup
+  \def\@SS{\mathchar"7019 }
+  \def\dq{"}}
+\reserved@a
+%    \end{macrocode}
+%
+%  \end{macro}
+%
+%    Now we can define the doublequote macros: german and french quotes.
+%    We use definitions of these quotes made in babel.sty.
+%    The french quotes are contained in the \texttt{T2*} encodings.
+%
+%    \begin{macrocode}
+\declare@shorthand{mongolian}{"`}{\glqq}
+\declare@shorthand{mongolian}{"'}{\grqq}
+\declare@shorthand{mongolian}{"<}{\flqq}
+\declare@shorthand{mongolian}{">}{\frqq}
+%    \end{macrocode}
+%
+%    Some additional commands:
+%
+%    \begin{macrocode}
+\declare@shorthand{mongolian}{""}{\hskip\z@skip}
+\declare@shorthand{mongolian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{mongolian}{"=}{\nobreak-\hskip\z@skip}
+\declare@shorthand{mongolian}{"|}{%
+  \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+              \allowhyphens}{}}
+%    \end{macrocode}
+%
+%    The next two macros for |"-| and |"---| are somewhat different.
+%    We must check whether the second token is a hyphen character:
+%
+%    \begin{macrocode}
+\declare@shorthand{mongolian}{"-}{%
+%    \end{macrocode}
+%
+%    If the next token is `|-|', we typeset an emdash, otherwise a hyphen
+%    sign:
+%
+%    \begin{macrocode}
+  \def\mongolian@sh@tmp{%
+    \if\mongolian@sh@next-\expandafter\mongolian@sh@emdash
+    \else\expandafter\mongolian@sh@hyphen\fi
+  }%
+%    \end{macrocode}
+%
+%    \TeX\ looks for the next token after the first `|-|': the meaning of
+%    this token is written to |\mongolian@sh@next| and |\mongolian@sh@tmp| is
+%    called.
+%
+%    \begin{macrocode}
+  \futurelet\mongolian@sh@next\mongolian@sh@tmp}
+%    \end{macrocode}
+%
+%    Here are the definitions of hyphen and emdash. First the hyphen:
+%
+%    \begin{macrocode}
+\def\mongolian@sh@hyphen{%
+  \nobreak\-\bbl@allowhyphens}
+%    \end{macrocode}
+%
+%    For the emdash definition, there are the two parameters: we must `eat'
+%    two last hyphen signs of our emdash\dots :
+%    \begin{macrocode}
+\def\mongolian@sh@emdash#1#2{\cdash-#1#2}
+%    \end{macrocode}
+%  \begin{macro}{\cdash}
+%    \dots\ these two parameters are useful for another macro:
+%    |\cdash|:
+%    \begin{macrocode}
+%\ifx\cdash\undefined % should be defined earlier
+\def\cdash#1#2#3{\def\tempx@{#3}%
+\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
+ \ifx\tempx@\tempa@\@Acdash\else
+  \ifx\tempx@\tempb@\@Bcdash\else
+   \ifx\tempx@\tempc@\@Ccdash\else
+    \errmessage{Wrong usage of cdash}\fi\fi\fi}
+%    \end{macrocode}
+%   second parameter (or third for |\cdash|) shows what kind of emdash
+%   to create in next step
+%      \begin{center}
+%      \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+%       |"---| & ordinary (plain) Cyrillic emdash inside text:
+%       an unbreakable thinspace will be inserted before only in case of
+%       a \textit{space} before the dash (it is necessary for dashes after
+%       display maths formulae: there could be lists, enumerations etc.\
+%       started with ``--- where $a$ is ...'' i.e., the dash starts a line).
+%       (Firstly there were planned rather soft rules for user: he may put
+%       a space before the dash or not.  But it is difficult to place this
+%       thinspace automatically, i.e., by checking modes because after
+%       display formulae \TeX{} uses horizontal mode.  Maybe there is a
+%       misunderstanding?  Maybe there is another way?)  After a dash
+%       a breakable thinspace is always placed; \\
+%   \end{tabular}
+%   \end{center}
+%    \begin{macrocode}
+% What is more grammatically: .2em or .2\fontdimen6\font ?
+\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+  \cyrdash\hskip.2em\ignorespaces}%
+%    \end{macrocode}
+%      \begin{center}
+%      \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+%       |"--~| & emdash in compound names or surnames
+%       (like Mendeleev--Klapeiron); this dash has no space characters
+%       around; after the dash some space is added
+%       |\exhyphenalty| \\
+%   \end{tabular}
+%   \end{center}
+%    \begin{macrocode}
+\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+ \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+%    \end{macrocode}
+%      \begin{center}
+%      \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+%       |"--*| & for denoting direct speech (a space like |\enskip|
+%       must follow the emdash); \\
+%   \end{tabular}
+%   \end{center}
+%    \begin{macrocode}
+\def\@Ccdash{\leavevmode
+ \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+%\fi
+%    \end{macrocode}
+%  \end{macro}
+%
+%  \begin{macro}{\cyrdash}
+%   Finally the macro for ``body'' of the Cyrillic emdash.
+%   The |\cyrdash| macro will be defined in case this macro hasn't been
+%   defined in a fontenc file.  For T2* fonts, cyrdash will be placed in
+%   the code of the English emdash thus it uses ligature |---|.
+%    \begin{macrocode}
+% Is there an IF necessary?
+\ifx\cyrdash\undefined
+  \def\cyrdash{\hbox to.8em{--\hss--}}
+\fi
+%    \end{macrocode}
+%  \end{macro}
+%
+%    Here a really new macro---to place thinspace between initials.
+%    This macro used instead of |\,| allows hyphenation in the following
+%    surname.
+%
+%    \begin{macrocode}
+%\declare@shorthand{mongolian}{",}{\nobreak\hskip.2em\ignorespaces}
+%    \end{macrocode}
+%
+%  \begin{macro}{\mdqon}
+%  \begin{macro}{\mdqoff}
+%    All that's left to do now is to  define a couple of commands
+%    for |"|.
+%    \begin{macrocode}
+\def\mdqon{\bbl@activate{"}}
+\def\mdqoff{\bbl@deactivate{"}}
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%
+%    The Mongolian hyphenation patterns can be used with |\lefthyphenmin|
+%    and |\righthyphenmin| set to~2.
+%    \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% temporary hack:
+\ifx\englishhyphenmins\undefined
+  \def\englishhyphenmins{\tw@\thr@@}
+\fi
+%    \end{macrocode}
+%
+%    Now the action |\extrasmongolian| has to execute is to make sure that the
+%    command |\frenchspacing| is in effect. If this is not the case the
+%    execution of |\noextrasmongolian| will switch it off again.
+%
+%    \begin{macrocode}
+\addto\extrasmongolian{\bbl@frenchspacing}
+\addto\noextrasmongolian{\bbl@nonfrenchspacing}
+%    \end{macrocode}
+%
+% \end{macro}
+%
+%    Next we add a new enumeration style for Mongolian manuscripts with
+%    Cyrillic letters, and later on we define some math operator names in
+%    accordance with Mongolian and Russian typesetting traditions.
+%
+%  \begin{macro}{\Useg}
+%
+%    We begin by defining |\Useg| which works like |\Alph|, but produces
+%    (uppercase) Cyrillic letters intead of Latin ones. The letters CYRGUP,
+%    and SFTSN are skipped, as usual for such enumeration.
+%
+%    \begin{macrocode}
+\def\Useg#1{\expandafter\@Useg\csname c@#1\endcsname}
+\def\@Useg#1{\ifcase#1\or
+  \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRYO\or\CYRZH\or
+  \CYRZ\or\CYRI\or\CYRISHRT\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRO\or
+  \CYROTLD\or\CYRP\or\CYRR\or\CYRS\or\CYRT\or\CYRU\or\CYRY\or\CYRF\or
+  \CYRH\or\CYRC\or\CYRCH\or\CYRSH\or\CYRSHCH\or\CYRHRDSN\or\CYRERY\or
+  \CYRSFTSN\or\CYREREV\or\CYRYU\or\CYRYA\else\@ctrerr\fi}
+%    \end{macrocode}
+%
+%  \end{macro}
+%
+%  \begin{macro}{\useg}
+%
+%    The macro |\useg| is similar to |\alph|; it produces lowercase
+%    Mongolian letters.
+%
+%    \begin{macrocode}
+\def\useg#1{\expandafter\@useg\csname c@#1\endcsname}
+\def\@useg#1{\ifcase#1\or
+  \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyryo\or\cyrzh\or
+  \cyrz\or\cyri\or\cyrishrt\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyro\or
+  \cyrotld\or\cyrp\or\cyrr\or\cyrs\or\cyrt\or\cyru\or\cyry\or\cyrf\or
+  \cyrh\or\cyrc\or\cyrch\or\cyrsh\or\cyrshch\or\cyrhrdsn\or\cyrery\or
+  \cyrsftsn\or\cyrerev\or\cyryu\or\cyrya\else\@ctrerr\fi}
+%    \end{macrocode}
+%
+%  \end{macro}
+%
+%    Set up default Cyrillic math alphabets. The math groups for cyrillic
+%    letters are defined in the encoding definition files. First, declare
+%    a new alphabet for symbols, |\cyrmathrm|, based on the symbol font
+%    for Cyrillic letters defined in the encoding definition file. Note,
+%    that by default Cyrillic letters are taken from upright font in math
+%    mode (unlike Latin letters).
+%    \begin{macrocode}
+%\RequirePackage{textmath}
+\@ifundefined{sym\cyrillicencoding letters}{}{%
+\SetSymbolFont{\cyrillicencoding letters}{bold}\cyrillicencoding
+  \rmdefault\bfdefault\updefault
+\DeclareSymbolFontAlphabet\cyrmathrm{\cyrillicencoding letters}
+%    \end{macrocode}
+%    And we need a few commands to be able to switch to different variants.
+%    \begin{macrocode}
+\DeclareMathAlphabet\cyrmathbf\cyrillicencoding
+  \rmdefault\bfdefault\updefault
+\DeclareMathAlphabet\cyrmathsf\cyrillicencoding
+  \sfdefault\mddefault\updefault
+\DeclareMathAlphabet\cyrmathit\cyrillicencoding
+  \rmdefault\mddefault\itdefault
+\DeclareMathAlphabet\cyrmathtt\cyrillicencoding
+  \ttdefault\mddefault\updefault
+%
+\SetMathAlphabet\cyrmathsf{bold}\cyrillicencoding
+  \sfdefault\bfdefault\updefault
+\SetMathAlphabet\cyrmathit{bold}\cyrillicencoding
+  \rmdefault\bfdefault\itdefault
+}
+%    \end{macrocode}
+%
+%    Some math functions in Mongolian and Russian math books have other
+%    names: e.g., \texttt{sinh} in Russian is written as \texttt{sh} etc.
+%    So we define a number of new math operators.
+%
+%    |\sinh|:
+%    \begin{macrocode}
+\def\sh{\mathop{\operator@font sh}\nolimits}
+%    \end{macrocode}
+%    |\cosh|:
+%    \begin{macrocode}
+\def\ch{\mathop{\operator@font ch}\nolimits}
+%    \end{macrocode}
+%    |\tan|:
+%    \begin{macrocode}
+\def\tg{\mathop{\operator@font tg}\nolimits}
+%    \end{macrocode}
+%    |\arctan|:
+%    \begin{macrocode}
+\def\arctg{\mathop{\operator@font arctg}\nolimits}
+%    \end{macrocode}
+%    arcctg:
+%    \begin{macrocode}
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+%    \end{macrocode}
+%    The following macro conflicts with |\th| defined in Latin~1 encoding:
+%
+%    |\tanh|:
+%    \begin{macrocode}
+\addto\extrasmongolian{%
+  \babel@save{\th}%
+  \let\ltx@th\th
+  \def\th{\textormath{\ltx@th}%
+                     {\mathop{\operator@font th}\nolimits}}%
+  }
+%    \end{macrocode}
+%    |\cot|:
+%    \begin{macrocode}
+\def\ctg{\mathop{\operator@font ctg}\nolimits}
+%    \end{macrocode}
+%    |\coth|:
+%    \begin{macrocode}
+\def\cth{\mathop{\operator@font cth}\nolimits}
+%    \end{macrocode}
+%    |\csc|:
+%    \begin{macrocode}
+\def\cosec{\mathop{\operator@font cosec}\nolimits}
+%    \end{macrocode}
+%
+%    And finally some other Mongolian and Russian mathematical symbols:
+%    \begin{macrocode}
+\def\Prob{\mathop{\kern\z@\mathsf{P}}\nolimits}
+\def\Variance{\mathop{\kern\z@\mathsf{D}}\nolimits}
+\def\nsd{\mathop{\cyrmathrm{\cyrn.\cyrs.\cyrd.}}\nolimits}
+\def\nsk{\mathop{\cyrmathrm{\cyrn.\cyrs.\cyrk.}}\nolimits}
+\def\NSD{\mathop{\cyrmathrm{\CYRN\CYRS\CYRD}}\nolimits}
+\def\NSK{\mathop{\cyrmathrm{\CYRN\CYRS\CYRK}}\nolimits}
+  \def\nod{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrd.}}\nolimits}
+  \def\nok{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrk.}}\nolimits}
+  \def\NOD{\mathop{\cyrmathrm{\CYRN\CYRO\CYRD}}\nolimits}
+  \def\NOK{\mathop{\cyrmathrm{\CYRN\CYRO\CYRK}}\nolimits}
+\def\Proj{\mathop{\cyrmathrm{\CYRP\cyrr}}\nolimits}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareRobustCommand{\No}{%
+   \ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi}
+%    \end{macrocode}
+%
+%    The macro |\ldf@finish| takes care of looking for a configuration file,
+%    setting the main language to be switched on at |\begin{document}| and
+%    resetting the category code of \texttt{@} to its original value.
+%
+%    \begin{macrocode}
+\ldf@finish{mongolian}
+%</code>
+%    \end{macrocode}
+%
+% \Finale
+%%
+%% \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         \~}
+%%
+\endinput 
\ No newline at end of file
-- 
cgit v1.2.3

