1 The Mongolian Language: ??) Can Also Be Typeset by Using The ??)
1 The Mongolian Language: ??) Can Also Be Typeset by Using The ??)
1 The Mongolian Language: ??) Can Also Be Typeset by Using The ??)
The le mongolian.dtx1 denes all the language-specic macros for the Mongolian
language. It needs the le cyrcod for success documentation with Mongolian
encodings (see below).
For this language the character " is made active. In table 1 an overview is
given of its purpose.
"|
""--"--~
"--*
""
"~
"=
",
"
"
"<
">
code
\LdfInit{mongolian}{captionsmongolian}
\latinencoding
\ifx\l@mongolian\@undefined
\@nopatterns{Mongolian}
\adddialect\l@mongolian0
\fi
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 fontenc package is loaded later, then. . . too
bad!
7
\let\latinencoding\cf@encoding
The user may choose between dierent available Cyrillic encodingse.g., X2,
LCY, or LWN. Hopefully, X2 will eventually replace the two latter encodings (LCY
and LWN). If the user wants to use another font encoding than the default (T2A),
he has to load the corresponding le before mongolian.sty. This may be done in
the following way:
% override the default X2 encoding used in Babel
\usepackage[cpctt,OT1]{fontenc}
\usepackage[english,mongolian]{babel}
Note: for the Mongolian language, the T2A encoding is better than X2, because
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 last loaded encoding in
the list of supported Cyrillic encodings: OT2, X2, T2B, T2A, CTT, MNK, MLS, if any.
8
9
10
11
12
13
14
15
16
17
18
\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
Now, if \cyrillicencoding is undened, 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 denition les in the order from
less preferable to more preferable encodings. We use the lowercase names (i.e.,
lcyenc.def instead of LCYenc.def).
19
20
21
22
\ifx\cyrillicencoding\undefined
\IfFileExists{x2enc.def}{\def\cyrillicencoding{X2}}\relax
\IfFileExists{t2benc.def}{\def\cyrillicencoding{T2B}}\relax
\IfFileExists{t2aenc.def}{\def\cyrillicencoding{T2A}}\relax
\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
\lowercase
\expandafter{\expandafter\input\cyrillicencoding enc.def\relax}%
\fi
\fi
\PackageInfo{babel}
{Using \cyrillicencoding as a default Cyrillic encoding}%
35
36
37
38
39
40
41
42
43
44
45
46
47
48
\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
Since the X2 encoding does not contain Latin letters, we should make some
redenitions of LATEX macros which implicitly produce Latin letters.
49
\expandafter\ifx\csname T@X2\endcsname\relax\else
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).
50
\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}}%
51
52
53
54
55
56
57
58
59
60
61
Unfortunately, the commands \AA and \aa are not encoding dependent in
LATEX (unlike e.g., \oe or \DH). They are dened 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 X2).
62
63
64
65
66
\DeclareTextSymbolDefault{\AA}{OT1}
\DeclareTextSymbolDefault{\aa}{OT1}
\DeclareTextCommand{\aa}{OT1}{\r a}
\DeclareTextCommand{\AA}{OT1}{\r A}
\fi
The following block redenes 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.
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
\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
The user must use the 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 inputenc package
by \usepackage{inputenc}. We also removed \AtBeginDocument, so inputenc
should be used before babel.
93
94
95
96
97
98
99
100
\@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}
Now we dene two commands that oer the possibility to switch between
Cyrillic and Roman encodings.
\cyrillictext
\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 declarations, for
shorter peaces of text the commands \textlatin and \textcyrillic can be
used.
101
102
103
104
\textcyrillic
\textlatin
%\DeclareRobustCommand{\latintext}{%
% \fontencoding{\latinencoding}\selectfont
% \def\encodingdefault{\latinencoding}}
\let\lat\latintext
These commands take an argument which is then typeset using the requested font
encoding.
105
106
\DeclareTextFontCommand{\textcyrillic}{\cyrillictext}
%\DeclareTextFontCommand{\textlatin}{\latintext}
%\ifx\ltxTeX\undefined\let\ltxTeX\TeX\fi
%\ProvideTextCommandDefault{\TeX}{\textlatin{\ltxTeX}}
%\ifx\ltxLaTeX\undefined\let\ltxLaTeX\LaTeX\fi
%\ProvideTextCommandDefault{\LaTeX}{\textlatin{\ltxLaTeX}}
The next step consists of dening commands to switch to (and from) the Mongolian language.
\captionsmongolian
The macro \captionsmongolian denes all strings used in the four standard
document classes provided with LATEX. The two commands \cyr and \lat activate
Cyrillic resp. Latin encoding.
111
112
113
114
115
116
117
\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}}%
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
\datemongolian
\extrasmongolian
\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}}%
}
\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}}
The macro \extrasmongolian will perform all the extra denitions needed for
the Mongolian language. The macro \noextrasmongolian is used to cancel the
actions of \extrasmongolian.
The rst action we dene is to switch on the selected Cyrillic encoding whenever
we enter mongolian.
150
\addto\extrasmongolian{\cyrillictext}
When the encoding denition le was processed by LATEX the current font
encoding is stored in \latinencoding, assuming that LATEX uses T1 or OT1 as
default. Therefore we switch back to \latinencoding whenever the Mongolian
language is no longer active.
151
\addto\noextrasmongolian{\latintext}
\addto\extrasmongolian{\lccode\=\}
\addto\noextrasmongolian{\lccode\=0}
\verbatim@font
In order to get both Latin and Cyrillic letters in verbatim text we need to change
the denition of an internal LATEX command somewhat:
154
155
156
157
158
159
160
%\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}}
frenchpunct
\initiate@active@char{:}
\initiate@active@char{;}
/frenchpunct
frenchpunct | spanishligs
\initiate@active@char{!}
\initiate@active@char{?}
/frenchpunct | spanishligs
\initiate@active@char{"}
The code above is necessary because we need extra active characters. The
character " is used as indicated in table 1.
We specify that the Mongolian group of shorthands should be used.
170
\addto\extrasmongolian{\languageshorthands{mongolian}}
These characters are turned on once, later their denition may vary.
171
172
173
174
175
176
177
178
\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{"}}
\mongolian@sh@;@
\mongolian@sh@:@
\mongolian@sh@!@
\mongolian@sh@?@
spanishligs
\declare@shorthand{mongolian}{?}{\UseTextSymbol{OT1}\textquestiondown}
\declare@shorthand{mongolian}{!}{\UseTextSymbol{OT1}\textexclamdown}
/spanishligs
We have to reduce the amount of white space before ;, : and !. This should only
happen in horizontal mode, hence the test with \ifhmode.
183
184
185
frenchpunct
\declare@shorthand{mongolian}{;}{%
\ifhmode
\ifdim\lastskip>\z@
\unskip\nobreak\kern.1em
\else
\FDP@thinspace
\fi
\fi
\string;}
\declare@shorthand{mongolian}{:}{%
\ifhmode
\ifdim\lastskip>\z@
\unskip\nobreak\kern.1em
\else
\FDP@thinspace
\fi
\fi
\string:}
\declare@shorthand{mongolian}{!}{%
\ifhmode
\ifdim\lastskip>\z@
\unskip\nobreak\kern.1em
\else
\FDP@thinspace
\fi
\fi
\string!}
211
212
213
214
215
216
217
218
219
\AutoSpaceBeforeFDP
\NoAutoSpaceBeforeFDP
\FDP@thinspace
\FDPon
\FDPoff
\def\AutoSpaceBeforeFDP{%
\def\FDP@thinspace{\nobreak\kern.1em}}
\def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty}
\AutoSpaceBeforeFDP
The next macros allow to switch on/o activeness of double punctuation signs.
224
225
226
227
228
229
230
231
\system@sh@:@
\system@sh@!@
\system@sh@?@
\system@sh@;@
\declare@shorthand{mongolian}{?}{%
\ifhmode
\ifdim\lastskip>\z@
\unskip\nobreak\kern.1em
\else
\FDP@thinspace
\fi
\fi
\string?}
\def\FDPon{\bbl@activate{:}%
\bbl@activate{;}%
\bbl@activate{?}%
\bbl@activate{!}}
\def\FDPoff{\bbl@deactivate{:}%
\bbl@deactivate{;}%
\bbl@deactivate{?}%
\bbl@deactivate{!}}
When the active characters appear in an environment where their Mongolian behaviour is not wanted they should give an expected result. Therefore we dene
shorthands at system level as well.
232
233
234
235
236
237
238
\declare@shorthand{system}{:}{\string:}
\declare@shorthand{system}{;}{\string;}
/frenchpunct
frenchpunct&!spanishligs
\declare@shorthand{system}{!}{\string!}
\declare@shorthand{system}{?}{\string?}
/frenchpunct&!spanishligs
We save the original double quote character in \dq to keep it available, the math
accent \" can now be typed as ".
239
240
241
242
243
\begingroup \catcode\"12
\def\reserved@a{\endgroup
\def\@SS{\mathchar"7019 }
\def\dq{"}}
\reserved@a
Now we can dene the doublequote macros: german and french quotes. We
use denitions of these quotes made in babel.sty. The french quotes are contained
in the T2* encodings.
244
245
246
247
\declare@shorthand{mongolian}{"}{\glqq}
\declare@shorthand{mongolian}{"}{\grqq}
\declare@shorthand{mongolian}{"<}{\flqq}
\declare@shorthand{mongolian}{">}{\frqq}
\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}{}}
The next two macros for "- and "--- are somewhat dierent. We must check
whether the second token is a hyphen character:
254
\declare@shorthand{mongolian}{"-}{%
\def\mongolian@sh@tmp{%
\if\mongolian@sh@next-\expandafter\mongolian@sh@emdash
\else\expandafter\mongolian@sh@hyphen\fi
}%
TEX looks for the next token after the rst -: the meaning of this token is
written to \mongolian@sh@next and \mongolian@sh@tmp is called.
259
\futurelet\mongolian@sh@next\mongolian@sh@tmp}
Here are the denitions of hyphen and emdash. First the hyphen:
260
261
\def\mongolian@sh@hyphen{%
\nobreak\-\bbl@allowhyphens}
For the emdash denition, there are the two parameters: we must eat two
last hyphen signs of our emdash. . . :
262
\cdash
\def\mongolian@sh@emdash#1#2{\cdash-#1#2}
second parameter (or third for \cdash) shows what kind of emdash to create in
next step
"---
270
271
272
"--~
273
274
\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
\nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
"--*
275
276
277
\cyrdash
for denoting direct speech (a space like \enskip must follow the emdash);
\def\@Ccdash{\leavevmode
\nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
%\fi
Finally the macro for body of the Cyrillic emdash. The \cyrdash macro will
be dened in case this macro hasnt been dened in a fontenc le. For T2* fonts,
cyrdash will be placed in the code of the English emdash thus it uses ligature ---.
278
279
280
281
% Is there an IF necessary?
\ifx\cyrdash\undefined
\def\cyrdash{\hbox to.8em{--\hss--}}
\fi
Here a really new macroto place thinspace between initials. This macro used
instead of \, allows hyphenation in the following surname.
282
\mdqon
\mdqoff
%\declare@shorthand{mongolian}{",}{\nobreak\hskip.2em\ignorespaces}
\def\mdqon{\bbl@activate{"}}
\def\mdqoff{\bbl@deactivate{"}}
\providehyphenmins{\CurrentOption}{\tw@\tw@}
% temporary hack:
\ifx\englishhyphenmins\undefined
\def\englishhyphenmins{\tw@\thr@@}
\fi
Now the action \extrasmongolian has to execute is to make sure that the
command \frenchspacing is in eect. If this is not the case the execution of
\noextrasmongolian will switch it o again.
290
291
\addto\extrasmongolian{\bbl@frenchspacing}
\addto\noextrasmongolian{\bbl@nonfrenchspacing}
Next we add a new enumeration style for Mongolian manuscripts with Cyrillic
letters, and later on we dene some math operator names in accordance with
Mongolian and Russian typesetting traditions.
11
\Useg
We begin by dening \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.
292
293
294
295
296
297
298
\useg
\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}
\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}
Set up default Cyrillic math alphabets. The math groups for cyrillic letters are
dened in the encoding denition les. First, declare a new alphabet for symbols,
\cyrmathrm, based on the symbol font for Cyrillic letters dened in the encoding
denition le. Note, that by default Cyrillic letters are taken from upright font in
math mode (unlike Latin letters).
306
307
308
309
310
%\RequirePackage{textmath}
\@ifundefined{sym\cyrillicencoding letters}{}{%
\SetSymbolFont{\cyrillicencoding letters}{bold}\cyrillicencoding
\rmdefault\bfdefault\updefault
\DeclareSymbolFontAlphabet\cyrmathrm{\cyrillicencoding letters}
\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
}
Some math functions in Mongolian and Russian math books have other names:
e.g., sinh in Russian is written as sh etc. So we dene a number of new math
operators.
\sinh:
325
\def\sh{\mathop{\operator@font sh}\nolimits}
12
\cosh:
326
\def\ch{\mathop{\operator@font ch}\nolimits}
\tan:
327
\def\tg{\mathop{\operator@font tg}\nolimits}
\arctan:
328
\def\arctg{\mathop{\operator@font arctg}\nolimits}
arcctg:
329
\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
\addto\extrasmongolian{%
\babel@save{\th}%
\let\ltx@th\th
\def\th{\textormath{\ltx@th}%
{\mathop{\operator@font th}\nolimits}}%
}
\cot:
336
\def\ctg{\mathop{\operator@font ctg}\nolimits}
\coth:
337
\def\cth{\mathop{\operator@font cth}\nolimits}
\csc:
338
\def\cosec{\mathop{\operator@font cosec}\nolimits}
339
\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}
\DeclareRobustCommand{\No}{%
\ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi}
The macro \ldf@finish takes care of looking for a conguration le, setting
the main language to be switched on at \begin{document} and resetting the
category code of @ to its original value.
352
353
\ldf@finish{mongolian}
/code
13