summaryrefslogtreecommitdiff
path: root/macros/xetex/latex/xecyr/tex/xecyr.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/xetex/latex/xecyr/tex/xecyr.sty')
-rw-r--r--macros/xetex/latex/xecyr/tex/xecyr.sty336
1 files changed, 336 insertions, 0 deletions
diff --git a/macros/xetex/latex/xecyr/tex/xecyr.sty b/macros/xetex/latex/xecyr/tex/xecyr.sty
new file mode 100644
index 0000000000..fde8e2a316
--- /dev/null
+++ b/macros/xetex/latex/xecyr/tex/xecyr.sty
@@ -0,0 +1,336 @@
+\ProvidesPackage{xecyr}%
+ [2019/10/04 v1.2 Definitions for Cyrillic Babel and XeLaTeX/LuaTeX compatibility]
+
+\RequirePackage{ifluatex}
+\RequirePackage{ifxetex}
+
+\newif\if@EXT
+\DeclareOption{ext}{\@EXTtrue}
+\DeclareOption{noext}{\@EXTfalse}
+\newif\if@MIS
+\DeclareOption{mis}{\@MIStrue}
+\DeclareOption{nomis}{\@MISfalse}
+
+\ExecuteOptions{ext,nomis}
+\ProcessOptions
+
+\if@MIS
+ \RequirePackage{misccorr}
+\fi
+
+\ifluatex
+ \if@EXT
+ \RequirePackage{luatextra}
+ \defaultfontfeatures{Mapping=tex-text}
+ \fi
+\else
+ \ifxetex
+ \if@EXT
+ \RequirePackage{xltxtra}
+ \defaultfontfeatures{Mapping=tex-text}
+ \fi
+ \else % pdflatex/inputenc hack
+ \RequirePackage[utf8]{inputenc}
+ \def\setmainfont#1{}
+ \def\setsansfont#1{}
+ \def\setmonofont#1{}
+ \endinput
+ \fi
+\fi
+
+\@ifpackageloaded{xunicode}{}{\RequirePackage{xunicode}}
+
+%%% Cyrillic letter TeX definitions for XeTeX/LuaTeX
+% 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.
+
+%%% Part I
+%%% Cyrillic letters defined as a continuous stretch
+%%% in Unicode and most common 8-bit encodings which define them:
+
+\DeclareUTFcharacter[\UTFencname]{x0410}{\CYRA} % А
+\DeclareUTFcharacter[\UTFencname]{x0430}{\cyra} % а
+\DeclareUTFcharacter[\UTFencname]{x0411}{\CYRB} % Б
+\DeclareUTFcharacter[\UTFencname]{x0431}{\cyrb} % б
+\DeclareUTFcharacter[\UTFencname]{x0412}{\CYRV} % В
+\DeclareUTFcharacter[\UTFencname]{x0432}{\cyrv} % в
+\DeclareUTFcharacter[\UTFencname]{x0413}{\CYRG} % Г
+\DeclareUTFcharacter[\UTFencname]{x0433}{\cyrg} % г
+\DeclareUTFcharacter[\UTFencname]{x0414}{\CYRD} % Д
+\DeclareUTFcharacter[\UTFencname]{x0434}{\cyrd} % д
+\DeclareUTFcharacter[\UTFencname]{x0415}{\CYRE} % Е
+\DeclareUTFcharacter[\UTFencname]{x0435}{\cyre} % е
+\DeclareUTFcharacter[\UTFencname]{x0416}{\CYRZH} % Ж
+\DeclareUTFcharacter[\UTFencname]{x0436}{\cyrzh} % ж
+\DeclareUTFcharacter[\UTFencname]{x0417}{\CYRZ} % З
+\DeclareUTFcharacter[\UTFencname]{x0437}{\cyrz} % з
+\DeclareUTFcharacter[\UTFencname]{x0418}{\CYRI} % И
+\DeclareUTFcharacter[\UTFencname]{x0438}{\cyri} % и
+\DeclareUTFcharacter[\UTFencname]{x0419}{\CYRISHRT} % Й
+\DeclareUTFcharacter[\UTFencname]{x0439}{\cyrishrt} % й
+\DeclareUTFcharacter[\UTFencname]{x041A}{\CYRK} % К
+\DeclareUTFcharacter[\UTFencname]{x043A}{\cyrk} % к
+\DeclareUTFcharacter[\UTFencname]{x041B}{\CYRL} % Л
+\DeclareUTFcharacter[\UTFencname]{x043B}{\cyrl} % л
+\DeclareUTFcharacter[\UTFencname]{x041C}{\CYRM} % М
+\DeclareUTFcharacter[\UTFencname]{x043C}{\cyrm} % м
+\DeclareUTFcharacter[\UTFencname]{x041D}{\CYRN} % Н
+\DeclareUTFcharacter[\UTFencname]{x043D}{\cyrn} % н
+\DeclareUTFcharacter[\UTFencname]{x041E}{\CYRO} % О
+\DeclareUTFcharacter[\UTFencname]{x043E}{\cyro} % о
+\DeclareUTFcharacter[\UTFencname]{x041F}{\CYRP} % П
+\DeclareUTFcharacter[\UTFencname]{x043F}{\cyrp} % п
+\DeclareUTFcharacter[\UTFencname]{x0420}{\CYRR} % Р
+\DeclareUTFcharacter[\UTFencname]{x0440}{\cyrr} % р
+\DeclareUTFcharacter[\UTFencname]{x0421}{\CYRS} % С
+\DeclareUTFcharacter[\UTFencname]{x0441}{\cyrs} % с
+\DeclareUTFcharacter[\UTFencname]{x0422}{\CYRT} % Т
+\DeclareUTFcharacter[\UTFencname]{x0442}{\cyrt} % т
+\DeclareUTFcharacter[\UTFencname]{x0423}{\CYRU} % У
+\DeclareUTFcharacter[\UTFencname]{x0443}{\cyru} % у
+\DeclareUTFcharacter[\UTFencname]{x0424}{\CYRF} % Ф
+\DeclareUTFcharacter[\UTFencname]{x0444}{\cyrf} % ф
+\DeclareUTFcharacter[\UTFencname]{x0425}{\CYRH} % Х
+\DeclareUTFcharacter[\UTFencname]{x0445}{\cyrh} % х
+\DeclareUTFcharacter[\UTFencname]{x0426}{\CYRC} % Ц
+\DeclareUTFcharacter[\UTFencname]{x0446}{\cyrc} % ц
+\DeclareUTFcharacter[\UTFencname]{x0427}{\CYRCH} % Ч
+\DeclareUTFcharacter[\UTFencname]{x0447}{\cyrch} % ч
+\DeclareUTFcharacter[\UTFencname]{x0428}{\CYRSH} % Ш
+\DeclareUTFcharacter[\UTFencname]{x0448}{\cyrsh} % ш
+\DeclareUTFcharacter[\UTFencname]{x0429}{\CYRSHCH} % Щ
+\DeclareUTFcharacter[\UTFencname]{x0449}{\cyrshch} % щ
+\DeclareUTFcharacter[\UTFencname]{x042A}{\CYRHRDSN} % Ъ
+\DeclareUTFcharacter[\UTFencname]{x044A}{\cyrhrdsn} % ъ
+\DeclareUTFcharacter[\UTFencname]{x042B}{\CYRERY} % Ы
+\DeclareUTFcharacter[\UTFencname]{x044B}{\cyrery} % ы
+\DeclareUTFcharacter[\UTFencname]{x042C}{\CYRSFTSN} % Ь
+\DeclareUTFcharacter[\UTFencname]{x044C}{\cyrsftsn} % ь
+\DeclareUTFcharacter[\UTFencname]{x042D}{\CYREREV} % Э
+\DeclareUTFcharacter[\UTFencname]{x044D}{\cyrerev} % э
+\DeclareUTFcharacter[\UTFencname]{x042E}{\CYRYU} % Ю
+\DeclareUTFcharacter[\UTFencname]{x044E}{\cyryu} % ю
+\DeclareUTFcharacter[\UTFencname]{x042F}{\CYRYA} % Я
+\DeclareUTFcharacter[\UTFencname]{x044F}{\cyrya} % я
+
+%%% 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:
+\DeclareUTFcharacter[\UTFencname]{x0401}{\CYRYO} % Ё
+\DeclareUTFcharacter[\UTFencname]{x0451}{\cyryo} % ё
+% Belorussian-Uzbek:
+\DeclareUTFcharacter[\UTFencname]{x040E}{\CYRUSHRT} % Ў
+\DeclareUTFcharacter[\UTFencname]{x045E}{\cyrushrt} % ў
+% Ukrainian-Rusyn:
+\DeclareUTFcharacter[\UTFencname]{x0490}{\CYRGUP} % Ґ
+\DeclareUTFcharacter[\UTFencname]{x0491}{\cyrgup} % ґ
+\DeclareUTFcharacter[\UTFencname]{x0407}{\CYRYI} % Ї
+\DeclareUTFcharacter[\UTFencname]{x0457}{\cyryi} % ї
+\DeclareUTFcharacter[\UTFencname]{x0404}{\CYRIE} % Є
+\DeclareUTFcharacter[\UTFencname]{x0454}{\cyrie} % є
+% Ukrainian-Belorussian-Rusyn-Kazakh:
+\DeclareUTFcharacter[\UTFencname]{x0406}{\CYRII} % І
+\DeclareUTFcharacter[\UTFencname]{x0456}{\cyrii} % і
+% Serbian-Macedonian-Azerbaijani:
+\DeclareUTFcharacter[\UTFencname]{x0408}{\CYRJE} % Ј
+\DeclareUTFcharacter[\UTFencname]{x0458}{\cyrje} % ј
+% Serbian-Macedonian-Abkhaz:
+\DeclareUTFcharacter[\UTFencname]{x040F}{\CYRDZHE} % Џ
+\DeclareUTFcharacter[\UTFencname]{x045F}{\cyrdzhe} % џ
+% Serbian-Macedonian:
+\DeclareUTFcharacter[\UTFencname]{x0409}{\CYRLJE} % Љ
+\DeclareUTFcharacter[\UTFencname]{x0459}{\cyrlje} % љ
+\DeclareUTFcharacter[\UTFencname]{x040A}{\CYRNJE} % Њ
+\DeclareUTFcharacter[\UTFencname]{x045A}{\cyrnje} % њ
+% Serbian:
+\DeclareUTFcharacter[\UTFencname]{x0402}{\CYRDJE} % Ђ
+\DeclareUTFcharacter[\UTFencname]{x0452}{\cyrdje} % ђ
+\DeclareUTFcharacter[\UTFencname]{x040B}{\CYRTSHE} % Ћ
+\DeclareUTFcharacter[\UTFencname]{x045B}{\cyrtshe} % ћ
+% Macedonian:
+\DeclareUTFcharacter[\UTFencname]{x0405}{\CYRDZE} % Ѕ
+\DeclareUTFcharacter[\UTFencname]{x0455}{\cyrdze} % ѕ
+\DeclareUTFcharacter[\UTFencname]{x0403}{\CYRGJE} % Ѓ
+\DeclareUTFcharacter[\UTFencname]{x0453}{\cyrgje} % ѓ
+\DeclareUTFcharacter[\UTFencname]{x040C}{\CYRKJE} % Ќ
+\DeclareUTFcharacter[\UTFencname]{x045C}{\cyrkje} % ќ
+
+%%% 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:
+\DeclareUTFcharacter[\UTFencname]{x04D8}{\CYRSCHWA} % Ә
+\DeclareUTFcharacter[\UTFencname]{x04D9}{\cyrschwa} % ә
+% Azerbaijani-Kyrgyz-Buryat-Kazakh-Tatar:
+\DeclareUTFcharacter[\UTFencname]{x04BA}{\CYRSHHA} % Һ
+\DeclareUTFcharacter[\UTFencname]{x04BB}{\cyrshha} % һ
+% Azerbaijani-Kyrgyz-Buryat-Kalmyk-Kazakh-Tatar:
+\DeclareUTFcharacter[\UTFencname]{x04E8}{\CYROTLD} % Ө
+\DeclareUTFcharacter[\UTFencname]{x04E9}{\cyrotld} % ө
+\DeclareUTFcharacter[\UTFencname]{x04AE}{\CYRY} % Ү
+\DeclareUTFcharacter[\UTFencname]{x04AF}{\cyry} % ү
+% Azerbaijani-Tajik-Kazakh-Uzbek:
+\DeclareUTFcharacter[\UTFencname]{x0492}{\CYRGHCRS} % Ғ
+\DeclareUTFcharacter[\UTFencname]{x0493}{\cyrghcrs} % ғ
+% Tajik-Abkhaz-Kazakh-Uzbek:
+\DeclareUTFcharacter[\UTFencname]{x049A}{\CYRKDSC} % Қ
+\DeclareUTFcharacter[\UTFencname]{x049B}{\cyrkdsc} % қ
+% Tajik-Abkhaz-Uzbek:
+\DeclareUTFcharacter[\UTFencname]{x04B2}{\CYRHDSC} % Ҳ
+\DeclareUTFcharacter[\UTFencname]{x04B3}{\cyrhdsc} % ҳ
+% Tajik-Abkhaz:
+\DeclareUTFcharacter[\UTFencname]{x04B6}{\CYRCHRDSC} % Ҷ
+\DeclareUTFcharacter[\UTFencname]{x04B7}{\cyrchrdsc} % ҷ
+% Kalmyk-Kyrguz-Tatar:
+\DeclareUTFcharacter[\UTFencname]{x04A2}{\CYRNDSC} % Ң
+\DeclareUTFcharacter[\UTFencname]{x04A3}{\cyrndsc} % ң
+% Kalmyk-Tatar:
+\DeclareUTFcharacter[\UTFencname]{x0496}{\CYRZHDSC} % Җ
+\DeclareUTFcharacter[\UTFencname]{x0497}{\cyrzhdsc} % җ
+% Ossetian:
+\DeclareUTFcharacter[\UTFencname]{x04D4}{\CYRAE} % Ӕ
+\DeclareUTFcharacter[\UTFencname]{x04D5}{\cyrae} % ӕ
+% Azerbaijani:
+\DeclareUTFcharacter[\UTFencname]{x04B8}{\CYRCHVCRS} % Ҹ
+\DeclareUTFcharacter[\UTFencname]{x04B9}{\cyrchvcrs} % ҹ
+\DeclareUTFcharacter[\UTFencname]{x049C}{\CYRKVCRS} % Ҝ
+\DeclareUTFcharacter[\UTFencname]{x049D}{\cyrkvcrs} % ҝ
+% Kazakh:
+\DeclareUTFcharacter[\UTFencname]{x04B0}{\CYRYHCRS} % Ұ
+\DeclareUTFcharacter[\UTFencname]{x04B1}{\cyryhcrs} % ұ
+% Abkhaz:
+\DeclareUTFcharacter[\UTFencname]{x0494}{\CYRGHK} % Ҕ
+\DeclareUTFcharacter[\UTFencname]{x0495}{\cyrghk} % ҕ
+\DeclareUTFcharacter[\UTFencname]{x04E0}{\CYRABHDZE} % Ӡ
+\DeclareUTFcharacter[\UTFencname]{x04E1}{\cyrabhdze} % ӡ
+\DeclareUTFcharacter[\UTFencname]{x049E}{\CYRKHCRS} % Ҟ
+\DeclareUTFcharacter[\UTFencname]{x049F}{\cyrkhcrs} % ҟ
+\DeclareUTFcharacter[\UTFencname]{x04A6}{\CYRPHK} % Ҧ
+\DeclareUTFcharacter[\UTFencname]{x04A7}{\cyrphk} % ҧ
+\DeclareUTFcharacter[\UTFencname]{x04AC}{\CYRTDSC} % Ҭ
+\DeclareUTFcharacter[\UTFencname]{x04AD}{\cyrtdsc} % ҭ
+\DeclareUTFcharacter[\UTFencname]{x04B4}{\CYRTETSE} % Ҵ
+\DeclareUTFcharacter[\UTFencname]{x04B5}{\cyrtetse} % ҵ
+\DeclareUTFcharacter[\UTFencname]{x04BC}{\CYRABHCH} % Ҽ
+\DeclareUTFcharacter[\UTFencname]{x04BD}{\cyrabhch} % ҽ
+\DeclareUTFcharacter[\UTFencname]{x04BE}{\CYRABHCHDSC} % Ҿ
+\DeclareUTFcharacter[\UTFencname]{x04BF}{\cyrabhchdsc} % ҿ
+\DeclareUTFcharacter[\UTFencname]{x04A8}{\CYRABHHA} % Ҩ
+\DeclareUTFcharacter[\UTFencname]{x04A9}{\cyrabhha} % ҩ
+% Chukchi:
+\DeclareUTFcharacter[\UTFencname]{x04C3}{\CYRKHK} % Ӄ
+\DeclareUTFcharacter[\UTFencname]{x04C4}{\cyrkhk} % ӄ
+\DeclareUTFcharacter[\UTFencname]{x04C7}{\CYRNHK} % Ӈ
+\DeclareUTFcharacter[\UTFencname]{x04C8}{\cyrnhk} % ӈ
+
+%% 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.
+\DeclareUTFcharacter[\UTFencname]{x0462}{\CYRYAT} % Ѣ
+\DeclareUTFcharacter[\UTFencname]{x0463}{\cyryat} % ѣ
+\DeclareUTFcharacter[\UTFencname]{x046A}{\CYRBYUS} % Ѫ
+\DeclareUTFcharacter[\UTFencname]{x046B}{\cyrbyus} % ѫ
+\DeclareUTFcharacter[\UTFencname]{x0474}{\CYRIZH} % Ѵ
+\DeclareUTFcharacter[\UTFencname]{x0475}{\cyrizh} % ѵ
+\DeclareUTFcharacter[\UTFencname]{x0472}{\CYRFITA} % Ѳ
+\DeclareUTFcharacter[\UTFencname]{x0473}{\cyrfita} % ѳ
+
+%%% Part V
+%%% UNRECOGNISED NON-SLAVIC CYRILLIC LETTERS
+%%% Belong to languages not mentioned herein.
+
+\DeclareUTFcharacter[\UTFencname]{x04C0}{\CYRpalochka} % Ӏ
+\DeclareUTFcharacter[\UTFencname]{x0498}{\CYRZDSC} % Ҙ
+\DeclareUTFcharacter[\UTFencname]{x0499}{\cyrzdsc} % ҙ
+\DeclareUTFcharacter[\UTFencname]{x04A0}{\CYRKBEAK} % Ҡ
+\DeclareUTFcharacter[\UTFencname]{x04A1}{\cyrkbeak} % ҡ
+\DeclareUTFcharacter[\UTFencname]{x04A4}{\CYRNG} % Ҥ
+\DeclareUTFcharacter[\UTFencname]{x04A5}{\cyrng} % ҥ
+\DeclareUTFcharacter[\UTFencname]{x04AA}{\CYRSDSC} % Ҫ
+\DeclareUTFcharacter[\UTFencname]{x04AB}{\cyrsdsc} % ҫ
+\DeclareUTFcharacter[\UTFencname]{x04CB}{\CYRCHLDSC} % Ӌ
+\DeclareUTFcharacter[\UTFencname]{x04CC}{\cyrchldsc} % ӌ
+
+%% 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.
+\DeclareUTFcharacter[\UTFencname]{x04CD}{\CYRMDSC} % Ӎ
+\DeclareUTFcharacter[\UTFencname]{x04CE}{\cyrmdsc} % ӎ
+\DeclareUTFcharacter[\UTFencname]{x04C5}{\CYRLDSC} % Ӆ
+\DeclareUTFcharacter[\UTFencname]{x04C6}{\cyrldsc} % ӆ
+
+%% These two letters are part of proposed Unicode for Kurdish
+%% and their codepoints may or may not change upon inclusion.
+\DeclareUTFcharacter[\UTFencname]{x051A}{\CYRQ}
+\DeclareUTFcharacter[\UTFencname]{x051B}{\cyrq}
+\DeclareUTFcharacter[\UTFencname]{x051C}{\CYRW}
+\DeclareUTFcharacter[\UTFencname]{x051D}{\cyrw}
+
+%%% 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.
+\DeclareUTFcharacter[\UTFencname]{x2014}{\cyrdash}
+
+% Exotic angle brackets.
+% Might still be unprintable for you.
+\DeclareUTFcharacter[\UTFencname]{x27E8}{\cyrlangle}
+\DeclareUTFcharacter[\UTFencname]{x27E9}{\cyrrangle}
+
+% This particular association is not certain but I guess
+% we'll hear about it when someone trips over it.
+\DeclareUTFcharacter[\UTFencname]{x0510}{\CYREPS}
+\DeclareUTFcharacter[\UTFencname]{x0511}{\cyreps}
+
+% Can't confirm those, but I'm positive the codepoints are correct:
+\DeclareUTFcharacter[\UTFencname]{x04F6}{\CYRGDSC}
+\DeclareUTFcharacter[\UTFencname]{x04F7}{\cyrgdsc}
+\DeclareUTFcharacter[\UTFencname]{x04FC}{\CYRHHK}
+\DeclareUTFcharacter[\UTFencname]{x04FD}{\cyrhhk}
+\DeclareUTFcharacter[\UTFencname]{x0512}{\CYRLHK}
+\DeclareUTFcharacter[\UTFencname]{x0513}{\cyrlhk}
+
+% I could not assign these in a way that would make sense,
+% since I couldn't find matches in cyrillic unicode table.
+
+%\DeclareUTFcharacter[\UTFencname]{x????}{\CYRNLHK}
+%\DeclareUTFcharacter[\UTFencname]{x????}{\cyrnlhk}
+%\DeclareUTFcharacter[\UTFencname]{x????}{\CYRRDSC}
+%\DeclareUTFcharacter[\UTFencname]{x????}{\cyrrdsc}
+
+% 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.
+%\DeclareUTFcharacter[\UTFencname]{x????}{\CYRDELTA}
+%\DeclareUTFcharacter[\UTFencname]{x????}{\cyrdelta}
+
+% 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)
+\DeclareUTFcharacter[\UTFencname]{x00AB}{\flqq}
+\DeclareUTFcharacter[\UTFencname]{x00BB}{\frqq}
+\DeclareUTFcharacter[\UTFencname]{x201E}{\glqq}
+\DeclareUTFcharacter[\UTFencname]{x201C}{\grqq}
+
+% To make it (and "--- -like shortcuts) work, "xecyr" must be loaded _after_ babel.
+\def\cyrdash{\hbox to.8em{--\hss--}}
+
+\endinput