% File cyruchardefs.def % Cyrillic letter TeX definitions for XeTeX and LuaTeX % % Adapted from xecyr.sty by Alexey Shipunov % https://ctan.org/tex-archive/macros/xetex/latex/xecyr % % The following definitions hav been provided % by Enrico Greogorie (egreg) on % https://tex.stackexchange.com/a/455124 % Retrieved 2026-03-16, License CC BY-SA 4.0 % % This definition set is complete for all Slavic Cyrillic % languages (Russian, Ukrainian, Belorussian, % Rusyn, Serbian, Macedonian and Bulgarian alphabets). % % It has not been confirmed as complete, but might be, for those % non-Slavic Cyrillic languages: % Ossetian, Khalka, Buryat, Kalmyk, Kyrgyz, Tatar, Uzbek % Azerbaijani, Kazakh, Abkhaz, Chukchi. % \ProvidesFile{cyruchardefs.def} [2026/03/16 % Cyrillic letter TeX definitions for XeTeX and LuaTeX] %%% Part I %%% Cyrillic letters defined as a continuous stretch %%% in Unicode and most common 8-bit encodings which define them: \DeclareTextSymbol{\CYRA}\UnicodeEncodingName{"0410} % А \DeclareTextSymbol{\cyra}\UnicodeEncodingName{"0430} % а \DeclareTextSymbol{\CYRB}\UnicodeEncodingName{"0411} % Б \DeclareTextSymbol{\cyrb}\UnicodeEncodingName{"0431} % б \DeclareTextSymbol{\CYRV}\UnicodeEncodingName{"0412} % В \DeclareTextSymbol{\cyrv}\UnicodeEncodingName{"0432} % в \DeclareTextSymbol{\CYRG}\UnicodeEncodingName{"0413} % Г \DeclareTextSymbol{\cyrg}\UnicodeEncodingName{"0433} % г \DeclareTextSymbol{\CYRD}\UnicodeEncodingName{"0414} % Д \DeclareTextSymbol{\cyrd}\UnicodeEncodingName{"0434} % д \DeclareTextSymbol{\CYRE}\UnicodeEncodingName{"0415} % Е \DeclareTextSymbol{\cyre}\UnicodeEncodingName{"0435} % е \DeclareTextSymbol{\CYRZH}\UnicodeEncodingName{"0416} % Ж \DeclareTextSymbol{\cyrzh}\UnicodeEncodingName{"0436} % ж \DeclareTextSymbol{\CYRZ}\UnicodeEncodingName{"0417} % З \DeclareTextSymbol{\cyrz}\UnicodeEncodingName{"0437} % з \DeclareTextSymbol{\CYRI}\UnicodeEncodingName{"0418} % И \DeclareTextSymbol{\cyri}\UnicodeEncodingName{"0438} % и \DeclareTextSymbol{\CYRISHRT}\UnicodeEncodingName{"0419} % Й \DeclareTextSymbol{\cyrishrt}\UnicodeEncodingName{"0439} % й \DeclareTextSymbol{\CYRK}\UnicodeEncodingName{"041A} % К \DeclareTextSymbol{\cyrk}\UnicodeEncodingName{"043A} % к \DeclareTextSymbol{\CYRL}\UnicodeEncodingName{"041B} % Л \DeclareTextSymbol{\cyrl}\UnicodeEncodingName{"043B} % л \DeclareTextSymbol{\CYRM}\UnicodeEncodingName{"041C} % М \DeclareTextSymbol{\cyrm}\UnicodeEncodingName{"043C} % м \DeclareTextSymbol{\CYRN}\UnicodeEncodingName{"041D} % Н \DeclareTextSymbol{\cyrn}\UnicodeEncodingName{"043D} % н \DeclareTextSymbol{\CYRO}\UnicodeEncodingName{"041E} % О \DeclareTextSymbol{\cyro}\UnicodeEncodingName{"043E} % о \DeclareTextSymbol{\CYRP}\UnicodeEncodingName{"041F} % П \DeclareTextSymbol{\cyrp}\UnicodeEncodingName{"043F} % п \DeclareTextSymbol{\CYRR}\UnicodeEncodingName{"0420} % Р \DeclareTextSymbol{\cyrr}\UnicodeEncodingName{"0440} % р \DeclareTextSymbol{\CYRS}\UnicodeEncodingName{"0421} % С \DeclareTextSymbol{\cyrs}\UnicodeEncodingName{"0441} % с \DeclareTextSymbol{\CYRT}\UnicodeEncodingName{"0422} % Т \DeclareTextSymbol{\cyrt}\UnicodeEncodingName{"0442} % т \DeclareTextSymbol{\CYRU}\UnicodeEncodingName{"0423} % У \DeclareTextSymbol{\cyru}\UnicodeEncodingName{"0443} % у \DeclareTextSymbol{\CYRF}\UnicodeEncodingName{"0424} % Ф \DeclareTextSymbol{\cyrf}\UnicodeEncodingName{"0444} % ф \DeclareTextSymbol{\CYRH}\UnicodeEncodingName{"0425} % Х \DeclareTextSymbol{\cyrh}\UnicodeEncodingName{"0445} % х \DeclareTextSymbol{\CYRC}\UnicodeEncodingName{"0426} % Ц \DeclareTextSymbol{\cyrc}\UnicodeEncodingName{"0446} % ц \DeclareTextSymbol{\CYRCH}\UnicodeEncodingName{"0427} % Ч \DeclareTextSymbol{\cyrch}\UnicodeEncodingName{"0447} % ч \DeclareTextSymbol{\CYRSH}\UnicodeEncodingName{"0428} % Ш \DeclareTextSymbol{\cyrsh}\UnicodeEncodingName{"0448} % ш \DeclareTextSymbol{\CYRSHCH}\UnicodeEncodingName{"0429} % Щ \DeclareTextSymbol{\cyrshch}\UnicodeEncodingName{"0449} % щ \DeclareTextSymbol{\CYRHRDSN}\UnicodeEncodingName{"042A} % Ъ \DeclareTextSymbol{\cyrhrdsn}\UnicodeEncodingName{"044A} % ъ \DeclareTextSymbol{\CYRERY}\UnicodeEncodingName{"042B} % Ы \DeclareTextSymbol{\cyrery}\UnicodeEncodingName{"044B} % ы \DeclareTextSymbol{\CYRSFTSN}\UnicodeEncodingName{"042C} % Ь \DeclareTextSymbol{\cyrsftsn}\UnicodeEncodingName{"044C} % ь \DeclareTextSymbol{\CYREREV}\UnicodeEncodingName{"042D} % Э \DeclareTextSymbol{\cyrerev}\UnicodeEncodingName{"044D} % э \DeclareTextSymbol{\CYRYU}\UnicodeEncodingName{"042E} % Ю \DeclareTextSymbol{\cyryu}\UnicodeEncodingName{"044E} % ю \DeclareTextSymbol{\CYRYA}\UnicodeEncodingName{"042F} % Я \DeclareTextSymbol{\cyrya}\UnicodeEncodingName{"044F} % я % %%% Part II %%% Cyrillic letters not defined as continuous stretches, %%% but available in common 8-bit cyrillic encodings, %%% like cp1251 and iso-8859-5, sorted by languages %%% they're used in for ease of checking: % % Common to many languages: \DeclareTextSymbol{\CYRYO}\UnicodeEncodingName{"0401} % Ё \DeclareTextSymbol{\cyryo}\UnicodeEncodingName{"0451} % ё % Belorussian-Uzbek: \DeclareTextSymbol{\CYRUSHRT}\UnicodeEncodingName{"040E} % Ў \DeclareTextSymbol{\cyrushrt}\UnicodeEncodingName{"045E} % ў % Ukrainian-Rusyn: \DeclareTextSymbol{\CYRGUP}\UnicodeEncodingName{"0490} % Ґ \DeclareTextSymbol{\cyrgup}\UnicodeEncodingName{"0491} % ґ \DeclareTextSymbol{\CYRYI}\UnicodeEncodingName{"0407} % Ї \DeclareTextSymbol{\cyryi}\UnicodeEncodingName{"0457} % ї \DeclareTextSymbol{\CYRIE}\UnicodeEncodingName{"0404} % Є \DeclareTextSymbol{\cyrie}\UnicodeEncodingName{"0454} % є % Ukrainian-Belorussian-Rusyn-Kazakh: \DeclareTextSymbol{\CYRII}\UnicodeEncodingName{"0406} % І \DeclareTextSymbol{\cyrii}\UnicodeEncodingName{"0456} % і % Serbian-Macedonian-Azerbaijani: \DeclareTextSymbol{\CYRJE}\UnicodeEncodingName{"0408} % Ј \DeclareTextSymbol{\cyrje}\UnicodeEncodingName{"0458} % ј % Serbian-Macedonian-Abkhaz: \DeclareTextSymbol{\CYRDZHE}\UnicodeEncodingName{"040F} % Џ \DeclareTextSymbol{\cyrdzhe}\UnicodeEncodingName{"045F} % џ % Serbian-Macedonian: \DeclareTextSymbol{\CYRLJE}\UnicodeEncodingName{"0409} % Љ \DeclareTextSymbol{\cyrlje}\UnicodeEncodingName{"0459} % љ \DeclareTextSymbol{\CYRNJE}\UnicodeEncodingName{"040A} % Њ \DeclareTextSymbol{\cyrnje}\UnicodeEncodingName{"045A} % њ % Serbian: \DeclareTextSymbol{\CYRDJE}\UnicodeEncodingName{"0402} % Ђ \DeclareTextSymbol{\cyrdje}\UnicodeEncodingName{"0452} % ђ \DeclareTextSymbol{\CYRTSHE}\UnicodeEncodingName{"040B} % Ћ \DeclareTextSymbol{\cyrtshe}\UnicodeEncodingName{"045B} % ћ % Macedonian: \DeclareTextSymbol{\CYRDZE}\UnicodeEncodingName{"0405} % Ѕ \DeclareTextSymbol{\cyrdze}\UnicodeEncodingName{"0455} % ѕ \DeclareTextSymbol{\CYRGJE}\UnicodeEncodingName{"0403} % Ѓ \DeclareTextSymbol{\cyrgje}\UnicodeEncodingName{"0453} % ѓ \DeclareTextSymbol{\CYRKJE}\UnicodeEncodingName{"040C} % Ќ \DeclareTextSymbol{\cyrkje}\UnicodeEncodingName{"045C} % ќ % %%% Part III %%% Non-Slavic Cyrillic letters, waiting for their experts %%% to be confirmed as correct. %%% From here on, we're out of the frequently used 8-bit land %%% and into mostly Unicode territory. % % Azerbaijani-Abkhaz-Kalmyk-Kazakh-Tatar: \DeclareTextSymbol{\CYRSCHWA}\UnicodeEncodingName{"04D8} % Ә \DeclareTextSymbol{\cyrschwa}\UnicodeEncodingName{"04D9} % ә % Azerbaijani-Kyrgyz-Buryat-Kazakh-Tatar: \DeclareTextSymbol{\CYRSHHA}\UnicodeEncodingName{"04BA} % Һ \DeclareTextSymbol{\cyrshha}\UnicodeEncodingName{"04BB} % һ % Azerbaijani-Kyrgyz-Buryat-Kalmyk-Kazakh-Tatar: \DeclareTextSymbol{\CYROTLD}\UnicodeEncodingName{"04E8} % Ө \DeclareTextSymbol{\cyrotld}\UnicodeEncodingName{"04E9} % ө \DeclareTextSymbol{\CYRY}\UnicodeEncodingName{"04AE} % Ү \DeclareTextSymbol{\cyry}\UnicodeEncodingName{"04AF} % ү % Azerbaijani-Tajik-Kazakh-Uzbek: \DeclareTextSymbol{\CYRGHCRS}\UnicodeEncodingName{"0492} % Ғ \DeclareTextSymbol{\cyrghcrs}\UnicodeEncodingName{"0493} % ғ % Tajik-Abkhaz-Kazakh-Uzbek: \DeclareTextSymbol{\CYRKDSC}\UnicodeEncodingName{"049A} % Қ \DeclareTextSymbol{\cyrkdsc}\UnicodeEncodingName{"049B} % қ % Tajik-Abkhaz-Uzbek: \DeclareTextSymbol{\CYRHDSC}\UnicodeEncodingName{"04B2} % Ҳ \DeclareTextSymbol{\cyrhdsc}\UnicodeEncodingName{"04B3} % ҳ % Tajik-Abkhaz: \DeclareTextSymbol{\CYRCHRDSC}\UnicodeEncodingName{"04B6} % Ҷ \DeclareTextSymbol{\cyrchrdsc}\UnicodeEncodingName{"04B7} % ҷ % Kalmyk-Kyrguz-Tatar: \DeclareTextSymbol{\CYRNDSC}\UnicodeEncodingName{"04A2} % Ң \DeclareTextSymbol{\cyrndsc}\UnicodeEncodingName{"04A3} % ң % Kalmyk-Tatar: \DeclareTextSymbol{\CYRZHDSC}\UnicodeEncodingName{"0496} % Җ \DeclareTextSymbol{\cyrzhdsc}\UnicodeEncodingName{"0497} % җ % Ossetian: \DeclareTextSymbol{\CYRAE}\UnicodeEncodingName{"04D4} % Ӕ \DeclareTextSymbol{\cyrae}\UnicodeEncodingName{"04D5} % ӕ % Azerbaijani: \DeclareTextSymbol{\CYRCHVCRS}\UnicodeEncodingName{"04B8} % Ҹ \DeclareTextSymbol{\cyrchvcrs}\UnicodeEncodingName{"04B9} % ҹ \DeclareTextSymbol{\CYRKVCRS}\UnicodeEncodingName{"049C} % Ҝ \DeclareTextSymbol{\cyrkvcrs}\UnicodeEncodingName{"049D} % ҝ % Kazakh: \DeclareTextSymbol{\CYRYHCRS}\UnicodeEncodingName{"04B0} % Ұ \DeclareTextSymbol{\cyryhcrs}\UnicodeEncodingName{"04B1} % ұ % Abkhaz: \DeclareTextSymbol{\CYRGHK}\UnicodeEncodingName{"0494} % Ҕ \DeclareTextSymbol{\cyrghk}\UnicodeEncodingName{"0495} % ҕ \DeclareTextSymbol{\CYRABHDZE}\UnicodeEncodingName{"04E0} % Ӡ \DeclareTextSymbol{\cyrabhdze}\UnicodeEncodingName{"04E1} % ӡ \DeclareTextSymbol{\CYRKHCRS}\UnicodeEncodingName{"049E} % Ҟ \DeclareTextSymbol{\cyrkhcrs}\UnicodeEncodingName{"049F} % ҟ \DeclareTextSymbol{\CYRPHK}\UnicodeEncodingName{"04A6} % Ҧ \DeclareTextSymbol{\cyrphk}\UnicodeEncodingName{"04A7} % ҧ \DeclareTextSymbol{\CYRTDSC}\UnicodeEncodingName{"04AC} % Ҭ \DeclareTextSymbol{\cyrtdsc}\UnicodeEncodingName{"04AD} % ҭ \DeclareTextSymbol{\CYRTETSE}\UnicodeEncodingName{"04B4} % Ҵ \DeclareTextSymbol{\cyrtetse}\UnicodeEncodingName{"04B5} % ҵ \DeclareTextSymbol{\CYRABHCH}\UnicodeEncodingName{"04BC} % Ҽ \DeclareTextSymbol{\cyrabhch}\UnicodeEncodingName{"04BD} % ҽ \DeclareTextSymbol{\CYRABHCHDSC}\UnicodeEncodingName{"04BE} % Ҿ \DeclareTextSymbol{\cyrabhchdsc}\UnicodeEncodingName{"04BF} % ҿ \DeclareTextSymbol{\CYRABHHA}\UnicodeEncodingName{"04A8} % Ҩ \DeclareTextSymbol{\cyrabhha}\UnicodeEncodingName{"04A9} % ҩ % Chukchi: \DeclareTextSymbol{\CYRKHK}\UnicodeEncodingName{"04C3} % Ӄ \DeclareTextSymbol{\cyrkhk}\UnicodeEncodingName{"04C4} % ӄ \DeclareTextSymbol{\CYRNHK}\UnicodeEncodingName{"04C7} % Ӈ \DeclareTextSymbol{\cyrnhk}\UnicodeEncodingName{"04C8} % ӈ % %% P.S. Tajik and Chuvash, while mentioned, %% have letters which are apparently missing and are NOT complete. % %%% Part IV %%% Historical letters, needed to support old orthographies. \DeclareTextSymbol{\CYRYAT}\UnicodeEncodingName{"0462} % Ѣ \DeclareTextSymbol{\cyryat}\UnicodeEncodingName{"0463} % ѣ \DeclareTextSymbol{\CYRBYUS}\UnicodeEncodingName{"046A} % Ѫ \DeclareTextSymbol{\cyrbyus}\UnicodeEncodingName{"046B} % ѫ \DeclareTextSymbol{\CYRIZH}\UnicodeEncodingName{"0474} % Ѵ \DeclareTextSymbol{\cyrizh}\UnicodeEncodingName{"0475} % ѵ \DeclareTextSymbol{\CYRFITA}\UnicodeEncodingName{"0472} % Ѳ \DeclareTextSymbol{\cyrfita}\UnicodeEncodingName{"0473} % ѳ % %%% Part V %%% UNRECOGNISED NON-SLAVIC CYRILLIC LETTERS %%% Belong to languages not mentioned herein. % \DeclareTextSymbol{\CYRpalochka}\UnicodeEncodingName{"04C0} % Ӏ \DeclareTextSymbol{\CYRZDSC}\UnicodeEncodingName{"0498} % Ҙ \DeclareTextSymbol{\cyrzdsc}\UnicodeEncodingName{"0499} % ҙ \DeclareTextSymbol{\CYRKBEAK}\UnicodeEncodingName{"04A0} % Ҡ \DeclareTextSymbol{\cyrkbeak}\UnicodeEncodingName{"04A1} % ҡ \DeclareTextSymbol{\CYRNG}\UnicodeEncodingName{"04A4} % Ҥ \DeclareTextSymbol{\cyrng}\UnicodeEncodingName{"04A5} % ҥ \DeclareTextSymbol{\CYRSDSC}\UnicodeEncodingName{"04AA} % Ҫ \DeclareTextSymbol{\cyrsdsc}\UnicodeEncodingName{"04AB} % ҫ \DeclareTextSymbol{\CYRCHLDSC}\UnicodeEncodingName{"04CB} % Ӌ \DeclareTextSymbol{\cyrchldsc}\UnicodeEncodingName{"04CC} % ӌ % %% These are probably improperly named either in TeX or Unicode, %% since their Unicode names and TeX names do not match. %% TeX definitely treats them as the same symbol though. \DeclareTextSymbol{\CYRMDSC}\UnicodeEncodingName{"04CD} % Ӎ \DeclareTextSymbol{\cyrmdsc}\UnicodeEncodingName{"04CE} % ӎ \DeclareTextSymbol{\CYRLDSC}\UnicodeEncodingName{"04C5} % Ӆ \DeclareTextSymbol{\cyrldsc}\UnicodeEncodingName{"04C6} % ӆ % %% These two letters are part of proposed Unicode for Kurdish %% and their codepoints may or may not change upon inclusion. \DeclareTextSymbol{\CYRQ}\UnicodeEncodingName{"051A} \DeclareTextSymbol{\cyrq}\UnicodeEncodingName{"051B} \DeclareTextSymbol{\CYRW}\UnicodeEncodingName{"051C} \DeclareTextSymbol{\cyrw}\UnicodeEncodingName{"051D} % %%% Part VII %%% PUNCTUATION AND UNCLEAR CASES %%% Exotic (punctuation, letters...) %%% (this list is probably incomplete) % % A dash - Defined in cyrillic.mtx to be emdash % and should have been emdash all along. \DeclareTextSymbol{\cyrdash}\UnicodeEncodingName{"2014} % % Exotic angle brackets. % Might still be unprintable for you. \DeclareTextSymbol{\cyrlangle}\UnicodeEncodingName{"27E8} \DeclareTextSymbol{\cyrrangle}\UnicodeEncodingName{"27E9} % % This particular association is not certain but I guess % we'll hear about it when someone trips over it. \DeclareTextSymbol{\CYREPS}\UnicodeEncodingName{"0510} \DeclareTextSymbol{\cyreps}\UnicodeEncodingName{"0511} % % Can't confirm those, but I'm positive the codepoints are correct: \DeclareTextSymbol{\CYRGDSC}\UnicodeEncodingName{"04F6} \DeclareTextSymbol{\cyrgdsc}\UnicodeEncodingName{"04F7} \DeclareTextSymbol{\CYRHHK}\UnicodeEncodingName{"04FC} \DeclareTextSymbol{\cyrhhk}\UnicodeEncodingName{"04FD} \DeclareTextSymbol{\CYRLHK}\UnicodeEncodingName{"0512} \DeclareTextSymbol{\cyrlhk}\UnicodeEncodingName{"0513} % % I could not assign these in a way that would make sense, % since I couldn't find matches in cyrillic unicode table. % %\DeclareTextSymbol{\CYRNLHK}\UnicodeEncodingName{"????} %\DeclareTextSymbol{\cyrnlhk}\UnicodeEncodingName{"????} %\DeclareTextSymbol{\CYRRDSC}\UnicodeEncodingName{"????} %\DeclareTextSymbol{\cyrrdsc}\UnicodeEncodingName{"????} % % Oddities: % I don't see a letter like that in Unicode cyrillic table. % I've no idea what is it doing in a cyrillic encoding either. %\DeclareTextSymbol{\CYRDELTA}\UnicodeEncodingName{"????} %\DeclareTextSymbol{\cyrdelta}\UnicodeEncodingName{"????} % % Quotes % Ligatures << and >> are working only with the last versions of "tex-text.map" % and "tex-text.tec" (http://scripts.sil.org/svn-view/xetex/TRUNK) %\DeclareTextSymbol{\flqq}\UnicodeEncodingName{"00AB} %\DeclareTextSymbol{\frqq}\UnicodeEncodingName{"00BB} %\DeclareTextSymbol{\glqq}\UnicodeEncodingName{"201E} %\DeclareTextSymbol{\grqq}\UnicodeEncodingName{"201C} % % To make it (and "--- -like shortcuts) work, "xecyr" must be loaded _after_ babel. %\def\cyrdash{\hbox to.8em{--\hss--}} % \endinput