1@c -*- coding: utf-8; mode: texinfo; -*-
2@c
3@c cyrillic.itexi
4@c
5@c
6@c Cyrillic support for texinfo, using UTF-8 input encoding and LH fonts,
7@c with all the restrictions for non-CM fonts (this is, no kerning and no
8@c hyphenation).
9@c
10@c For outline fonts, we also use the cm-super family; the setup is the same
11@c as with the EC fonts except that the prefix is not `ec' but `la'.
12
13@tex
14
15\gdef\cyrfont{%
16  % Use the EC size information.
17  \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
18  \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
19  \ifmonospace
20    \font\thiscyrfont = latt\ecsize \space at \nominalsize
21  \else
22    \ifx\curfontstyle\bfstylename
23      \let\usebf\keywordtrue
24    \fi
25    \ifrmisbold
26      \let\usebf\keywordtrue
27    \fi
28    \ifx\usebf\keywordtrue
29      \font\thiscyrfont = lab\ifusingit{i}{x}\ecsize \space at \nominalsize
30    \else
31      \font\thiscyrfont = la\ifusingit{ti}{rm}\ecsize \space at \nominalsize
32    \fi
33  \fi
34  \thiscyrfont
35}
36
37
38% Glyph names, taken from LaTeX's `t2aenc.def' font encoding definition file
39% for T2A encoding.
40
41\gdef\textnumero{{\cyrfont \char 157}}
42\gdef\CYRpalochka{{\cyrfont \char 13}}
43
44\gdef\CYRA{{\cyrfont \char 192}}
45\gdef\cyra{{\cyrfont \char 224}}
46\gdef\CYRB{{\cyrfont \char 193}}
47\gdef\cyrb{{\cyrfont \char 225}}
48\gdef\CYRV{{\cyrfont \char 194}}
49\gdef\cyrv{{\cyrfont \char 226}}
50\gdef\CYRG{{\cyrfont \char 195}}
51\gdef\cyrg{{\cyrfont \char 227}}
52\gdef\CYRD{{\cyrfont \char 196}}
53\gdef\cyrd{{\cyrfont \char 228}}
54\gdef\CYRE{{\cyrfont \char 197}}
55\gdef\cyre{{\cyrfont \char 229}}
56\gdef\CYRZH{{\cyrfont \char 198}}
57\gdef\cyrzh{{\cyrfont \char 230}}
58\gdef\CYRZ{{\cyrfont \char 199}}
59\gdef\cyrz{{\cyrfont \char 231}}
60\gdef\CYRI{{\cyrfont \char 200}}
61\gdef\cyri{{\cyrfont \char 232}}
62\gdef\CYRISHRT{{\cyrfont \char 201}}
63\gdef\cyrishrt{{\cyrfont \char 233}}
64\gdef\CYRK{{\cyrfont \char 202}}
65\gdef\cyrk{{\cyrfont \char 234}}
66\gdef\CYRL{{\cyrfont \char 203}}
67\gdef\cyrl{{\cyrfont \char 235}}
68\gdef\CYRM{{\cyrfont \char 204}}
69\gdef\cyrm{{\cyrfont \char 236}}
70\gdef\CYRN{{\cyrfont \char 205}}
71\gdef\cyrn{{\cyrfont \char 237}}
72\gdef\CYRO{{\cyrfont \char 206}}
73\gdef\cyro{{\cyrfont \char 238}}
74\gdef\CYRP{{\cyrfont \char 207}}
75\gdef\cyrp{{\cyrfont \char 239}}
76\gdef\CYRR{{\cyrfont \char 208}}
77\gdef\cyrr{{\cyrfont \char 240}}
78\gdef\CYRS{{\cyrfont \char 209}}
79\gdef\cyrs{{\cyrfont \char 241}}
80\gdef\CYRT{{\cyrfont \char 210}}
81\gdef\cyrt{{\cyrfont \char 242}}
82\gdef\CYRU{{\cyrfont \char 211}}
83\gdef\cyru{{\cyrfont \char 243}}
84\gdef\CYRF{{\cyrfont \char 212}}
85\gdef\cyrf{{\cyrfont \char 244}}
86\gdef\CYRH{{\cyrfont \char 213}}
87\gdef\cyrh{{\cyrfont \char 245}}
88\gdef\CYRC{{\cyrfont \char 214}}
89\gdef\cyrc{{\cyrfont \char 246}}
90\gdef\CYRCH{{\cyrfont \char 215}}
91\gdef\cyrch{{\cyrfont \char 247}}
92\gdef\CYRSH{{\cyrfont \char 216}}
93\gdef\cyrsh{{\cyrfont \char 248}}
94\gdef\CYRSHCH{{\cyrfont \char 217}}
95\gdef\cyrshch{{\cyrfont \char 249}}
96\gdef\CYRHRDSN{{\cyrfont \char 218}}
97\gdef\cyrhrdsn{{\cyrfont \char 250}}
98\gdef\CYRERY{{\cyrfont \char 219}}
99\gdef\cyrery{{\cyrfont \char 251}}
100\gdef\CYRSFTSN{{\cyrfont \char 220}}
101\gdef\cyrsftsn{{\cyrfont \char 252}}
102\gdef\CYREREV{{\cyrfont \char 221}}
103\gdef\cyrerev{{\cyrfont \char 253}}
104\gdef\CYRYU{{\cyrfont \char 222}}
105\gdef\cyryu{{\cyrfont \char 254}}
106\gdef\CYRYA{{\cyrfont \char 223}}
107\gdef\cyrya{{\cyrfont \char 255}}
108\gdef\CYRGUP{{\cyrfont \char 128}}
109\gdef\cyrgup{{\cyrfont \char 160}}
110\gdef\CYRGHCRS{{\cyrfont \char 129}}
111\gdef\cyrghcrs{{\cyrfont \char 161}}
112\gdef\CYRDJE{{\cyrfont \char 130}}
113\gdef\cyrdje{{\cyrfont \char 162}}
114\gdef\CYRTSHE{{\cyrfont \char 131}}
115\gdef\cyrtshe{{\cyrfont \char 163}}
116\gdef\CYRSHHA{{\cyrfont \char 132}}
117\gdef\cyrshha{{\cyrfont \char 164}}
118\gdef\CYRZHDSC{{\cyrfont \char 133}}
119\gdef\cyrzhdsc{{\cyrfont \char 165}}
120\gdef\CYRZDSC{{\cyrfont \char 134}}
121\gdef\cyrzdsc{{\cyrfont \char 166}}
122\gdef\CYRLJE{{\cyrfont \char 135}}
123\gdef\cyrlje{{\cyrfont \char 167}}
124\gdef\CYRYI{{\cyrfont \char 136}}
125\gdef\cyryi{{\cyrfont \char 168}}
126\gdef\CYRKDSC{{\cyrfont \char 137}}
127\gdef\cyrkdsc{{\cyrfont \char 169}}
128\gdef\CYRKBEAK{{\cyrfont \char 138}}
129\gdef\cyrkbeak{{\cyrfont \char 170}}
130\gdef\CYRKVCRS{{\cyrfont \char 139}}
131\gdef\cyrkvcrs{{\cyrfont \char 171}}
132\gdef\CYRAE{{\cyrfont \char 140}}
133\gdef\cyrae{{\cyrfont \char 172}}
134\gdef\CYRNDSC{{\cyrfont \char 141}}
135\gdef\cyrndsc{{\cyrfont \char 173}}
136\gdef\CYRNG{{\cyrfont \char 142}}
137\gdef\cyrng{{\cyrfont \char 174}}
138\gdef\CYRDZE{{\cyrfont \char 143}}
139\gdef\cyrdze{{\cyrfont \char 175}}
140\gdef\CYROTLD{{\cyrfont \char 144}}
141\gdef\cyrotld{{\cyrfont \char 176}}
142\gdef\CYRSDSC{{\cyrfont \char 145}}
143\gdef\cyrsdsc{{\cyrfont \char 177}}
144\gdef\CYRUSHRT{{\cyrfont \char 146}}
145\gdef\cyrushrt{{\cyrfont \char 178}}
146\gdef\CYRY{{\cyrfont \char 147}}
147\gdef\cyry{{\cyrfont \char 179}}
148\gdef\CYRYHCRS{{\cyrfont \char 148}}
149\gdef\cyryhcrs{{\cyrfont \char 180}}
150\gdef\CYRHDSC{{\cyrfont \char 149}}
151\gdef\cyrhdsc{{\cyrfont \char 181}}
152\gdef\CYRDZHE{{\cyrfont \char 150}}
153\gdef\cyrdzhe{{\cyrfont \char 182}}
154\gdef\CYRCHVCRS{{\cyrfont \char 151}}
155\gdef\cyrchvcrs{{\cyrfont \char 183}}
156\gdef\CYRCHRDSC{{\cyrfont \char 152}}
157\gdef\cyrchrdsc{{\cyrfont \char 184}}
158\gdef\CYRIE{{\cyrfont \char 153}}
159\gdef\cyrie{{\cyrfont \char 185}}
160\gdef\CYRSCHWA{{\cyrfont \char 154}}
161\gdef\cyrschwa{{\cyrfont \char 186}}
162\gdef\CYRNJE{{\cyrfont \char 155}}
163\gdef\cyrnje{{\cyrfont \char 187}}
164\gdef\CYRYO{{\cyrfont \char 156}}
165\gdef\cyryo{{\cyrfont \char 188}}
166\gdef\CYRII{{\cyrfont \char 73}}
167\gdef\cyrii{{\cyrfont \char 105}}
168\gdef\CYRJE{{\cyrfont \char 74}}
169\gdef\cyrje{{\cyrfont \char 106}}
170\gdef\CYRQ{{\cyrfont \char 81}}
171\gdef\cyrq{{\cyrfont \char 113}}
172\gdef\CYRW{{\cyrfont \char 87}}
173\gdef\cyrw{{\cyrfont \char 119}}
174
175% Composite glyphs.
176
177\gdef\CYREGRAVE{{\cyrfont \accent 0 \char 197}}
178\gdef\cyregrave{{\cyrfont \accent 0 \char 229}}
179\gdef\CYRGGRAVE{{\cyrfont \accent 0 \char 195}}
180\gdef\cyrggrave{{\cyrfont \accent 0 \char 227}}
181\gdef\CYRKGRAVE{{\cyrfont \accent 0 \char 202}}
182\gdef\cyrkgrave{{\cyrfont \accent 0 \char 234}}
183\gdef\CYRIGRAVE{{\cyrfont \accent 0 \char 200}}
184\gdef\cyrigrave{{\cyrfont \accent 0 \char 232}}
185
186\gdef\CYRZHBREVE{{\cyrfont \accent 20 \char 198}}
187\gdef\cyrzhbreve{{\cyrfont \accent 20 \char 230}}
188\gdef\CYRABREVE{{\cyrfont \accent 20 \char 192}}
189\gdef\cyrabreve{{\cyrfont \accent 20 \char 224}}
190\gdef\CYREBREVE{{\cyrfont \accent 20 \char 197}}
191\gdef\cyrebreve{{\cyrfont \accent 20 \char 229}}
192
193\gdef\CYRADIAERESIS{{\cyrfont \accent 4 \char 192}}
194\gdef\cyradiaeresis{{\cyrfont \accent 4 \char 224}}
195\gdef\CYRSCHWADIAERESIS{{\cyrfont \accent 4 \char 154}}
196\gdef\cyrschwadiaeresis{{\cyrfont \accent 4 \char 186}}
197\gdef\CYRZHDIAERESIS{{\cyrfont \accent 4 \char 198}}
198\gdef\cyrzhdiaeresis{{\cyrfont \accent 4 \char 230}}
199\gdef\CYRZDIAERESIS{{\cyrfont \accent 4 \char 199}}
200\gdef\cyrzdiaeresis{{\cyrfont \accent 4 \char 231}}
201\gdef\CYRIDIAERESIS{{\cyrfont \accent 4 \char 200}}
202\gdef\cyridiaeresis{{\cyrfont \accent 4 \char 232}}
203\gdef\CYRODIAERESIS{{\cyrfont \accent 4 \char 206}}
204\gdef\cyrodiaeresis{{\cyrfont \accent 4 \char 238}}
205\gdef\CYREREVDIAERESIS{{\cyrfont \accent 4 \char 221}}
206\gdef\cyrerevdiaeresis{{\cyrfont \accent 4 \char 253}}
207\gdef\CYRUDIAERESIS{{\cyrfont \accent 4 \char 211}}
208\gdef\cyrudiaeresis{{\cyrfont \accent 4 \char 243}}
209\gdef\CYRCHDIAERESIS{{\cyrfont \accent 4 \char 215}}
210\gdef\cyrchdiaeresis{{\cyrfont \accent 4 \char 247}}
211\gdef\CYRERYDIAERESIS{{\cyrfont \accent 4 \char 219}}
212\gdef\cyrerydiaeresis{{\cyrfont \accent 4 \char 251}}
213
214\gdef\CYRIMACRON{{\cyrfont \accent 9 \char 200}}
215\gdef\cyrimacron{{\cyrfont \accent 9 \char 232}}
216\gdef\CYRUMACRON{{\cyrfont \accent 9 \char 211}}
217\gdef\cyrumacron{{\cyrfont \accent 9 \char 243}}
218
219\gdef\CYRUDOUBLEACUTE{{\cyrfont \accent 5 \char 211}}
220\gdef\cyrudoubleacute{{\cyrfont \accent 5 \char 243}}
221
222
223% UTF-8 mappings, taken from LaTeX's t2aenc.dfu input encoding definition
224% file for T2A encoding (adapted to use the above composite glyph names).
225
226\gdef\cyrunicodechardefs{%
227  \DeclareUnicodeCharacter{0400}{\CYREGRAVE}%
228  \DeclareUnicodeCharacter{0401}{\CYRYO}%
229  \DeclareUnicodeCharacter{0402}{\CYRDJE}%
230  \DeclareUnicodeCharacter{0403}{\CYRGGRAVE}%
231  \DeclareUnicodeCharacter{0404}{\CYRIE}%
232  \DeclareUnicodeCharacter{0405}{\CYRDZE}%
233  \DeclareUnicodeCharacter{0406}{\CYRII}%
234  \DeclareUnicodeCharacter{0407}{\CYRYI}%
235  \DeclareUnicodeCharacter{0408}{\CYRJE}%
236  \DeclareUnicodeCharacter{0409}{\CYRLJE}%
237  \DeclareUnicodeCharacter{040A}{\CYRNJE}%
238  \DeclareUnicodeCharacter{040B}{\CYRTSHE}%
239  \DeclareUnicodeCharacter{040C}{\CYRKGRAVE}%
240  \DeclareUnicodeCharacter{040D}{\CYRIGRAVE}%
241  \DeclareUnicodeCharacter{040E}{\CYRUSHRT}%
242  \DeclareUnicodeCharacter{040F}{\CYRDZHE}%
243  \DeclareUnicodeCharacter{0410}{\CYRA}%
244  \DeclareUnicodeCharacter{0411}{\CYRB}%
245  \DeclareUnicodeCharacter{0412}{\CYRV}%
246  \DeclareUnicodeCharacter{0413}{\CYRG}%
247  \DeclareUnicodeCharacter{0414}{\CYRD}%
248  \DeclareUnicodeCharacter{0415}{\CYRE}%
249  \DeclareUnicodeCharacter{0416}{\CYRZH}%
250  \DeclareUnicodeCharacter{0417}{\CYRZ}%
251  \DeclareUnicodeCharacter{0418}{\CYRI}%
252  \DeclareUnicodeCharacter{0419}{\CYRISHRT}%
253  \DeclareUnicodeCharacter{041A}{\CYRK}%
254  \DeclareUnicodeCharacter{041B}{\CYRL}%
255  \DeclareUnicodeCharacter{041C}{\CYRM}%
256  \DeclareUnicodeCharacter{041D}{\CYRN}%
257  \DeclareUnicodeCharacter{041E}{\CYRO}%
258  \DeclareUnicodeCharacter{041F}{\CYRP}%
259  \DeclareUnicodeCharacter{0420}{\CYRR}%
260  \DeclareUnicodeCharacter{0421}{\CYRS}%
261  \DeclareUnicodeCharacter{0422}{\CYRT}%
262  \DeclareUnicodeCharacter{0423}{\CYRU}%
263  \DeclareUnicodeCharacter{0424}{\CYRF}%
264  \DeclareUnicodeCharacter{0425}{\CYRH}%
265  \DeclareUnicodeCharacter{0426}{\CYRC}%
266  \DeclareUnicodeCharacter{0427}{\CYRCH}%
267  \DeclareUnicodeCharacter{0428}{\CYRSH}%
268  \DeclareUnicodeCharacter{0429}{\CYRSHCH}%
269  \DeclareUnicodeCharacter{042A}{\CYRHRDSN}%
270  \DeclareUnicodeCharacter{042B}{\CYRERY}%
271  \DeclareUnicodeCharacter{042C}{\CYRSFTSN}%
272  \DeclareUnicodeCharacter{042D}{\CYREREV}%
273  \DeclareUnicodeCharacter{042E}{\CYRYU}%
274  \DeclareUnicodeCharacter{042F}{\CYRYA}%
275  \DeclareUnicodeCharacter{0430}{\cyra}%
276  \DeclareUnicodeCharacter{0431}{\cyrb}%
277  \DeclareUnicodeCharacter{0432}{\cyrv}%
278  \DeclareUnicodeCharacter{0433}{\cyrg}%
279  \DeclareUnicodeCharacter{0434}{\cyrd}%
280  \DeclareUnicodeCharacter{0435}{\cyre}%
281  \DeclareUnicodeCharacter{0436}{\cyrzh}%
282  \DeclareUnicodeCharacter{0437}{\cyrz}%
283  \DeclareUnicodeCharacter{0438}{\cyri}%
284  \DeclareUnicodeCharacter{0439}{\cyrishrt}%
285  \DeclareUnicodeCharacter{043A}{\cyrk}%
286  \DeclareUnicodeCharacter{043B}{\cyrl}%
287  \DeclareUnicodeCharacter{043C}{\cyrm}%
288  \DeclareUnicodeCharacter{043D}{\cyrn}%
289  \DeclareUnicodeCharacter{043E}{\cyro}%
290  \DeclareUnicodeCharacter{043F}{\cyrp}%
291  \DeclareUnicodeCharacter{0440}{\cyrr}%
292  \DeclareUnicodeCharacter{0441}{\cyrs}%
293  \DeclareUnicodeCharacter{0442}{\cyrt}%
294  \DeclareUnicodeCharacter{0443}{\cyru}%
295  \DeclareUnicodeCharacter{0444}{\cyrf}%
296  \DeclareUnicodeCharacter{0445}{\cyrh}%
297  \DeclareUnicodeCharacter{0446}{\cyrc}%
298  \DeclareUnicodeCharacter{0447}{\cyrch}%
299  \DeclareUnicodeCharacter{0448}{\cyrsh}%
300  \DeclareUnicodeCharacter{0449}{\cyrshch}%
301  \DeclareUnicodeCharacter{044A}{\cyrhrdsn}%
302  \DeclareUnicodeCharacter{044B}{\cyrery}%
303  \DeclareUnicodeCharacter{044C}{\cyrsftsn}%
304  \DeclareUnicodeCharacter{044D}{\cyrerev}%
305  \DeclareUnicodeCharacter{044E}{\cyryu}%
306  \DeclareUnicodeCharacter{044F}{\cyrya}%
307  \DeclareUnicodeCharacter{0450}{\cyregrave}%
308  \DeclareUnicodeCharacter{0451}{\cyryo}%
309  \DeclareUnicodeCharacter{0452}{\cyrdje}%
310  \DeclareUnicodeCharacter{0453}{\cyrggrave}%
311  \DeclareUnicodeCharacter{0454}{\cyrie}%
312  \DeclareUnicodeCharacter{0455}{\cyrdze}%
313  \DeclareUnicodeCharacter{0456}{\cyrii}%
314  \DeclareUnicodeCharacter{0457}{\cyryi}%
315  \DeclareUnicodeCharacter{0458}{\cyrje}%
316  \DeclareUnicodeCharacter{0459}{\cyrlje}%
317  \DeclareUnicodeCharacter{045A}{\cyrnje}%
318  \DeclareUnicodeCharacter{045B}{\cyrtshe}%
319  \DeclareUnicodeCharacter{045C}{\cyrkgrave}%
320  \DeclareUnicodeCharacter{045D}{\cyrigrave}%
321  \DeclareUnicodeCharacter{045E}{\cyrushrt}%
322  \DeclareUnicodeCharacter{045F}{\cyrdzhe}%
323  \DeclareUnicodeCharacter{0490}{\CYRGUP}%
324  \DeclareUnicodeCharacter{0491}{\cyrgup}%
325  \DeclareUnicodeCharacter{0492}{\CYRGHCRS}%
326  \DeclareUnicodeCharacter{0493}{\cyrghcrs}%
327  \DeclareUnicodeCharacter{0496}{\CYRZHDSC}%
328  \DeclareUnicodeCharacter{0497}{\cyrzhdsc}%
329  \DeclareUnicodeCharacter{0498}{\CYRZDSC}%
330  \DeclareUnicodeCharacter{0499}{\cyrzdsc}%
331  \DeclareUnicodeCharacter{049A}{\CYRKDSC}%
332  \DeclareUnicodeCharacter{049B}{\cyrkdsc}%
333  \DeclareUnicodeCharacter{049C}{\CYRKVCRS}%
334  \DeclareUnicodeCharacter{049D}{\cyrkvcrs}%
335  \DeclareUnicodeCharacter{04A0}{\CYRKBEAK}%
336  \DeclareUnicodeCharacter{04A1}{\cyrkbeak}%
337  \DeclareUnicodeCharacter{04A2}{\CYRNDSC}%
338  \DeclareUnicodeCharacter{04A3}{\cyrndsc}%
339  \DeclareUnicodeCharacter{04A4}{\CYRNG}%
340  \DeclareUnicodeCharacter{04A5}{\cyrng}%
341  \DeclareUnicodeCharacter{04AA}{\CYRSDSC}%
342  \DeclareUnicodeCharacter{04AB}{\cyrsdsc}%
343  \DeclareUnicodeCharacter{04AE}{\CYRY}%
344  \DeclareUnicodeCharacter{04AF}{\cyry}%
345  \DeclareUnicodeCharacter{04B0}{\CYRYHCRS}%
346  \DeclareUnicodeCharacter{04B1}{\cyryhcrs}%
347  \DeclareUnicodeCharacter{04B2}{\CYRHDSC}%
348  \DeclareUnicodeCharacter{04B3}{\cyrhdsc}%
349  \DeclareUnicodeCharacter{04B6}{\CYRCHRDSC}%
350  \DeclareUnicodeCharacter{04B7}{\cyrchrdsc}%
351  \DeclareUnicodeCharacter{04B8}{\CYRCHVCRS}%
352  \DeclareUnicodeCharacter{04B9}{\cyrchvcrs}%
353  \DeclareUnicodeCharacter{04BA}{\CYRSHHA}%
354  \DeclareUnicodeCharacter{04BB}{\cyrshha}%
355  \DeclareUnicodeCharacter{04C0}{\CYRpalochka}%
356  \DeclareUnicodeCharacter{04C1}{\CYRZHBREVE}%
357  \DeclareUnicodeCharacter{04C2}{\cyrzhbreve}%
358  \DeclareUnicodeCharacter{04D0}{\CYRABREVE}%
359  \DeclareUnicodeCharacter{04D1}{\cyrabreve}%
360  \DeclareUnicodeCharacter{04D2}{\CYRADIAERESIS}%
361  \DeclareUnicodeCharacter{04D3}{\cyradiaeresis}%
362  \DeclareUnicodeCharacter{04D4}{\CYRAE}%
363  \DeclareUnicodeCharacter{04D5}{\cyrae}%
364  \DeclareUnicodeCharacter{04D6}{\CYREBREVE}%
365  \DeclareUnicodeCharacter{04D7}{\cyrebreve}%
366  \DeclareUnicodeCharacter{04D8}{\CYRSCHWA}%
367  \DeclareUnicodeCharacter{04D9}{\cyrschwa}%
368  \DeclareUnicodeCharacter{04DA}{\CYRSCHWADIAERESIS}%
369  \DeclareUnicodeCharacter{04DB}{\cyrschwadiaeresis}%
370  \DeclareUnicodeCharacter{04DC}{\CYRZHDIAERESIS}%
371  \DeclareUnicodeCharacter{04DD}{\cyrzhdiaeresis}%
372  \DeclareUnicodeCharacter{04DE}{\CYRZDIAERESIS}%
373  \DeclareUnicodeCharacter{04DF}{\cyrzdiaeresis}%
374  \DeclareUnicodeCharacter{04E2}{\CYRIMACRON}%
375  \DeclareUnicodeCharacter{04E3}{\cyrimacron}%
376  \DeclareUnicodeCharacter{04E4}{\CYRIDIAERESIS}%
377  \DeclareUnicodeCharacter{04E5}{\cyridiaeresis}%
378  \DeclareUnicodeCharacter{04E6}{\CYRODIAERESIS}%
379  \DeclareUnicodeCharacter{04E7}{\cyrodiaeresis}%
380  \DeclareUnicodeCharacter{04E8}{\CYROTLD}%
381  \DeclareUnicodeCharacter{04E9}{\cyrotld}%
382  \DeclareUnicodeCharacter{04EC}{\CYREREVDIAERESIS}%
383  \DeclareUnicodeCharacter{04ED}{\cyrerevdiaeresis}%
384  \DeclareUnicodeCharacter{04EE}{\CYRUMACRON}%
385  \DeclareUnicodeCharacter{04EF}{\cyrumacron}%
386  \DeclareUnicodeCharacter{04F0}{\CYRUDIAERESIS}%
387  \DeclareUnicodeCharacter{04F1}{\cyrudiaeresis}%
388  \DeclareUnicodeCharacter{04F2}{\CYRUDOUBLEACUTE}%
389  \DeclareUnicodeCharacter{04F3}{\cyrudoubleacute}%
390  \DeclareUnicodeCharacter{04F4}{\CYRCHDIAERESIS}%
391  \DeclareUnicodeCharacter{04F5}{\cyrchdiaeresis}%
392  \DeclareUnicodeCharacter{04F8}{\CYRERYDIAERESIS}%
393  \DeclareUnicodeCharacter{04F9}{\cyrerydiaeresis}%
394%
395  \DeclareUnicodeCharacter{2116}{\textnumero}%
396}
397
398\toks0 = \expandafter{\cyrunicodechardefs}
399\toks2 = \expandafter{\unicodechardefs}
400\xdef\unicodechardefs{\the\toks0 \the\toks2}
401
402% Register Unicode and UTF-8 encoding definitions.
403% This macro gets executed immediately after ending the `tex` environment.
404\gdef\cyrunicodesetup{%
405  \iftxinativeunicodecapable
406    \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative
407    \cyrunicodechardefs
408    \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU
409    \cyrunicodechardefs
410  \else
411    \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterUTFviii
412    \cyrunicodechardefs
413  \fi}
414\aftergroup\cyrunicodesetup
415
416
417% Add all Cyrillic character names to \definedummies.
418
419\gdef\cyrdummies{%
420  \definedummyword\textnumero
421  \definedummyword\CYRpalochka
422%
423  \definedummyword\CYRA
424  \definedummyword\cyra
425  \definedummyword\CYRB
426  \definedummyword\cyrb
427  \definedummyword\CYRV
428  \definedummyword\cyrv
429  \definedummyword\CYRG
430  \definedummyword\cyrg
431  \definedummyword\CYRD
432  \definedummyword\cyrd
433  \definedummyword\CYRE
434  \definedummyword\cyre
435  \definedummyword\CYRZH
436  \definedummyword\cyrzh
437  \definedummyword\CYRZ
438  \definedummyword\cyrz
439  \definedummyword\CYRI
440  \definedummyword\cyri
441  \definedummyword\CYRISHRT
442  \definedummyword\cyrishrt
443  \definedummyword\CYRK
444  \definedummyword\cyrk
445  \definedummyword\CYRL
446  \definedummyword\cyrl
447  \definedummyword\CYRM
448  \definedummyword\cyrm
449  \definedummyword\CYRN
450  \definedummyword\cyrn
451  \definedummyword\CYRO
452  \definedummyword\cyro
453  \definedummyword\CYRP
454  \definedummyword\cyrp
455  \definedummyword\CYRR
456  \definedummyword\cyrr
457  \definedummyword\CYRS
458  \definedummyword\cyrs
459  \definedummyword\CYRT
460  \definedummyword\cyrt
461  \definedummyword\CYRU
462  \definedummyword\cyru
463  \definedummyword\CYRF
464  \definedummyword\cyrf
465  \definedummyword\CYRH
466  \definedummyword\cyrh
467  \definedummyword\CYRC
468  \definedummyword\cyrc
469  \definedummyword\CYRCH
470  \definedummyword\cyrch
471  \definedummyword\CYRSH
472  \definedummyword\cyrsh
473  \definedummyword\CYRSHCH
474  \definedummyword\cyrshch
475  \definedummyword\CYRHRDSN
476  \definedummyword\cyrhrdsn
477  \definedummyword\CYRERY
478  \definedummyword\cyrery
479  \definedummyword\CYRSFTSN
480  \definedummyword\cyrsftsn
481  \definedummyword\CYREREV
482  \definedummyword\cyrerev
483  \definedummyword\CYRYU
484  \definedummyword\cyryu
485  \definedummyword\CYRYA
486  \definedummyword\cyrya
487  \definedummyword\CYRGUP
488  \definedummyword\cyrgup
489  \definedummyword\CYRGHCRS
490  \definedummyword\cyrghcrs
491  \definedummyword\CYRDJE
492  \definedummyword\cyrdje
493  \definedummyword\CYRTSHE
494  \definedummyword\cyrtshe
495  \definedummyword\CYRSHHA
496  \definedummyword\cyrshha
497  \definedummyword\CYRZHDSC
498  \definedummyword\cyrzhdsc
499  \definedummyword\CYRZDSC
500  \definedummyword\cyrzdsc
501  \definedummyword\CYRLJE
502  \definedummyword\cyrlje
503  \definedummyword\CYRYI
504  \definedummyword\cyryi
505  \definedummyword\CYRKDSC
506  \definedummyword\cyrkdsc
507  \definedummyword\CYRKBEAK
508  \definedummyword\cyrkbeak
509  \definedummyword\CYRKVCRS
510  \definedummyword\cyrkvcrs
511  \definedummyword\CYRAE
512  \definedummyword\cyrae
513  \definedummyword\CYRNDSC
514  \definedummyword\cyrndsc
515  \definedummyword\CYRNG
516  \definedummyword\cyrng
517  \definedummyword\CYRDZE
518  \definedummyword\cyrdze
519  \definedummyword\CYROTLD
520  \definedummyword\cyrotld
521  \definedummyword\CYRSDSC
522  \definedummyword\cyrsdsc
523  \definedummyword\CYRUSHRT
524  \definedummyword\cyrushrt
525  \definedummyword\CYRY
526  \definedummyword\cyry
527  \definedummyword\CYRYHCRS
528  \definedummyword\cyryhcrs
529  \definedummyword\CYRHDSC
530  \definedummyword\cyrhdsc
531  \definedummyword\CYRDZHE
532  \definedummyword\cyrdzhe
533  \definedummyword\CYRCHVCRS
534  \definedummyword\cyrchvcrs
535  \definedummyword\CYRCHRDSC
536  \definedummyword\cyrchrdsc
537  \definedummyword\CYRIE
538  \definedummyword\cyrie
539  \definedummyword\CYRSCHWA
540  \definedummyword\cyrschwa
541  \definedummyword\CYRNJE
542  \definedummyword\cyrnje
543  \definedummyword\CYRYO
544  \definedummyword\cyryo
545  \definedummyword\CYRII
546  \definedummyword\cyrii
547  \definedummyword\CYRJE
548  \definedummyword\cyrje
549  \definedummyword\CYRQ
550  \definedummyword\cyrq
551  \definedummyword\CYRW
552  \definedummyword\cyrw
553%
554  \definedummyword\CYREGRAVE
555  \definedummyword\cyregrave
556  \definedummyword\CYRGGRAVE
557  \definedummyword\cyrggrave
558  \definedummyword\CYRKGRAVE
559  \definedummyword\cyrkgrave
560  \definedummyword\CYRIGRAVE
561  \definedummyword\cyrigrave
562%
563  \definedummyword\CYRZHBREVE
564  \definedummyword\cyrzhbreve
565  \definedummyword\CYRABREVE
566  \definedummyword\cyrabreve
567  \definedummyword\CYREBREVE
568  \definedummyword\cyrebreve
569%
570  \definedummyword\CYRADIAERESIS
571  \definedummyword\cyradiaeresis
572  \definedummyword\CYRSCHWADIAERESIS
573  \definedummyword\cyrschwadiaeresis
574  \definedummyword\CYRZHDIAERESIS
575  \definedummyword\cyrzhdiaeresis
576  \definedummyword\CYRZDIAERESIS
577  \definedummyword\cyrzdiaeresis
578  \definedummyword\CYRIDIAERESIS
579  \definedummyword\cyridiaeresis
580  \definedummyword\CYRODIAERESIS
581  \definedummyword\cyrodiaeresis
582  \definedummyword\CYREREVDIAERESIS
583  \definedummyword\cyrerevdiaeresis
584  \definedummyword\CYRUDIAERESIS
585  \definedummyword\cyrudiaeresis
586  \definedummyword\CYRCHDIAERESIS
587  \definedummyword\cyrchdiaeresis
588  \definedummyword\CYRERYDIAERESIS
589  \definedummyword\cyrerydiaeresis
590%
591  \definedummyword\CYRIMACRON
592  \definedummyword\cyrimacron
593  \definedummyword\CYRUMACRON
594  \definedummyword\cyrumacron
595%
596  \definedummyword\CYRUDOUBLEACUTE
597  \definedummyword\cyrudoubleacute
598}
599
600\toks0 = \expandafter{\cyrdummies}
601\toks2 = \expandafter{\definedummies}
602\xdef\definedummies{\the\toks0 \the\toks2}
603
604
605% Add all Cyrillic character names to \indexnofonts.
606%
607% TODO: Fix the index entries.  Right now, entries \CYRAAA and \cyrbbb get
608%       simply mapped to ZZZZAAA and zzzzbbb, respectively.
609
610\gdef\cyrindexnofonts{%
611  \def\textnumero{ZZZZNo}%
612  \def\CYRpalochka{ZZZZpalochka}%
613%
614  \def\CYRA{ZZZZA}%
615  \def\cyra{zzzza}%
616  \def\CYRB{ZZZZB}%
617  \def\cyrb{zzzzb}%
618  \def\CYRV{ZZZZV}%
619  \def\cyrv{zzzzv}%
620  \def\CYRG{ZZZZG}%
621  \def\cyrg{zzzzg}%
622  \def\CYRD{ZZZZD}%
623  \def\cyrd{zzzzd}%
624  \def\CYRE{ZZZZE}%
625  \def\cyre{zzzze}%
626  \def\CYRZH{ZZZZZH}%
627  \def\cyrzh{zzzzzh}%
628  \def\CYRZ{ZZZZZ}%
629  \def\cyrz{zzzzz}%
630  \def\CYRI{ZZZZI}%
631  \def\cyri{zzzzi}%
632  \def\CYRISHRT{ZZZZI}%
633  \def\cyrishrt{zzzzi}%
634  \def\CYRK{ZZZZK}%
635  \def\cyrk{zzzzk}%
636  \def\CYRL{ZZZZL}%
637  \def\cyrl{zzzzl}%
638  \def\CYRM{ZZZZM}%
639  \def\cyrm{zzzzm}%
640  \def\CYRN{ZZZZN}%
641  \def\cyrn{zzzzn}%
642  \def\CYRO{ZZZZO}%
643  \def\cyro{zzzzo}%
644  \def\CYRP{ZZZZP}%
645  \def\cyrp{zzzzp}%
646  \def\CYRR{ZZZZR}%
647  \def\cyrr{zzzzr}%
648  \def\CYRS{ZZZZS}%
649  \def\cyrs{zzzzs}%
650  \def\CYRT{ZZZZT}%
651  \def\cyrt{zzzzt}%
652  \def\CYRU{ZZZZU}%
653  \def\cyru{zzzzu}%
654  \def\CYRF{ZZZZF}%
655  \def\cyrf{zzzzf}%
656  \def\CYRH{ZZZZH}%
657  \def\cyrh{zzzzh}%
658  \def\CYRC{ZZZZC}%
659  \def\cyrc{zzzzc}%
660  \def\CYRCH{ZZZZCH}%
661  \def\cyrch{zzzzch}%
662  \def\CYRSH{ZZZZSH}%
663  \def\cyrsh{zzzzsh}%
664  \def\CYRSHCH{ZZZZSHCH}%
665  \def\cyrshch{zzzzshch}%
666  \def\CYRHRDSN{ZZZZHRDSN}%
667  \def\cyrhrdsn{zzzzhrdsn}%
668  \def\CYRERY{ZZZZERY}%
669  \def\cyrery{zzzzery}%
670  \def\CYRSFTSN{ZZZZSFTSN}%
671  \def\cyrsftsn{zzzzsftsn}%
672  \def\CYREREV{ZZZZEREV}%
673  \def\cyrerev{zzzzerev}%
674  \def\CYRYU{ZZZZYU}%
675  \def\cyryu{zzzzyu}%
676  \def\CYRYA{ZZZZYA}%
677  \def\cyrya{zzzzya}%
678  \def\CYRGUP{ZZZZGUP}%
679  \def\cyrgup{zzzzgup}%
680  \def\CYRGHCRS{ZZZZGHCRS}%
681  \def\cyrghcrs{zzzzghcrs}%
682  \def\CYRDJE{ZZZZDJE}%
683  \def\cyrdje{zzzzdje}%
684  \def\CYRTSHE{ZZZZTSHE}%
685  \def\cyrtshe{zzzztshe}%
686  \def\CYRSHHA{ZZZZSHHA}%
687  \def\cyrshha{zzzzshha}%
688  \def\CYRZHDSC{ZZZZZHDSC}%
689  \def\cyrzhdsc{zzzzzhdsc}%
690  \def\CYRZDSC{ZZZZZDSC}%
691  \def\cyrzdsc{zzzzzdsc}%
692  \def\CYRLJE{ZZZZLJE}%
693  \def\cyrlje{zzzzlje}%
694  \def\CYRYI{ZZZZYI}%
695  \def\cyryi{zzzzyi}%
696  \def\CYRKDSC{ZZZZKDSC}%
697  \def\cyrkdsc{zzzzkdsc}%
698  \def\CYRKBEAK{ZZZZKBEAK}%
699  \def\cyrkbeak{zzzzkbeak}%
700  \def\CYRKVCRS{ZZZZKVCRS}%
701  \def\cyrkvcrs{zzzzkvcrs}%
702  \def\CYRAE{ZZZZAE}%
703  \def\cyrae{zzzzae}%
704  \def\CYRNDSC{ZZZZNDSC}%
705  \def\cyrndsc{zzzzndsc}%
706  \def\CYRNG{ZZZZNG}%
707  \def\cyrng{zzzzng}%
708  \def\CYRDZE{ZZZZDZE}%
709  \def\cyrdze{zzzzdze}%
710  \def\CYROTLD{ZZZZOTLD}%
711  \def\cyrotld{zzzzotld}%
712  \def\CYRSDSC{ZZZZSDSC}%
713  \def\cyrsdsc{zzzzsdsc}%
714  \def\CYRUSHRT{ZZZZUSHRT}%
715  \def\cyrushrt{zzzzushrt}%
716  \def\CYRY{ZZZZY}%
717  \def\cyry{zzzzy}%
718  \def\CYRYHCRS{ZZZZYHCRS}%
719  \def\cyryhcrs{zzzzyhcrs}%
720  \def\CYRHDSC{ZZZZHDSC}%
721  \def\cyrhdsc{zzzzhdsc}%
722  \def\CYRDZHE{ZZZZDZHE}%
723  \def\cyrdzhe{zzzzdzhe}%
724  \def\CYRCHVCRS{ZZZZCHVCRS}%
725  \def\cyrchvcrs{zzzzchvcrs}%
726  \def\CYRCHRDSC{ZZZZCHRDSC}%
727  \def\cyrchrdsc{zzzzchrdsc}%
728  \def\CYRIE{ZZZZIE}%
729  \def\cyrie{zzzzie}%
730  \def\CYRSCHWA{ZZZZSCHWA}%
731  \def\cyrschwa{zzzzschwa}%
732  \def\CYRNJE{ZZZZNJE}%
733  \def\cyrnje{zzzznje}%
734  \def\CYRYO{ZZZZYO}%
735  \def\cyryo{zzzzyo}%
736  \def\CYRII{ZZZZII}%
737  \def\cyrii{zzzzii}%
738  \def\CYRJE{ZZZZJE}%
739  \def\cyrje{zzzzje}%
740  \def\CYRQ{ZZZZQ}%
741  \def\cyrq{zzzzq}%
742  \def\CYRW{ZZZZW}%
743  \def\cyrw{zzzzw}%
744%
745  \def\CYREGRAVE{ZZZZE}%
746  \def\cyregrave{zzzze}%
747  \def\CYRGGRAVE{ZZZZG}%
748  \def\cyrggrave{zzzzg}%
749  \def\CYRKGRAVE{ZZZZK}%
750  \def\cyrkgrave{zzzzk}%
751  \def\CYRIGRAVE{ZZZZI}%
752  \def\cyrigrave{zzzzi}%
753%
754  \def\CYRZHBREVE{ZZZZZH}%
755  \def\cyrzhbreve{zzzzzh}%
756  \def\CYRABREVE{ZZZZA}%
757  \def\cyrabreve{zzzza}%
758  \def\CYREBREVE{ZZZZE}%
759  \def\cyrebreve{zzzze}%
760%
761  \def\CYRADIAERESIS{ZZZZA}%
762  \def\cyradiaeresis{zzzza}%
763  \def\CYRSCHWADIAERESIS{ZZZZSCHWA}%
764  \def\cyrschwadiaeresis{zzzzschwa}%
765  \def\CYRZHDIAERESIS{ZZZZZH}%
766  \def\cyrzhdiaeresis{zzzzzh}%
767  \def\CYRZDIAERESIS{ZZZZZ}%
768  \def\cyrzdiaeresis{zzzzz}%
769  \def\CYRIDIAERESIS{ZZZZI}%
770  \def\cyridiaeresis{zzzzi}%
771  \def\CYRODIAERESIS{ZZZZO}%
772  \def\cyrodiaeresis{zzzzo}%
773  \def\CYREREVDIAERESIS{ZZZZEREV}%
774  \def\cyrerevdiaeresis{zzzzerev}%
775  \def\CYRUDIAERESIS{ZZZZU}%
776  \def\cyrudiaeresis{zzzzu}%
777  \def\CYRCHDIAERESIS{ZZZZCH}%
778  \def\cyrchdiaeresis{zzzzch}%
779  \def\CYRERYDIAERESIS{ZZZZERY}%
780  \def\cyrerydiaeresis{zzzzery}%
781%
782  \def\CYRIMACRON{ZZZZI}%
783  \def\cyrimacron{zzzzi}%
784  \def\CYRUMACRON{ZZZZU}%
785  \def\cyrumacron{zzzzu}%
786%
787  \def\CYRUDOUBLEACUTE{ZZZZU}%
788  \def\cyrudoubleacute{zzzzu}%
789}
790
791\toks0 = \expandafter{\cyrindexnofonts}
792\toks2 = \expandafter{\indexnofonts}
793\xdef\indexnofonts{\the\toks0 \the\toks2}
794
795@end tex
796
797@c end of cyrillic.itexi
798