# etpgrf/conf.py # Настройки по умолчанию для типографа etpgrf # Режимы "отдачи" результатов обработки MODE_UNICODE = "unicode" MODE_MNEMONIC = "mnemonic" MODE_MIXED = "mixed" # DEFAULT_MODE = MODE_MIXED # Языки, поддерживаемые библиотекой LANG_RU = 'ru' # Русский LANG_RU_OLD = 'ruold' # Русская дореволюционная орфография LANG_EN = 'en' # Английский SUPPORTED_LANGS = frozenset([LANG_RU, LANG_RU_OLD, LANG_EN]) # Язык(и) по умолчанию, если не указаны пользователем и не заданы через ETPGRF_DEFAULT_LANGS_MODULE # DEFAULT_LANGS = LANG_RU # Значения по умолчанию для параметров Hyphenator # DEFAULT_HYP_MAX_LEN = 10 # Максимальная длина слова без переносов # DEFAULT_HYP_MIN_LEN = 3 # Минимальный "хвост" слова для переноса # === Соответствия `unicode` и `mnemonic` для типографа # Переносы KEY_SHY = 'shy' SHY_ENTITIES = { KEY_SHY: ('\u00AD', '­'), # Мягкий перенос } # Пробелы и неразрывные пробелы KEY_NBSP = 'nbsp' KEY_THINSP = 'thinsp' KEY_ENSP = 'ensp' KEY_EMSP = 'emsp' KEY_ZWNJ = 'zwnj' KEY_ZWJ = 'zwj' SPACE_ENTITIES = { KEY_NBSP: ('\u00A0', ' '), # Неразрывный пробел KEY_ENSP: ('\u2002', ' '), # Полу-широкий пробел (En space) KEY_EMSP: ('\u2003', ' '), # Широкий пробел (Em space) KEY_THINSP: ('\u2009', ' '), # Тонкий пробел (Thin space) KEY_ZWJ: ('\u200D', '‍'), # Нулевая ширина (с объединением) (Zero Width Joiner) KEY_ZWNJ: ('\u200C', '‌'), # Нулевая ширина (без объединения) (Zero Width Non-Joiner) } # Тире и дефисы DASH_ENTITIES = { 'ndash': ('\u2013', '–'), # Cреднее тире (En dash) 'mdash': ('\u2014', '—'), # Длинное тире 'hyphen': ('\u2010', '‐'), # Обычный дефис (если нужно отличать от минуса) 'horbar': ('\u2015', '―'), # Горизонтальная линия (длинная черта) } # Кавычки KEY_QUOT = 'quot' KEY_LAQUO = 'laquo' KEY_RAQUO = 'raquo' KEY_LDQUO = 'ldquo' KEY_RDQUO = 'rdquo' QUOTE_ENTITIES = { KEY_QUOT: ('\u0022', '"'), # Двойная кавычка (универсальная) -- " 'apos': ('\u0027', '''), # Апостроф (одинарная кавычка) -- ' KEY_LAQUO: ('\u00AB', '«'), # Открывающая (левая) кавычка «ёлочка» -- « KEY_RAQUO: ('\u00BB', '»'), # Закрывающая (правая) кавычка «ёлочка» -- » KEY_LDQUO: ('\u201C', '“'), # Oткрывающая (левая) двойная кавычка -- “ KEY_RDQUO: ('\u201D', '”'), # Закрывающая (правая) двойная кавычка -- ” 'bdquo': ('\u2039', '„'), # Нижняя двойная кавычка -- „ 'lsquo': ('\u2018', '‘'), # Открывающая (левая) одинарная кавычка -- ‘ 'rsquo': ('\u2019', '’'), # Закрывающая (правая) одинарная кавычка -- ’ 'sbquo': ('\u201A', '‚'), # Нижняя одинарная кавычка -- ‚ 'lsaquo': ('\u2039', '‹'), # Открывающая французская угловая кавычка -- › 'rsaquo': ('\u203A', '›'), # Закрывающая французская угловая кавычка -- ‹ } # Символы валют CURRENCY_ENTITIES = { 'dollar': ('\u0024', '$'), # Доллар 'cent': ('\u00A2', '¢'), # Цент 'pound': ('\u00A3', '£'), # Фунт стерлингов 'curren': ('\u00A4', '¤'), # Знак валюты (обычно используется для обозначения "без конкретной валюты") 'yen': ('\u00A5', '¥'), # Йена 'euro': ('\u20AC', '€'), # Евро -- кажется нет в RFC 'ruble': ('\u20BD', '₽'), # Российский рубль (₽) } # Математические символы KEY_LT = 'lt' KEY_GT = 'gt' MATH_ENTITIES = { KEY_LT: ('\u00B7', '<'), # Меньше (<) KEY_GT: ('\u00B7', '>'), # Больше (>) 'plus': ('\u002B', '+'), # Плюс (+) 'minus': ('\u2212', '−'), # Минус (−) 'times': ('\u00D7', '×'), # Умножение (×) 'divide': ('\u00F7', '÷'), # Деление (÷) 'equals': ('\u003D', '='), # Равно (=) 'ne': ('\u2260', '≠'), # Не равно (≠) 'plusmn': ('\u00B1', '±'), # Плюс-минус (±) 'not': ('\u00AC', '¬'), # Знак отрицания (¬) 'deg': ('\u00B0', '°'), # Знак градуса (°) 'sup1': ('\u00B9', '¹'), # Верхний индекс 1 (¹) 'sup2': ('\u00B2', '²'), # Верхний индекс 2 (²) 'sup3': ('\u00B3', '³'), # Верхний индекс 3 (³) 'fnof': ('\u0192', 'ƒ'), # Латинская строчная буква «f» с хвостиком или знак флорина (ƒ) 'percnt': ('\u0025', '%'), # Знак процента (%) 'permil': ('\u0089', '‰'), # Знак промилле (‰) 'pertenk': ('\u2031', '‱'), # Знак на десять тысяч (‱) 'forall': ('\u2200', '∀'), # Для всех (∀) 'comp': ('\u2201', '∁'), # Дополнение (∁) 'part': ('\u2202', '∂'), # Частный дифференциал (∂) 'exist': ('\u2203', '∃'), # Существует (∃) 'nexist': ('\u2204', '∄'), # Не существует (∄) 'empty': ('\u2205', '∅'), # Пустое множество (∅) 'nabla': ('\u2207', '∇'), # Набла (∇) 'isin': ('\u2208', '∈'), # Принадлежит (∈) 'notin': ('\u2209', '∉'), # Не принадлежит (∉) 'ni': ('\u220B', '∋'), # Содержит как член (∋) 'notni': ('\u220C', '∌'), # Не содержит как член (∌) 'prod': ('\u220F', '∏'), # N-арное произведение (∏) 'coprod' : ('\u2210', '∐'), # N-арный сомножитель (∐) 'sum': ('\u2211', '∑'), # N-арная сумма (∑) 'mnplus': ('\u2213', '∓'), # Минус-плюс (∓) 'minusd': ('\u2212', '∸'), # Минус с точкой (∸) 'plusdo': ('\u2214', '∔'), # Плюс с точкой (∔) 'setminus': ('\u2216', '∖'), # Разность множеств (∖) 'lowast': ('\u2217', '∗'), # Оператор звездочка (∗) 'compfn': ('\u2218', '∘'), # Кольцевой оператор (∘) 'radic': ('\u221A', '√'), # Квадратный корень (√) 'prop': ('\u221D', '∝'), # Пропорционально (∝) 'infin': ('\u221E', '∞'), # Бесконечность (∞) 'ang': ('\u2220', '∠'), # Угол (∠) 'angrt': ('\u221F', '∟'), # Правый угол (∟) 'angmsd': ('\u2221', '∡'), # Измеримый угол (∡) 'angsph': ('\u2222', '∢'), # Сферический угол (∢) 'mid': ('\u2223', '∣'), # Делит (∣) 'nmid': ('\u2224', '∤'), # Не делит (∤) 'parallel': ('\u2225', '∥'), # Параллельно (∥) 'npar': ('\u2226', '∦'), # Не параллельно (∦) 'and': ('\u2227', '∧'), # Логическое И (∧) 'or': ('\u2228', '∨'), # Логическое ИЛИ (∨) 'cap': ('\u2229', '∩'), # Пересечение (∩) 'cup': ('\u222A', '∪'), # Объединение (∪) 'int': ('\u222B', '∫'), # Интеграл (∫) 'int2': ('\u222C', '∬'), # Двойной интеграл (∬) 'int3': ('\u222D', '∭'), # Тройной интеграл (∭) 'conint': ('\u222E', '∮'), # Интеграл по контуру (∮) 'Conint': ('\u222F', '∯'), # Поверхностный интеграл (∯) 'Cconint': ('\u2230', '∰'), # Интеграл по объёму (∰) 'cwint': ('\u2231', '∱'), # Круговой интеграл (∱) 'cwconint': ('\u2232', '∲'), # Круговой интеграл по контуру (∲) 'awconint': ('\u2233', '∳'), # Антикруговой интеграл по контуру (∳) 'there4': ('\u2234', '∴'), # Следовательно (∴) 'because': ('\u2235', '∵'), # Поскольку (∵) 'ratio': ('\u2236', '∶'), # Отношение (∶) 'Colon': ('\u2237', '∷'), # Пропорция (∷) 'mDDot': ('\u223A', '∺'), # Геометрическая пропорция (∺) 'homtht': ('\u223B', '∻'), # Гомотетия (∻) 'sim': ('\u223C', '∼'), # Оператор тильда (∼) 'bsim': ('\u223D', '∽'), # Обратная тильда (∽) 'ac': ('\u223E', '∾'), # Перевернутая плавная s (∾) 'acd': ('\u223F', '∿'), # Синусоидальная волна (∿) 'wreath': ('\u2240', '≀'), # Скрученное произведение (≀) 'nsim': ('\u2241', '≁'), # Не эквивалентно (≁) 'esim': ('\u2242', '≂'), # Тильда с минусом (≂) 'sime': ('\u2243', '≃'), # Асимптотически равно (≃) 'nsime': ('\u2244', '≄'), # Не асимптотически равно (≄) 'cong': ('\u2245', '≅'), # Конгруэнтность (≅) 'asymp': ('\u2248', '≈'), # Приблизительно равно (≈) 'simne': ('\u2246', '≆'), # Приблизительно, но не точно равно (≆) 'ncong': ('\u2247', '≇'), # Не приблизительно, не фактически равно (≇) 'nap': ('\u2249', '≉'), # Не почти равный (≉) 'approxeq': ('\u224A', '≊'), # Почти равный или равный (≊) 'apid': ('\u224B', '≋'), # Тройная тильда (≋) 'bcong': ('\u224C', '≌'), # Все равны (≌) 'asympeq': ('\u224D', '≍'), # Эквивалентный (≍) 'bump': ('\u224E', '≎'), # Геометрически эквивалентный (≎) 'bumpe': ('\u224F', '≏'), # Различие между (≏) 'esdot': ('\u2250', '≐'), # Приближается к пределу (≐) 'eDot': ('\u2251', '≑'), # Точка в пределах, Геометрически равный (≑) 'efDot': ('\u2252', '≒'), # Приблизительно равный или образ (≒) 'erDot': ('\u2253', '≓'), # Образ или приблизительно равный (≓) 'colone': ('\u2254', '≔'), # Двоеточие равно (≔) 'ecolon': ('\u2255', '≕'), # Равно двоеточие (≕) 'ecir': ('\u2256', '≖'), # Кольцо в равно (≖) 'cire': ('\u2257', '≗'), # Кольцо равно (≗) 'wedgeq': ('\u2259', '≙'), # Оценка, Равно с вектором (≙) 'veeeq': ('\u225A', '≚'), # Равноугольный (≚) 'trie': ('\u225C', '≜'), # Равно по определению (≜) 'equest': ('\u225F', '≟'), # Равно с вопросительным знаком (≟) 'equiv': ('\u2261', '≡'), # Тождественно равно (≡) 'nequiv': ('\u2262', '≢'), # Не тождественно равно (≢) 'le': ('\u2264', '≤'), # Меньше или равно (≤) 'ge': ('\u2265', '≥'), # Больше или равно (≥) 'lE': ('\u2266', '≦'), # Меньше над равно (≦) 'gE': ('\u2267', '≧'), # Больше над равно (≧) 'lnE': ('\u2268', '≨'), # Меньше, но не равно (≨) 'gnE': ('\u2269', '≩'), # Больше, но не равно (≩) 'Lt': ('\u226A', '≪'), # Много меньше (≪) 'Gt': ('\u226B', '≫'), # Много больше (≫) 'between': ('\u226C', '≬'), # Между (≬) 'NotCupCap': ('\u226D', '≭'), # Не эквивалентно (≭) 'nlt': ('\u226E', '≮'), # Не меньше (≮) 'ngt': ('\u226F', '≯'), # Не больше (≯) 'nle': ('\u2270', '≰'), # Не меньше, не равно (≰) 'nge': ('\u2271', '≱'), # Не больше, не равно (≱) 'lsim': ('\u2272', '≲'), # Меньше либо эквивалентно (≲) 'gsim': ('\u2273', '≳'), # Больше либо эквивалентно (≳) 'nlsim': ('\u2274', '≴'), # Ни меньше, ни эквивалентно (≴) 'ngsim': ('\u2275', '≵'), # Ни больше, ни эквивалентно (≵) 'lg': ('\u2276', '≶'), # Меньше либо больше (≶) 'gl': ('\u2277', '≷'), # Больше либо меньше (≷) 'ntlg': ('\u2278', '≸'), # Ни меньше, ни больше (≸) 'ntgl': ('\u2279', '≹'), # Ни больше, ни меньше (≹) 'pr': ('\u227A', '≺'), # Предшествует (≺) 'sc': ('\u227B', '≻'), # Следует за (≻) 'prcue': ('\u227C', '≼'), # Предшествует либо равно (≼) 'sccue': ('\u227D', '≽'), # Следует за либо равно (≽) 'prsim': ('\u227E', '≾'), # Предшествует либо эквивалентно (≾) 'scsim': ('\u227F', '≿'), # Следует за либо эквивалентно (≿) 'npr': ('\u2280', '⊀'), # Не предшествует (⊀) 'nsc': ('\u2281', '⊁'), # Не следует за (⊁) 'sub': ('\u2282', '⊂'), # Подмножество (⊂) 'sup': ('\u2283', '⊃'), # Надмножество (⊃) 'nsub': ('\u2284', '⊄'), # Не подмножество (⊄) 'nsup': ('\u2285', '⊅'), # Не надмножество (⊅) 'sube': ('\u2286', '⊆'), # Подмножество либо совпадает (⊆) 'supe': ('\u2287', '⊇'), # Надмножество либо совпадает (⊇) 'nsube': ('\u2288', '⊈'), # Ни подмножество, ни совпадает (⊈) 'nsupe': ('\u2289', '⊉'), # Ни надмножество, ни совпадает (⊉) 'subne': ('\u228A', '⊊'), # Подмножество и не совпадает (⊊) 'supne': ('\u228B', '⊋'), # Надмножество и не совпадает (⊋) 'cupdot': ('\u228D', '⊍'), # Умножение мультимножеств (⊍) 'uplus': ('\u228E', '⊎'), # Объединение мультимножеств, Подмножество с плюсом (⊎) 'sqsub': ('\u228F', '⊏'), # Образ в квадрате (⊏) 'sqsup': ('\u2290', '⊐'), # Прообраз в квадрате (⊐) 'sqsube': ('\u2291', '⊑'), # Образ в квадрате либо равно (⊑) 'sqsupe': ('\u2292', '⊒'), # Прообраз в квадрате либо равно (⊒) 'sqcap': ('\u2293', '⊓'), # Пересечение в квадрате (⊓) 'sqcup': ('\u2294', '⊔'), # Объединение в квадрате (⊔) 'oplus': ('\u2295', '⊕'), # Плюс в круге (⊕) 'ominus': ('\u2296', '⊖'), # Минус в круге (⊖) 'otimes': ('\u2297', '⊗'), # Произведение в круге (⊗) 'osol': ('\u2298', '⊘'), # Дробная черта в круге (⊘) 'odot': ('\u2299', '⊙'), # Точка в круге (⊙) 'ocir': ('\u229A', '⊚'), # Кольцевой оператор в круге (⊚) 'oast': ('\u229B', '⊛'), # Оператор звёздочка в круге (⊛) 'odash': ('\u229D', '⊝'), # Дефис в круге (⊝) 'plusb': ('\u229E', '⊞'), # Плюс в квадрате (⊞) 'minusb': ('\u229F', '⊟'), # Минус в квадрате (⊟) 'timesb': ('\u22A0', '⊠'), # Произведение в квадрате (⊠) 'sdotb': ('\u22A1', '⊡'), # Точка в квадрате (⊡) 'vdash': ('\u22A2', '⊢'), # Шеврон вправо (⊢) 'dashv': ('\u22A3', '⊣'), # Шеврон влево (⊣) 'top': ('\u22A4', '⊤'), # Истина, Шеврон вниз (⊤) 'bot': ('\u22A5', '⊥'), # Ложь, Шеврон вверх (⊥) 'models': ('\u22A7', '⊧'), # Моделирует (⊧) 'vDash': ('\u22A8', '⊨'), # Истина (⊨) 'Vdash': ('\u22A9', '⊩'), # Влечёт (⊩) 'Vvdash': ('\u22AA', '⊪'), # Тройная вертикальная черта с перекладиной справа (⊪) 'VDash': ('\u22AB', '⊫'), # Двойная вертикальная черта с двойной перекладиной справа (⊫) 'nvdash': ('\u22AC', '⊬'), # Не доказано (⊬) 'nvDash': ('\u22AD', '⊭'), # Не истина (⊭) 'nVdash': ('\u22AE', '⊮'), # Не влечёт (⊮) 'nVDash': ('\u22AF', '⊯'), # Двойная вертикальная черта с двойной перекладиной справа с отрицанием (⊯) 'prurel': ('\u22B0', '⊰'), # Предшествует относительно (⊰) 'scurel': ('\u22B1', '&scurel;'), # Следует за относительно (⊱) 'vltri': ('\u22B2', '⊲'), # Нормальная подгруппа (⊲) 'vrtri': ('\u22B3', '⊳'), # Содержит как нормальную подгруппу (⊳) 'ltrie': ('\u22B4', '⊴'), # Нормальная подгруппа либо совпадает (⊴) 'rtrie': ('\u22B5', '⊵'), # Содержит как нормальную подгруппу либо совпадает (⊵) 'origof': ('\u22B6', '⊶'), # Прообраз (⊶) 'imof': ('\u22B7', '⊷'), # Образ, Импликация (⊷) 'mumap': ('\u22B8', '⊸'), # Многозначное отображение (⊹) 'hercon': ('\u22B9', '⊹'), # Эрмитово сопряжение матрицы (⊹) 'intcal': ('\u22BA', '⊺'), # Включение (⊺) 'veebar': ('\u22BB', '⊻'), # Исключающее ИЛИ (⊻) 'barvee': ('\u22BE', '⊽'), # Логическое ИЛИ с отрицанием (⊽) 'angrtvb': ('\u22BE', '⊾'), # Правый угол с дугой (⊾) 'lrtri': ('\u22BF', '⊿'), # Треугольник вершиной вправо (⊿) 'xwedge': ('\u22C0', '⋀'), # N-арное логическое И (⋀) 'xvee': ('\u22C1', '⋁'), # N-арное логическое ИЛИ (⋁) 'xcap': ('\u22C2', '⋂'), # N-арное пересечение (⋂) 'xcup': ('\u22C3', '⋃'), # N-арное объединение (⋃) 'diamond': ('\u22C4', '⋄'), # Ромб (⋄) 'sdot': ('\u22C5', '⋅'), # Оператор точка (⋅) 'Star': ('\u22C6', '⋆'), # Оператор звёздочка (⋆) 'divonx': ('\u22C7', '⋇'), # Деление с умножением, Кратность деления (⋇) 'bowtie': ('\u22C8', '⋈'), # Бабочка (⋈) 'ltimes': ('\u22C9', '⋉'), # Полупрямое произведение с нормальным фактором слева (⋉) 'rtimes': ('\u22CA', '⋊'), # Полупрямое произведение с нормальным фактором справа (⋊) 'lthree': ('\u22CB', '⋋'), # Левое полупрямое произведение (⋋) 'rthree': ('\u22CC', '⋌'), # Правое полупрямое произведение (⋌) 'bsime': ('\u22CD', '⋍'), # Обратное волнистое равно (⋍) 'cuvee': ('\u22CE', '⋎'), # Волнистое логическое ИЛИ (⋎) 'cuwed': ('\u22CF', '⋏'), # Волнистое логическое И (⋏) 'Sub': ('\u22D0', '⋐'), # Двойное подмножество (⋐) 'Sup': ('\u22D1', '⋑'), # Двойное надмножество (⋑) 'Cap': ('\u22D2', '⋒'), # Двойное пересечение (⋒) 'Cup': ('\u22D3', '⋓'), # Двойное объединение (⋓) 'fork': ('\u22D4', '⋔'), # Вилка (⋔) 'epar': ('\u22D5', '⋕'), # Равно и параллельно (⋕) 'ltdot': ('\u22D6', '⋖'), # Меньше с точкой (⋖) 'gtdot': ('\u22D7', '⋗'), # Больше с точкой (⋗) 'Ll': ('\u22D8', '⋘'), # Очень много меньше (⋘) 'Gg': ('\u22D9', '⋙'), # Очень много больше (⋙) 'leg': ('\u22DA', '⋚'), # Меньше, равно либо больше (⋚) 'gel': ('\u22DB', '⋛'), # Больше, равно либо меньше (⋛) 'cuepr': ('\u22DE', '⋞'), # Равно либо предшествует (⋞) 'cuesc': ('\u22DF', '⋟'), # Равно либо следует за (⋟) 'nprcue': ('\u22E0', '⋠'), # Не предшествует либо равно (⋠) 'nsccue': ('\u22E1', '⋡'), # Не следует за либо равно (⋡) 'nsqsube': ('\u22E2', '⋢'), # Не образ в квадрате либо равно (⋢) 'nsqsupe': ('\u22E3', '⋣'), # Не прообраз в квадрате либо равно (⋣) 'lnapprox': ('\u22E4', '⪉'), # Меньше, но не приблизительно равно (⋤) 'gnapprox': ('\u22E5', '⪊'), # Больше, но не приблизительно равно (⋥) 'lnsim': ('\u22E6', '⋦'), # Меньше, но не эквивалентно (⋦) 'gnsim': ('\u22E7', '⋧'), # Больше, но не эквивалентно (⋧) 'prnsim': ('\u22E8', '⋨'), # Предшествует, но не эквивалентно (⋨) 'scnsim': ('\u22E9', '⋩'), # Следует за, но не эквивалентно (⋩) 'nltri': ('\u22EA', '⋪'), # Не содержится как нормальная подгруппа (⋪ 'nrtri': ('\u22EB', '⋫'), # Не содержит как нормальную подгруппу (⋫) 'nltrie': ('\u22EC', '⋬'), # Не содержится как нормальная подгруппа либо совпадает (⋬) 'nrtrie': ('\u22ED', '⋭'), # Не содержит как нормальную подгруппу либо совпадает (⋭) 'vellip': ('\u22EE', '⋮'), # Вертикальное многоточие (⋮) 'ctdot': ('\u22EF', '⋯'), # Внутристрочное горизонтальное многоточие (⋯) 'utdot': ('\u22F0', '⋰'), # Диагональное многоточие сверху вправо (⋰) 'dtdot': ('\u22F1', '⋱'), # Диагональное многоточие снизу вправо (⋱) 'disin': ('\u22F2', '⋲'), # Принадлежит с длинным горизонтальным штрихом (⋲) 'isinsv': ('\u22F3', '⋳'), # Принадлежит с вертикальной чертой в конце горизонтального штриха (⋳) 'isins': ('\u22F4', '⋴'), # Малое принадлежит с вертикальной чертой в конце горизонтального штриха (⋴) 'isindot': ('\u22F5', '⋵'), # Принадлежит с точкой сверху (⋵) 'notinvc': ('\u22F6', '⋶'), # Принадлежит с чертой сверху (⋶) 'notinvb': ('\u22F7', '⋷'), # Малое принадлежит с чертой сверху (⋷) 'isinE': ('\u22F8', '⋹'), # Принадлежит с двумя горизонтальными штрихами (⋸) 'nisd': ('\u22FA', '⋺'), # Содержит с длинным горизонтальным штрихом (⋹) 'xnis': ('\u22FB', '⋻'), # Содержит с вертикальной чертой в конце горизонтального штриха (⋺) 'nis': ('\u22FC', '⋼'), # Малое содержит с вертикальной чертой в конце горизонтального штриха (⋼) 'notnivc': ('\u22FD', '⋽'), # Содержит с чертой сверху (⋽) 'notnivb': ('\u22FE', '⋾'), # Малое содержит с чертой сверху (⋾) 'barwed': ('\u2305', '⌅'), # Вертикальная черта с горизонтальной чертой (⌅) 'Barwed': ('\u2306', '⌆'), # Двойная вертикальная черта с горизонтальной чертой (⌆) 'lceil': ('\u2308', '⌈'), # Потолок числа, левая скобка (⌈) 'rceil': ('\u2309', '⌉'), # Потолок числа, правая скобка (⌉) 'lfloor': ('\u230A', '⌊'), # Пол числа, левая скобка (⌊) 'rfloor': ('\u230B', '⌋'), # Пол числа, правая скобка (⌋) 'lang': ('\u2329', '⟨'), # Левая угловая скобка (〈) 'rang': ('\u232A', '⟩'), # Правая угловая скобка (〉) } # Другие символы (пример для расширения) SYMBOL_ENTITIES = { 'copy': ('\u00A9', '©'), # Копирайт (©) 'reg': ('\u00AE', '®'), # Зарегистрированный товарный знак (®) 'trade': ('\u2122', '™'), # Знак торговой марки (™) 'copysr': ('\u2117', '℗'), # Авторское право звукозаписи, продакшн (℗) 'commat': ('\u0040', '@'), # Коммерческое at, `собака` (@) 'Copf': ('\u2102', 'ℂ'), # Дважды начерченная заглавная С (ℂ) 'incare': ('\u2105', '℅'), # Забота о (℅) 'gscr': ('\u210A', 'ℊ'), # Каллиграфическая строчная g (ℊ) 'hamilt': ('\u210B', 'ℋ'), # Каллиграфическая заглавная H (ℋ) 'Hfr': ('\u210C', 'ℌ'), # Готическая заглавная H (ℌ) 'Hopf': ('\u210D', 'ℍ'), # Дважды начерченная заглавная H (ℍ) 'planckh': ('\u210E', 'ℎ'), # Постоянная Планка (ℎ) 'planck': ('\u210F', 'ℏ'), # Постоянная Планка делённая на два пи, константа Дирака (ℏ) 'Iscr': ('\u2110', 'ℐ'), # Каллиграфическая заглавная I (ℐ) 'image': ('\u2111', 'ℑ'), # Готическая заглавная I (ℑ) 'Lscr': ('\u2112', 'ℒ'), # Каллиграфическая заглавная L (ℒ) 'ell': ('\u2113', 'ℓ'), # Каллиграфическая строчная l (ℓ) 'Nopf': ('\u2115', 'ℕ'), # Дважды начерченная заглавная N (ℕ) 'numero': ('\u2116', '№'), # Знак номера (№) 'weierp': ('\u2118', '℘'), # Каллиграфическая заглавная P (℘) 'Popf': ('\u2119', 'ℙ'), # Дважды начерченная заглавная P (ℙ) 'Qopf': ('\u211A', 'ℚ'), # Дважды начерченная заглавная Q (ℚ) 'Rscr': ('\u211B', 'ℛ'), # Каллиграфическая заглавная R (ℜ) 'real': ('\u211C', 'ℜ'), # Готическая заглавная R (ℝ) 'Ropf': ('\u211D', 'ℝ'), # Дважды начерченная заглавная R (ℝ) 'rx': ('\u211E', '℞'), # Символ рецепта (℞) 'Zopf': ('\u2124', 'ℤ'), # Дважды начерченная заглавная Z (ℤ) 'mho': ('\u2127', '℧'), # Перевёрнутый знак ома (℧) 'Zfr': ('\u2128', 'ℨ'), # Готическая заглавная Z (ℨ) 'iiota': ('\u2129', '℩'), # Перевернутая греческая строчная буква йота (℩) 'bernou': ('\u212C', 'ℬ'), # Каллиграфическая заглавная B (ℬ) 'Cfr': ('\u212D', 'ℭ'), # Готическая заглавная C (ℭ) 'escr': ('\u212F', 'ℯ'), # Каллиграфическая строчная буква e (ℯ) 'Escr': ('\u2130', 'ℰ'), # Каллиграфическая заглавная E (ℰ) 'Fscr': ('\u2131', 'ℱ'), # Каллиграфическая заглавная F (ℱ) 'Mscr': ('\u2133', 'ℳ'), # Каллиграфическая заглавная M (ℳ) 'oscr': ('\u2134', 'ℴ'), # Каллиграфическая строчная буква o (ℴ) 'alefsym': ('\u2135', 'ℵ'), # Символ алеф (ℵ) 'beth': ('\u2136', 'ℶ'), # Символ бет (ℶ) 'gimel': ('\u2137', 'ℷ'), # Символ гимел (ℷ) 'daleth': ('\u2138', 'ℸ'), # Символ далет (ℸ) 'DD': ('\u2145', 'ⅅ'), # Дважды начерченная курсивная заглавная D (ⅅ) 'dd': ('\u2146', 'ⅆ'), # Дважды начерченная курсивная строчная d (ⅆ) 'ee': ('\u2147', 'ⅇ'), # Дважды начерченная курсивная строчная e (ⅇ) 'ii': ('\u2148', 'ⅈ'), # Дважды начерченная курсивная строчная i (ⅈ) 'ff': ('\u2149', '&ff;'), # Дважды начерченная курсивная строчная f (ⅉ) 'ffilig': ('\uFB03', 'ffi'), # Лигатура "ffi" (ffi) 'fflig': ('\uFB00', 'ff'), # Лигатура "ff" (ff) 'filig': ('\uFB01', 'fi'), # Лигатура "fi" (fi) 'fllig': ('\uFB02', 'fl'), # Лигатура "fl" (fl) 'starf': ('\u2605', '★'), # Закрашенная звезда (★) 'star': ('\u2606', '☆'), # Незакрашенная звезда (☆) 'phone': ('\u260E', '☎'), # Значок телефона (☎) 'female': ('\u2640', '♀'), # Венера (женский знак) (♀) 'male': ('\u2642', '♂'), # Марс (мужской знак) (♂) 'spades': ('\u2660', '♠'), # Пики закрашенные (♠) 'clubs': ('\u2663', '♣'), # Трефы закрашенные (♣) 'hearts': ('\u2665', '♥'), # Черви закрашенные (♥) 'diams': ('\u2666','♦'), # Бубны закрашенные (♦) 'loz': ('\u25CA', '◊'), # Ромб (◊) 'sung': ('\u266A', '♪'), # Музыкальная восьмая нота (♪) 'flat': ('\u266D', '♭'), # Музыкальный знак бемоль (♭) 'natural': ('\u266E', '♮'), # Музыкальный знак бекар (♮) 'sharp': ('\u266F', '♯'), # Музыкальный знак диез (♯) 'check': ('\u2713', '✓'), # Галочка (✓) 'cross': ('\u2717', '✗'), # Крестик (✗) 'malt': ('\u2720', '✠'), # Мальтийский крест (✠) 'sext': ('\u2736', '✶'), # Шестиконечная закрашенная звезда (✶) 'VerticalSeparator': ('\u2758', '❘'), # Тонкая вертикальная черта (❘) 'lbbrk': ('\u2772', '❲'), # Тонкая левая скобка панцерообразной формы (❲) 'rbbrk': ('\u2773', '❳'), # Тонкая правая скобка панцерообразной формы (❳) } # Знаки препинания KEY_AMP = 'amp' SYMBOL_PUNCTUATION = { # 'excl': ('\u0021', '!'), # Восклицательный знак (!) # 'num': ('\u0023', '#'), # Решётка (#) # 'percnt': ('\u0025', '%'), # Знак процента (%) KEY_AMP: ('\u0026', '&'), # Амперсанд (&) # 'lpar': ('\u0028', '('), # Левая круглая скобка (() # 'rpar': ('\u0029', ')'), # Правая круглая скобка ()) #'ast': ('\u002A', '*'), # Звёздочка (*) #'comma': ('\u002C', ','), # Запятая (,) # 'period': ('\u002E', '.'), # Точка (.) #'sol': ('\u002F', '/'), # Косая черта (/) # 'colon': ('\u003A', ':'), # Двоеточие (:) # 'semi': ('\u003B', ';'), # Точка с запятой (;) # 'quest': ('\u003F', '?'), # Знак вопроса (?) # 'lbrack': ('\u005B', '['), # Левая квадратная скобка ([) # 'bsol': ('\u005C', '\'), # Обратная косая черта (\) # 'rbrack': ('\u005D', ']'), # Правая квадратная скобка (]) # 'Hat': ('\u005E', '^'), # Циркумфлекс (^) -- знак вставки, карет # 'lowbar': ('\u005F', '_'), # Нижнее подчёркивание (_) # 'grave': ('\u0060', '`'), # Гравис, Апостроф (обратная кавычка) (`) # 'lbrace': ('\u007B', '{'), # Левая фигурная скобка ({) # 'vert': ('\u007C', '|'), # Вертикальная черта (|) # 'rbrace': ('\u007D', '}'), # Правая фигурная скобка (}) # 'tilde': ('\u007E', '˜'), # Тильда (~) 'circ': ('\u02C6', 'ˆ'), # Модификатор буквы циркумфлекс, ударение (ˆ) 'lrm': ('\u200E', '‎'), # Метка слева направо (Left-to-Right Mark) 'rlm': ('\u200F', '‏'), # Метка справа налево (Right-to-Left Mark) 'iexcl': ('\u00A1', '¡'), # Перевернутый восклицательный знак (¡) 'brvbar': ('\u00A6', '¦'), # Изломанная вертикальная черта (¦) 'sect': ('\u00A7', '§'), # Знак параграфа (§) 'uml': ('\u00A8', '¨'), # Диэрезис (¨) 'ordf': ('\u00AA', 'ª'), # Женский порядковый индикатор (ª) 'not': ('\u00AC', '¬'), # Знак отрицания (¬) 'macr': ('\u00AF', '¯'), # Макрон (¯) 'acute': ('\u00B4', '´'), # Знак ударения (´) 'micro': ('\u00B5', 'µ'), # Знак микро (µ) 'para': ('\u00B6', '¶'), # Знак абзаца (¶) 'middot': ('\u00B7', '·'), # Точка по центру (·) 'cedil': ('\u00B8', '¸'), # Седиль (¸) 'ordm': ('\u00BA', 'º'), # Мужской порядковый индикатор (º) 'iquest': ('\u00BF', '¿'), # Перевернутый вопросительный знак (¿) 'Vert': ('\u2016', '‖'), # Двойная вертикальная черта (‖) 'dagger': ('\u2020', '†'), # Крестик (†) 'Dagger': ('\u2021', '‡'), # Двойной крестик (‡) 'bull': ('\u2022', '•'), # Маркер списка (•) 'nldr': ('\u2025', '‥'), # Двухточечный пунктир (‥) 'hellip': ('\u2026', '…'), # Многоточие (…) 'permil': ('\u2030', '‰'), # Знак промилле (‰) 'pertenk': ('\u2031', '‱'), # Знак на десять тысяч (‱) 'prime': ('\u2032', '′'), # Знак штриха (одинарная минута) (′) 'Prime': ('\u2033', '″'), # Двойной штрих (двойная минута) (″) 'tprime': ('\u2034', '‴'), # Тройной штрих (тройная минута) (‴) 'bprime': ('\u2035', '‵'), # Обратный штрих (обратная минута) (‵) 'oline': ('\u203E', '‾'), # Надчёркивание (длинная черта над текстом) (‾) 'caret': ('\u2041', '⁁'), # Знак вставки точки ввода (⁁) 'hybull': ('\u2043', '⁃'), # Маркер списка дефис (⁃) 'frasl': ('\u2044', '⁄'), # Дробная наклонная черта (Fraction Slash) (⁄) 'bsemi': ('\u204F', '⁏'), # Инвертированная точка с запятой (⁏) 'qprime': ('\u2057', '⁗'), # Четырехкратный штрих (⁗) } # Дробные символы и знаки SYMBOL_FRACTIONS = { 'frac12': ('\u00BD', '½'), # Обычная дробь 1/2 (½) 'frac13': ('\u2153', '⅓'), # Обычная дробь 1/3 (⅓) 'frac14': ('\u00BC', '¼'), # Обычная дробь 1/4 (¼) 'frac15': ('\u2155', '⅕'), # Обычная дробь 1/5 (⅕) 'frac16': ('\u2159', '⅙'), # Обычная дробь 1/6 (⅙) 'frac17': ('\u215A', '&frac17;'), # Обычная дробь 1/7 (⅐) 'frac18': ('\u215B', '⅛'), # Обычная дробь 1/8 (⅛) 'frac19': ('\u215C', '&frac19;'), # Обычная дробь 1/9 (⅑) 'frac110': ('\u215D', '&frac110;'), # Обычная дробь 1/10 (⅒) 'frac23': ('\u2154', '⅔'), # Обычная дробь 2/3 (⅔) 'frac25': ('\u2156', '⅖'), # Обычная дробь 2/5 (⅖) 'frac34': ('\u00BE', '¾'), # Обычная дробь 3/4 (¾) 'frac35': ('\u2157', '⅗'), # Обычная дробь 3/5 (⅗) 'frac38': ('\u215A', '⅜'), # Обычная дробь 3/8 (⅜) 'frac45': ('\u2158', '⅘'), # Обычная дробь 4/5 (⅘) 'frac56': ('\u215A', '⅚'), # Обычная дробь 5/6 (⅚) 'frac58': ('\u215B', '⅝'), # Обычная дробь 5/8 (⅝) 'frac78': ('\u215B', '⅞'), # Обычная дробь 7/8 (⅞) } # Греческие символы GREEK_ENTITIES = { 'Alpha': ('\u0391', 'Α'), # Греческая заглавная буква Альфа (Α) 'Beta': ('\u0392', 'Β'), # Греческая заглавная буква Бета (Β) 'Gamma': ('\u0393', 'Γ'), # Греческая заглавная буква Гамма (Γ) 'Delta': ('\u0394', 'Δ'), # Греческая заглавная буква Дельта (Δ) 'Epsilon': ('\u0395', 'Ε'), # Греческая заглавная буква Эпсилон (Ε) 'Zeta': ('\u0396', 'Ζ'), # Греческая заглавная буква Зета (Ζ) 'Eta': ('\u0397', 'Η'), # Греческая заглавная буква Эта (Η) 'Theta': ('\u0398', 'Θ'), # Греческая заглавная буква Тета (Θ) 'Iota': ('\u0399', 'Ι'), # Греческая заглавная буква Иота (Ι) 'Kappa': ('\u039A', 'Κ'), # Греческая заглавная буква Каппа (Κ) 'Lambda': ('\u039B', 'Λ'), # Греческая заглавная буква Лямбда (Λ) 'Mu': ('\u039C', 'Μ'), # Греческая заглавная буква Мю (Μ) 'Nu': ('\u039D', 'Ν'), # Греческая заглавная буква Ню (Ν) 'Xi': ('\u039E', 'Ξ'), # Греческая з��главная буква Кси (Ξ) 'Omicron': ('\u039F', 'Ο'), # Греческая заглавная буква Омикрон (Ο) 'Pi': ('\u03A0', 'Π'), # Греческая заглавная буква Пи (Π) 'Rho': ('\u03A1', 'Ρ'), # Греческая заглавная буква Ро (Ρ) 'Sigma': ('\u03A3', 'Σ'), # Греческая заглавная буква Сигма (Σ) 'Tau': ('\u03A4', 'Τ'), # Греческая заглавная буква Тау (Τ) 'Upsilon': ('\u03A5', 'Υ'), # Греческая заглавная буква Упсилон (Υ) 'Phi': ('\u03A6', 'Φ'), # Греческая заглавная буква Фи (Φ) 'Chi': ('\u03A7', 'Χ'), # Греческая заглавная буква Хи (Χ) 'Psi': ('\u03A8', 'Ψ'), # Греческая заглавная буква Пси (Ψ) 'Omega': ('\u03A9', 'Ω'), # Греческая заглавная буква Омега (Ω) 'alpha': ('\u03B1', 'α'), # Греческая строчная буква Альфа (α) 'beta': ('\u03B2', 'β'), # Греческая строчная буква Бета (β) 'gamma': ('\u03B3', 'γ'), # Греческая строчная буква Гамма (γ) 'delta': ('\u03B4', 'δ'), # Греческая строчная буква Дельта (δ) 'epsilon': ('\u03B5', 'ε'), # Греческая строчная буква Эпсилон (ε) 'zeta': ('\u03B6', 'ζ'), # Греческая строчная буква Зета (ζ) 'eta': ('\u03B7', 'η'), # Греческая строчная буква Эта (η) 'theta': ('\u03B8', 'θ'), # Греческая строчная буква Тета (θ) 'iota': ('\u03B9', 'ι'), # Греческая строчная буква Иота (ι) 'kappa': ('\u03BA', 'κ'), # Греческая строчная буква Каппа (κ) 'lambda': ('\u03BB', 'λ'), # Греческая строчная буква Лямбда (λ) 'mu': ('\u03BC', 'μ'), # Греческая строчная буква Мю (μ) 'nu': ('\u03BD', 'ν'), # Греческая строчная буква Ню (ν) 'xi': ('\u03BE', 'ξ'), # Греческая строчная буква Кси (ξ) 'omicron': ('\u03BF', 'ο'), # Греческая строчная буква Омикрон (ο) 'pi': ('\u03C0', 'π'), # Греческая строчная буква Пи (π) 'rho': ('\u03C1', 'ρ'), # Греческая строчная буква Ро (ρ) 'sigma': ('\u03C3', 'σ'), # Греческая строчная буква Сигма (σ) 'tau': ('\u03C4', 'τ'), # Греческая строчная буква Тау (τ) 'upsilon': ('\u03C5', 'υ'), # Греческая строчная буква Упсилон (υ) 'phi': ('\u03C6', 'φ'), # Греческая строчная буква Фи (φ) 'chi': ('\u03C7', 'χ'), # Греческая строчная буква Хи (χ) 'psi': ('\u03C8', 'ψ'), # Греческая строчная буква Пси (ψ) 'omega': ('\u03C9', 'ω'), # Греческая строчная буква Омега (ω) 'thetasym': ('\u03D1', 'ϑ'), # Греческая строчная буква пи (ϖ) 'upsih': ('\u03D2', 'ϒ'), # Греческая строчная буква ро (ϱ) 'piv': ('\u03D6', 'ϖ'), # Греческая строчная буква пи (ϖ) } # Лаинские буквы и символы (умляуты, акценты и т.д.) LATIN_SPECIAL_ENTITIES = { 'Agrave': ('\u00C0', 'À'), # Латинская заглавная буква A с грависом (À) 'Aacute': ('\u00C1', 'Á'), # Латинская заглавная буква A с акутом (Á) 'Acirc': ('\u00C2', 'Â'), # Латинская заглавная буква A с циркумфлексом (Â) 'Atilde': ('\u00C3', 'Ã'), # Латинская заглавная буква A с тильдой (Ã) 'Auml': ('\u00C4', 'Ä'), # Латинская заглавная буква A с диэризисом/умляутом (Ä) 'Aring': ('\u00C5', 'Å'), # Латинская заглавная буква A с кружочком сверху (Å) 'AElig': ('\u00C6', 'Æ'), # Лигатура, латинская заглавная буква AE (Æ) 'Ccedil': ('\u00C7', 'Ç'), # Латинская заглавная буква C с седилью (Ç) 'Egrave': ('\u00C8', 'È'), # Латинская заглавная буква E с грависом (È) 'Eacute': ('\u00C9', 'É'), # Латинская заглавная буква E с акутом (É) 'Ecirc': ('\u00CA', 'Ê'), # Латинская заглавная буква E с циркумфлексом (Ê) 'Euml': ('\u00CB', 'Ë'), # Латинская заглавная буква E с диэризисом/умляутом (Ë) 'Igrave': ('\u00CC', 'Ì'), # Латинская заглавная буква I с грависом (Ì) 'Iacute': ('\u00CD', 'Í'), # Латинская заглавная буква I с акутом (Í) 'Icirc': ('\u00CE', 'Î'), # Латинская заглавная буква I с циркумфлексом (Î) 'Iuml': ('\u00CF', 'Ï'), # Латинская заглавная буква I с диэризисом/умляутом (Ï) 'ETH': ('\u00D0', 'Ð'), # Латинская заглавная буква Eth (Ð) 'Ntilde': ('\u00D1', 'Ñ'), # Латинская заглавная буква N с тильдой (Ñ) 'Ograve': ('\u00D2', 'Ò'), # Латинская заглавная буква O с грависом (Ò) 'Oacute': ('\u00D3', 'Ó'), # Латинская заглавная буква O с акутом (Ó) 'Ocirc': ('\u00D4', 'Ô'), # Латинская заглавная буква O с циркумфлексом (Ô) 'Otilde': ('\u00D5', 'Õ'), # Латинская заглавная буква O с тильдой (Õ) 'Ouml': ('\u00D6', 'Ö'), # Латинская заглавная буква O с диэризисом/умляутом (Ö) 'Oslash': ('\u00D8', 'Ø'), # Латинская заглавная буква O с чертой (Ø) 'Ugrave': ('\u00DD', 'Ù'), # Латинская заглавная буква U с грависом (Ù) 'Uacute': ('\u00DA', 'Ú'), # Латинская заглавная буква U с акутом (Ú) 'Ucirc': ('\u00DB', 'Û'), # Латинская заглавная буква U с циркумфлексом (Û) 'Uuml': ('\u00DC', 'Ü'), # Латинская заглавная буква U с диэризисом/умляутом (Ü) 'Yacute': ('\u00DD', 'Ý'), # Латинская заглавная буква Y с акутом (Ý) 'THORN': ('\u00DE', 'Þ'), # Латинская заглавная буква Thorn (Þ) 'szlig': ('\u00DF', 'ß'), # Латинская строчная буква Eszett (ß) 'agrave': ('\u00E0', 'à'), # Латинская строчная буква a с грависом (à) 'aacute': ('\u00E1', 'á'), # Латинская строчная буква a с акутом (á) 'acirc': ('\u00E2', 'â'), # Латинская строчная буква a с циркумфлексом (â) 'atilde': ('\u00E3', 'ã'), # Латинская строчная буква a с тильдой (ã) 'auml': ('\u00E4', 'ä'), # Латинская строчная буква a с диэризисом/умляутом (ä) 'aring': ('\u00E5', 'å'), # Латинская строчная буква a с кружочком сверху (å) 'aelig': ('\u00E6', 'æ'), # Лигатура, латинская строчная буква ae (æ) 'ccedil': ('\u00E7', 'ç'), # Латинская строчная буква c с седилью (ç) 'egrave': ('\u00E8', 'è'), # Латинская строчная буква e с грависом (è) 'eacute': ('\u00E9', 'é'), # Латинская строчная буква e с акутом (é) 'ecirc': ('\u00EA', 'ê'), # Латинская строчная буква e с циркумфлексом (ê) 'euml': ('\u00EB', 'ë'), # Латинская строчная буква e с диэризисом/умляутом (ë) 'igrave': ('\u00EC', 'ì'), # Латинская строчная буква i с грависом (ì) 'iacute': ('\u00ED', 'í'), # Латинская строчная буква i с акутом (í) 'icirc': ('\u00EE', 'î'), # Латинская строчная буква i с циркумфлексом (î) 'iuml': ('\u00EF', 'ï'), # Латинская строчная буква i с диэризисом/умляутом (ï) 'eth': ('\u00F0', 'ð'), # Латинская строчная буква eth (ð) 'ntilde': ('\u00F1', 'ñ'), # Латинская строчная буква n с тильдой (ñ) 'ograve': ('\u00F2', 'ò'), # Латинская строчная буква o с грависом (ò) 'oacute': ('\u00F3', 'ó'), # Латинская строчная буква o с акутом (ó) 'ocirc': ('\u00F4', 'ô'), # Латинская строчная буква o с циркумфлексом (ô) 'otilde': ('\u00F5', 'õ'), # Латинская строчная буква o с тильдой (õ) 'ouml': ('\u00F6', 'ö'), # Латинская строчная буква o с диэризисом/умляутом (ö) 'oslash': ('\u00F8', 'ø'), # Латинская строчная буква o с чертой (ø) 'ugrave': ('\u00F9', 'ù'), # Латинская строчная буква u с грависом (ù) 'uacute': ('\u00FA', 'ú'), # Латинская строчная буква u с акутом (ú) 'ucirc': ('\u00FB', 'û'), # Латинская строчная буква u с циркумфлексом (û) 'uuml': ('\u00FC', 'ü'), # Латинская строчная буква u с диэризисом/умляутом (ü) 'yacute': ('\u00FD', 'ý'), # Латинская строчная буква y с акутом (ý) 'thorn': ('\u00FE', 'þ'), # Латинская строчная буква thorn (þ) 'yuml': ('\u00FF', 'ÿ'), # Латинская строчная буква y с диэризисом/умляутом (ÿ) 'Amacr': ('\u0100', 'Ā'), # Латинская строчная буква a с макроном (Ā) 'amacr': ('\u0101', 'ā'), # Латинская строчная буква a с макроном (ā) 'Abreve': ('\u0102', 'Ă'), # Латинская заглавная буква A с бревисом (Ă) 'abreve': ('\u0103', 'ă'), # Латинская строчная буква a с бревисом (ă) 'Aogon': ('\u0104', 'Ą'), # Латинская заглавная буква A с огонеком (Ą) 'aogon': ('\u0105', 'ą'), # Латинская строчная буква a с огонеком (ą) 'Cacute': ('\u0106', 'Ć'), # Латинская заглавная буква C с акутом (Ć) 'cacute': ('\u0107', 'ć'), # Латинская строчная буква c с акутом (ć) 'Ccirc': ('\u0108', 'Ĉ'), # Латинская заглавная буква C с циркумфлексом (Ĉ) 'ccirc': ('\u0109', 'ĉ'), # Латинская строчная буква c с циркумфлексом (ĉ) 'Cdot': ('\u010A', 'Ċ'), # Латинская заглавная буква C с точкой сверху (Ċ) 'cdot': ('\u010B', 'ċ'), # Латинская строчная буква c с точкой сверху (ċ) 'Ccaron': ('\u010C', 'Č'), # Латинская заглавная буква C с гачеком/карон (Č) 'ccaron': ('\u010D', 'č'), # Латинская строчная буква c с гачеком/карон (č) 'Dcaron': ('\u010E', 'Ď'), # Латинская заглавная буква D с гачеком/карон (Ď) 'dcaron': ('\u010F', 'ď'), # Латинская строчная буква d с гачеком/карон (ď) 'Dstrok': ('\u0110', 'Đ'), # Латинская заглавная буква D с чертой (Đ) 'dstrok': ('\u0111', 'đ'), # Латинская строчная буква d с чертой (đ) 'Emacr': ('\u0112', 'Ē'), # Латинская заглавная буква E с макроном (Ē) 'emacr': ('\u0113', 'ē'), # Латинская строчная буква e с макроном (ē) 'Ebreve': ('\u0114', '&Ebreve;'), # Латинская заглавная буква E с бревисом (Ĕ) 'ebreve': ('\u0115', '&ebreve;'), # Латинская строчная буква e с бревисом (ĕ) 'Edot': ('\u0116', 'Ė'), # Латинская заглавная буква E с точкой сверху (Ė) 'edot': ('\u0117', 'ė'), # Латинская строчная буква e с точкой сверху (ė) 'Eogon': ('\u0118', 'Ę'), # Латинская заглавная буква E с огонеком (Ę) 'eogon': ('\u0119', 'ę'), # Латинская строчная буква e с огонеком (ę) 'Ecaron': ('\u011A', 'Ě'), # Латинская заглавная буква E с гачеком/карон (Ě) 'ecaron': ('\u011B', 'ě'), # Латинская строчная буква e с гачеком/карон (ě) 'Gcirc': ('\u011C', 'Ĝ'), # Латинская заглавная буква G с циркумфлексом (Ĝ) 'gcirc': ('\u011D', 'ĝ'), # Латинская строчная буква g с циркумфлексом (ĝ) 'Gbreve': ('\u011E', 'Ğ'), # Латинская заглавная буква G с бревисом (Ğ) 'gbreve': ('\u011F', 'ğ'), # Латинская строчная буква g с бревисом (ğ) 'Gdot': ('\u0120', 'Ġ'), # Латинская заглавная буква G с точкой сверху (Ġ) 'gdot': ('\u0121', 'ġ'), # Латинская строчная буква g с точкой сверху (ġ) 'Hcirc': ('\u0124', 'Ĥ'), # Латинская заглавная буква H с циркумфлексом (Ĥ) 'hcirc': ('\u0125', 'ĥ'), # Латинская строчная буква h с циркумфлексом (ĥ) 'Hstrok': ('\u0126', 'Ħ'), # Латинская заглавная буква H с чертой (Ħ) 'hstrok': ('\u0127', 'ħ'), # Латинская строчная буква h с чертой (ħ) 'Itilde': ('\u0128', 'Ĩ'), # Латинская заглавная буква I с тильдой (Ĩ) 'itilde': ('\u0129', 'ĩ'), # Латинская строчная буква i с тильдой (ĩ) 'Imacr': ('\u012A', 'Ī'), # Латинская заглавная буква I с макроном (Ī) 'imacr': ('\u012B', 'ī'), # Латинская строчная буква i с макроном (ī) 'Ibreve': ('\u012C', '&Ibreve;'), # Латинская заглавная буква I с бревисом (Ĭ) -- кажется нет в RFC 'ibreve': ('\u012D', '&ibreve;'), # Латинская строчная буква i с бревисом (ĭ) -- кажется нет в RFC 'Iogon': ('\u012E', 'Į'), # Латинская заглавная буква I с огонеком (Į) 'iogon': ('\u012F', 'į'), # Латинская строчная буква i с огонеком (į) 'Idot': ('\u0130', 'İ'), # Латинская заглавная буква I с точкой сверху (İ) 'dotlessi': ('\u0131', '&dotlessi;'), # Латинская строчная буква i без точки (ı) 'IJlig': ('\u0132', 'IJ'), # Лигатура, латинская заглавная буква IJ (IJ) 'ijlig': ('\u0133', 'ij'), # Лигатура, латинская строчная буква ij (ij) 'Jcirc': ('\u0134', 'Ĵ'), # Латинская заглавная буква J с циркумфлексом (Ĵ) 'jcirc': ('\u0135', 'ĵ'), # Латинская строчная буква j с циркумфлексом (ĵ) 'Kcedil': ('\u0136', 'Ķ'), # Латинская заглавная буква K с седилью (Ķ) 'kcedil': ('\u0137', 'ķ'), # Латинская строчная буква k с седилью (ķ) 'kgreen': ('\u0138', 'ĸ'), # Латинская строчная буква кра / k с гачеком/карон (ĸ) 'Lacute': ('\u0139', 'Ĺ'), # Латинская заглавная буква L с акутом (Ĺ) -- кажется нет в RFC 'lacute': ('\u013A', 'ĺ'), # Латинская строчная буква l с акутом (ĺ) 'Lcedil': ('\u013B', 'Ļ'), # Латинская заглавная буква L с седилью (Ļ) 'lcedil': ('\u013C', 'ļ'), # Латинская строчная буква l с седилью (ļ) 'Lcaron': ('\u013D', 'Ľ'), # Латинская заглавная буква L с гачеком/карон (Ľ) 'lcaron': ('\u013E', 'ľ'), # Латинская строчная буква l с гачеком/карон (ľ) 'Lmidot': ('\u013F', 'Ŀ'), # Латинская заглавная буква L с внутристрочной точкой (Ŀ) 'lmidot': ('\u0140', 'ŀ'), # Латинская строчная буква l с внутристрочной точкой (ŀ) 'Lstrok': ('\u0141', 'Ł'), # Латинская заглавная буква L с чертой, символ Лайткоина (Ł) 'lstrok': ('\u0142', 'ł'), # Латинская строчная буква l с чертой (ł) 'Nacute': ('\u0143', 'Ń'), # Латинская заглавная буква N с акутом (Ń) 'nacute': ('\u0144', 'ń'), # Латинская строчная буква n с акутом (ń) 'Ncedil': ('\u0145', 'Ņ'), # Латинская заглавная буква N с седилью (Ņ) 'ncedil': ('\u0146', 'ņ'), # Латинская строчная буква n с седилью (ņ) 'Ncaron': ('\u0147', 'Ň'), # Латинская заглавная буква N с гачеком/карон (Ň) 'ncaron': ('\u0148', 'ň'), # Латинская строчная буква n с гачеком/карон (ň) 'napos': ('\u0149', 'ʼn'), # Латинская строчная буква n предшествующим апострофом (ʼn) 'ENG': ('\u014A', 'Ŋ'), # Латинская заглавная буква Eng (Ŋ) 'eng': ('\u014B', 'ŋ'), # Латинская строчная буква eng (ŋ) 'Omacr': ('\u014C', 'Ō'), # Латинская заглавная буква O с макроном (Ō) 'omacr': ('\u014D', 'ō'), # Латинская строчная буква o с макроном (ō) 'Obreve': ('\u014E', '&Obreve;'), # Латинская заглавная буква O с бревисом (Ŏ) -- кажется нет в RFC 'obreve': ('\u014F', '&obreve;'), # Латинская строчная буква o с бревисом (ŏ) -- кажется нет в RFC 'Odblac': ('\u0150', 'Ő'), # Латинская заглавная буква O с двойным акутом (Ő) 'odblac': ('\u0151', 'ő'), # Латинская строчная буква o с двойным акутом (ő) 'OElig': ('\u0152', 'Œ'), # Лигатура, латинская заглавная буква OE (Œ) 'oelig': ('\u0153', 'œ'), # Лигатура, латинская строчная буква oe (œ) 'Racute': ('\u0154', 'Ŕ'), # Латинская заглавная буква R с акутом (Ŕ) 'racute': ('\u0155', 'ŕ'), # Латинская строчная буква r с акутом (ŕ) 'Rcedil': ('\u0156', 'Ŗ'), # Латинская заглавная буква R с седилью (Ŗ) 'rcedil': ('\u0157', 'ŗ'), # Латинская строчная буква r с седилью (ŗ) 'Rcaron': ('\u0158', 'Ř'), # Латинская заглавная буква R с гачеком/карон (Ř) 'rcaron': ('\u0159', 'ř'), # Латинская строчная буква r с гачеком/карон (ř) 'Sacute': ('\u015A', 'Ś'), # Латинская заглавная буква S с акутом (Ś) 'sacute': ('\u015B', 'ś'), # Латинская строчная буква s с акутом (ś) 'Scirc': ('\u015C', 'Ŝ'), # Латинская заглавная буква S с циркумфлексом (Ŝ) 'scirc': ('\u015D', 'ŝ'), # Латинская строчная буква s с циркумфлексом (ŝ) 'Scedil': ('\u015E', 'Ş'), # Латинская заглавная буква S с седилью (Ş) 'scedil': ('\u015F', 'ş'), # Латинская строчная буква s с седилью (ş) 'Scaron': ('\u0160', 'Š'), # Латинская заглавная буква S с гачеком/карон (Š) 'scaron': ('\u0161', 'š'), # Латинская строчная буква s с гачеком/карон (š) 'Tcedil': ('\u0162', 'Ţ'), # Латинская заглавная буква T с седилью (Ţ) 'tcedil': ('\u0163', 'ţ'), # Латинская строчная буква t с седилью (ţ) 'Tcaron': ('\u0164', 'Ť'), # Латинская заглавная буква T с гачеком/карон (Ť) 'tcaron': ('\u0165', 'ť'), # Латинская строчная буква t с гачеком/карон (ť) 'Tstrok': ('\u0166', 'Ŧ'), # Латинская заглавная буква T с чертой (Ŧ) 'tstrok': ('\u0167', 'ŧ'), # Латинская строчная буква t с чертой (ŧ) 'Utilde': ('\u0168', 'Ũ'), # Латинская заглавная буква U с тильдой (Ũ) 'utilde': ('\u0169', 'ũ'), # Латинская строчная буква u с тильдой (ũ) 'Umacr': ('\u016A', 'Ū'), # Латинская заглавная буква U с макроном (Ū) 'umacr': ('\u016B', 'ū'), # Латинская строчная буква u с макроном (ū) 'Ubreve': ('\u016C', 'Ŭ'), # Латинская заглавная буква U с бревисом (Ŭ) 'ubreve': ('\u016D', 'ŭ'), # Латинская строчная буква u с бревисом (ŭ) 'Uring': ('\u016E', 'Ů'), # Латинская заглавная буква U с кружочком сверху (Ů) 'uring': ('\u016F', 'ů'), # Латинская строчная буква u с кружочком сверху (ů) 'Udblac': ('\u0170', 'Ű'), # Латинская заглавная буква U с двойным акутом (Ű) 'udblac': ('\u0171', 'ű'), # Латинская строчная буква u с двойным акутом (ű) 'Uogon': ('\u0172', 'Ų'), # Латинская заглавная буква U с огонеком (Ų) 'uogon': ('\u0173', 'ų'), # Латинская строчная буква u с огонеком (ų) 'Wcirc': ('\u0174', 'Ŵ'), # Латинская заглавная буква W с циркумфлексом (Ŵ) 'wcirc': ('\u0175', 'ŵ'), # Латинская строчная буква w с циркумфлексом (ŵ) 'Ycirc': ('\u0176', 'Ŷ'), # Латинская заглавная буква Y с циркумфлексом (Ŷ) 'ycirc': ('\u0177', 'ŷ'), # Латинская строчная буква y с циркумфлексом (ŷ) 'Yuml': ('\u0178', 'Ÿ'), # Латинская заглавная буква Y с диэризисом/умляутом (Ÿ) 'Zacute': ('\u0179', 'Ź'), # Латинская заглавная буква Z с акутом (Ź) 'zacute': ('\u017A', 'ź'), # Латинская строчная буква z с акутом (ź) 'Zdot': ('\u017B', 'Ż'), # Латинская заглавная буква Z с точкой сверху (Ż) 'zdot': ('\u017C', 'ż'), # Латинская строчная буква z с точкой сверху (ż) 'Zcaron': ('\u017D', 'Ž'), # Латинская заглавная буква Z с гачеком/карон (Ž) 'zcaron': ('\u017E', 'ž'), # Латинская строчная буква z с гачеком/карон (ž) 'DownBreve': ('\u0311', '̑'), # Комбинируемая перевернутая бреве (круглая шапочка) } # --- Сборка и валидация --- # 1. Создаем единый словарь всех сущностей для удобного доступа ALL_ENTITIES = { **SHY_ENTITIES, **SPACE_ENTITIES, **DASH_ENTITIES, **MATH_ENTITIES, **GREEK_ENTITIES, **LATIN_SPECIAL_ENTITIES, **QUOTE_ENTITIES, **CURRENCY_ENTITIES, **SYMBOL_ENTITIES, **SYMBOL_PUNCTUATION, **SYMBOL_FRACTIONS } # Сущности, которые ВСЕГДА должны выводиться как мнемоники в режиме MODE_MIXED # Указываются их ИМЕНА (ключи из словарей выше). # NOTE: Повторное использование магических строк 'SHY', 'NBSP' и т.д. не создает новый объект в памяти. Умный Python # когда видит одинаковую строку в коде применяет интернирование строк (string interning). ALWAYS_MNEMONIC_IN_SAFE_MODE = frozenset([KEY_AMP, KEY_LT, KEY_GT, KEY_SHY, KEY_NBSP, KEY_ZWNJ, KEY_ZWJ])