diff options
author | Hans Hagen <pragma@wxs.nl> | 2021-02-12 18:57:41 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2021-02-12 18:57:41 +0100 |
commit | 79bdc958cec8c084f8c8472e8f600c60969b03fa (patch) | |
tree | 97e489a6c23b01dae519aa36a535d62c301fabee /tex/context/base/mkiv | |
parent | 45e121c1d9414786e677d931101af1357294e9b7 (diff) | |
download | context-79bdc958cec8c084f8c8472e8f600c60969b03fa.tar.gz |
2021-02-12 18:48:00
Diffstat (limited to 'tex/context/base/mkiv')
23 files changed, 425 insertions, 270 deletions
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua index 79a210338..7a04e869d 100644 --- a/tex/context/base/mkiv/char-def.lua +++ b/tex/context/base/mkiv/char-def.lua @@ -429,7 +429,6 @@ characters.data={ direction="on", linebreak="al", mathclass="binary", ---mathname="ast", mathsymbol=0x2217, synonyms={ "star" }, unicodeslot=0x2A, @@ -1675,8 +1674,8 @@ characters.data={ contextname="nobreakspace", description="NO-BREAK SPACE", direction="cs", - mongolian="nj", linebreak="gl", + mongolian="nj", specials={ "nobreak", 0x20 }, synonyms={ "nbsp", "non-breaking space" }, unicodeslot=0xA0, @@ -2352,6 +2351,7 @@ characters.data={ lccode=0xF8, linebreak="al", shcode=0x4F, + specials={ "with", 0x4F, 0x2F }, synonyms={ "latin capital letter o slash" }, unicodeslot=0xD8, }, @@ -2749,6 +2749,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x6F, + specials={ "with", 0x6F, 0x2F }, synonyms={ "latin small letter o slash" }, uccode=0xD8, unicodeslot=0xF8, @@ -3041,6 +3042,7 @@ characters.data={ lccode=0x111, linebreak="al", shcode=0x44, + specials={ "with", 0x44, 0x2F }, unicodeslot=0x110, }, { @@ -3052,6 +3054,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x64, + specials={ "with", 0x64, 0x2F }, uccode=0x110, unicodeslot=0x111, }, @@ -3307,6 +3310,7 @@ characters.data={ lccode=0x127, linebreak="al", shcode=0x48, + specials={ "with", 0x48, 0x2F }, unicodeslot=0x126, }, { @@ -3318,6 +3322,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x68, + specials={ "with", 0x68, 0x2F }, uccode=0x126, unicodeslot=0x127, }, @@ -3634,6 +3639,7 @@ characters.data={ lccode=0x142, linebreak="al", shcode=0x4C, + specials={ "with", 0x4C, 0x2F }, unicodeslot=0x141, }, { @@ -3645,6 +3651,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x6C, + specials={ "with", 0x6C, 0x2F }, uccode=0x141, unicodeslot=0x142, }, @@ -4079,6 +4086,7 @@ characters.data={ lccode=0x167, linebreak="al", shcode=0x54, + specials={ "with", 0x54, 0x2F }, unicodeslot=0x166, }, { @@ -4090,6 +4098,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x74, + specials={ "with", 0x74, 0x2F }, uccode=0x166, unicodeslot=0x167, }, @@ -4389,6 +4398,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x62, + specials={ "with", 0x62, 0x2F }, uccode=0x243, unicodeslot=0x180, }, @@ -4401,6 +4411,7 @@ characters.data={ lccode=0x253, linebreak="al", shcode=0x42, + specials={ "with", 0x42, 0x1FA9D }, unicodeslot=0x181, }, { @@ -4459,6 +4470,7 @@ characters.data={ lccode=0x188, linebreak="al", shcode=0x43, + specials={ "with", 0x43, 0x1FA9D }, unicodeslot=0x187, }, { @@ -4469,6 +4481,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x63, + specials={ "with", 0x63, 0x1FA9D }, uccode=0x187, unicodeslot=0x188, }, @@ -4491,6 +4504,7 @@ characters.data={ lccode=0x257, linebreak="al", shcode=0x44, + specials={ "with", 0x44, 0x1FA9D }, unicodeslot=0x18A, }, { @@ -4560,6 +4574,7 @@ characters.data={ lccode=0x192, linebreak="al", shcode=0x46, + specials={ "with", 0x46, 0x1FA9D }, unicodeslot=0x191, }, { @@ -4570,6 +4585,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x66, + specials={ "with", 0x66, 0x1FA9D }, synonyms={ "florin currency symbol", "folder", "function symbol", "latin small letter script f" }, uccode=0x191, unicodeslot=0x192, @@ -4583,6 +4599,7 @@ characters.data={ lccode=0x260, linebreak="al", shcode=0x47, + specials={ "with", 0x47, 0x1FA9D }, unicodeslot=0x193, }, { @@ -4621,6 +4638,7 @@ characters.data={ lccode=0x268, linebreak="al", shcode=0x49, + specials={ "with", 0x49, 0x2F }, synonyms={ "latin capital letter i bar" }, unicodeslot=0x197, }, @@ -4633,6 +4651,7 @@ characters.data={ lccode=0x199, linebreak="al", shcode=0x4B, + specials={ "with", 0x4B, 0x1FA9D }, unicodeslot=0x198, }, { @@ -4643,6 +4662,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x6B, + specials={ "with", 0x6B, 0x1FA9D }, uccode=0x198, unicodeslot=0x199, }, @@ -4759,6 +4779,7 @@ characters.data={ lccode=0x1A5, linebreak="al", shcode=0x50, + specials={ "with", 0x50, 0x1FA9D }, unicodeslot=0x1A4, }, { @@ -4769,6 +4790,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x70, + specials={ "with", 0x70, 0x1FA9D }, uccode=0x1A4, unicodeslot=0x1A5, }, @@ -4834,6 +4856,7 @@ characters.data={ lccode=0x1AD, linebreak="al", shcode=0x54, + specials={ "with", 0x54, 0x1FA9D }, unicodeslot=0x1AC, }, { @@ -4844,6 +4867,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x74, + specials={ "with", 0x74, 0x1FA9D }, uccode=0x1AC, unicodeslot=0x1AD, }, @@ -4899,6 +4923,7 @@ characters.data={ lccode=0x28B, linebreak="al", shcode=0x56, + specials={ "with", 0x56, 0x1FA9D }, synonyms={ "latin capital letter script v" }, unicodeslot=0x1B2, }, @@ -4911,6 +4936,7 @@ characters.data={ lccode=0x1B4, linebreak="al", shcode=0x59, + specials={ "with", 0x59, 0x1FA9D }, unicodeslot=0x1B3, }, { @@ -4921,6 +4947,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x79, + specials={ "with", 0x79, 0x1FA9D }, uccode=0x1B3, unicodeslot=0x1B4, }, @@ -4933,6 +4960,7 @@ characters.data={ lccode=0x1B6, linebreak="al", shcode=0x5A, + specials={ "with", 0x5A, 0x2F }, unicodeslot=0x1B5, }, { @@ -4943,6 +4971,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x7A, + specials={ "with", 0x7A, 0x2F }, synonyms={ "latin small letter z bar" }, uccode=0x1B5, unicodeslot=0x1B6, @@ -5015,6 +5044,7 @@ characters.data={ description="LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x296, 0x2F }, unicodeslot=0x1BE, }, { @@ -5466,6 +5496,7 @@ characters.data={ lccode=0x1E5, linebreak="al", shcode=0x47, + specials={ "with", 0x47, 0x2F }, unicodeslot=0x1E4, }, { @@ -5476,6 +5507,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x67, + specials={ "with", 0x67, 0x2F }, uccode=0x1E4, unicodeslot=0x1E5, }, @@ -6192,6 +6224,7 @@ characters.data={ lccode=0x225, linebreak="al", shcode=0x5A, + specials={ "with", 0x5A, 0x1FA9D }, unicodeslot=0x224, }, { @@ -6201,6 +6234,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x7A, + specials={ "with", 0x7A, 0x1FA9D }, uccode=0x224, unicodeslot=0x225, }, @@ -6415,6 +6449,7 @@ characters.data={ lccode=0x2C65, linebreak="al", shcode=0x41, + specials={ "with", 0x41, 0x2F }, unicodeslot=0x23A, }, { @@ -6425,6 +6460,7 @@ characters.data={ lccode=0x23C, linebreak="al", shcode=0x43, + specials={ "with", 0x43, 0x2F }, unicodeslot=0x23B, }, { @@ -6434,6 +6470,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x63, + specials={ "with", 0x63, 0x2F }, uccode=0x23B, unicodeslot=0x23C, }, @@ -6495,6 +6532,7 @@ characters.data={ lccode=0x180, linebreak="al", shcode=0x42, + specials={ "with", 0x42, 0x2F }, unicodeslot=0x243, }, { @@ -6520,6 +6558,7 @@ characters.data={ lccode=0x247, linebreak="al", shcode=0x45, + specials={ "with", 0x45, 0x2F }, unicodeslot=0x246, }, { @@ -6528,6 +6567,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x65, + specials={ "with", 0x65, 0x2F }, uccode=0x246, unicodeslot=0x247, }, @@ -6538,6 +6578,7 @@ characters.data={ lccode=0x249, linebreak="al", shcode=0x4A, + specials={ "with", 0x4A, 0x2F }, unicodeslot=0x248, }, { @@ -6546,6 +6587,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x6A, + specials={ "with", 0x6A, 0x2F }, uccode=0x248, unicodeslot=0x249, }, @@ -6573,6 +6615,7 @@ characters.data={ lccode=0x24D, linebreak="al", shcode=0x52, + specials={ "with", 0x52, 0x2F }, unicodeslot=0x24C, }, { @@ -6581,6 +6624,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x72, + specials={ "with", 0x72, 0x2F }, uccode=0x24C, unicodeslot=0x24D, }, @@ -6591,6 +6635,7 @@ characters.data={ lccode=0x24F, linebreak="al", shcode=0x59, + specials={ "with", 0x59, 0x2F }, unicodeslot=0x24E, }, { @@ -6599,6 +6644,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x79, + specials={ "with", 0x79, 0x2F }, uccode=0x24E, unicodeslot=0x24F, }, @@ -6636,6 +6682,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x62, + specials={ "with", 0x62, 0x1FA9D }, uccode=0x181, unicodeslot=0x253, }, @@ -6678,6 +6725,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x64, + specials={ "with", 0x64, 0x1FA9D }, uccode=0x18A, unicodeslot=0x257, }, @@ -6707,6 +6755,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x259, + specials={ "with", 0x259, 0x1FA9D }, unicodeslot=0x25A, }, { @@ -6733,6 +6782,7 @@ characters.data={ description="LATIN SMALL LETTER REVERSED OPEN E WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x25C, 0x1FA9D }, unicodeslot=0x25D, }, { @@ -6751,6 +6801,7 @@ characters.data={ description="LATIN SMALL LETTER DOTLESS J WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x237, 0x2F }, unicodeslot=0x25F, }, { @@ -6760,6 +6811,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x67, + specials={ "with", 0x67, 0x1FA9D }, uccode=0x193, unicodeslot=0x260, }, @@ -6812,6 +6864,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x68, + specials={ "with", 0x68, 0x1FA9D }, unicodeslot=0x266, }, { @@ -6820,6 +6873,7 @@ characters.data={ description="LATIN SMALL LETTER HENG WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0xA727, 0x1FA9D }, unicodeslot=0x267, }, { @@ -6829,6 +6883,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x69, + specials={ "with", 0x69, 0x2F }, uccode=0x197, unicodeslot=0x268, }, @@ -6908,6 +6963,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x6D, + specials={ "with", 0x6D, 0x1FA9D }, unicodeslot=0x271, }, { @@ -6991,6 +7047,7 @@ characters.data={ description="LATIN SMALL LETTER TURNED R WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x279, 0x1FA9D }, unicodeslot=0x27B, }, { @@ -7052,6 +7109,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x73, + specials={ "with", 0x73, 0x1FA9D }, unicodeslot=0x282, }, { @@ -7131,6 +7189,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x76, + specials={ "with", 0x76, 0x1FA9D }, synonyms={ "latin small letter script v" }, uccode=0x1B2, unicodeslot=0x28B, @@ -7269,6 +7328,7 @@ characters.data={ description="LATIN LETTER SMALL CAPITAL G WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x262, 0x1FA9D }, unicodeslot=0x29B, }, { @@ -7309,6 +7369,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x71, + specials={ "with", 0x71, 0x1FA9D }, unicodeslot=0x2A0, }, { @@ -7317,6 +7378,7 @@ characters.data={ description="LATIN LETTER GLOTTAL STOP WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x294, 0x2F }, unicodeslot=0x2A1, }, { @@ -10546,7 +10608,6 @@ characters.data={ direction="l", linebreak="al", mathclass="ordinary", ---mathname="varkappa", specials={ "compat", 0x3BA }, uccode=0x39A, unicodeslot=0x3F0, @@ -12232,6 +12293,7 @@ characters.data={ lccode=0x493, linebreak="al", shcode=0x413, + specials={ "with", 0x413, 0x2F }, unicodeslot=0x492, }, [0x493]={ @@ -12242,6 +12304,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x433, + specials={ "with", 0x433, 0x2F }, uccode=0x492, unicodeslot=0x493, }, @@ -12364,6 +12427,7 @@ characters.data={ lccode=0x49F, linebreak="al", shcode=0x41A, + specials={ "with", 0x41A, 0x2F }, unicodeslot=0x49E, }, [0x49F]={ @@ -12374,6 +12438,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x43A, + specials={ "with", 0x43A, 0x2F }, uccode=0x49E, unicodeslot=0x49F, }, @@ -12553,6 +12618,7 @@ characters.data={ direction="l", lccode=0x4B1, linebreak="al", + specials={ "with", 0x4AE, 0x2F }, unicodeslot=0x4B0, }, [0x4B1]={ @@ -12562,6 +12628,7 @@ characters.data={ description="CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x4AF, 0x2F }, uccode=0x4B0, unicodeslot=0x4B1, }, @@ -12754,6 +12821,7 @@ characters.data={ lccode=0x4C4, linebreak="al", shcode=0x41A, + specials={ "with", 0x41A, 0x1FA9D }, unicodeslot=0x4C3, }, [0x4C4]={ @@ -12764,6 +12832,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x43A, + specials={ "with", 0x43A, 0x1FA9D }, uccode=0x4C3, unicodeslot=0x4C4, }, @@ -12796,6 +12865,7 @@ characters.data={ lccode=0x4C8, linebreak="al", shcode=0x41D, + specials={ "with", 0x41D, 0x1FA9D }, unicodeslot=0x4C7, }, [0x4C8]={ @@ -12806,6 +12876,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x43D, + specials={ "with", 0x43D, 0x1FA9D }, uccode=0x4C7, unicodeslot=0x4C8, }, @@ -13380,6 +13451,7 @@ characters.data={ lccode=0x4FD, linebreak="al", shcode=0x425, + specials={ "with", 0x425, 0x1FA9D }, unicodeslot=0x4FC, }, [0x4FD]={ @@ -13388,6 +13460,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x445, + specials={ "with", 0x445, 0x1FA9D }, uccode=0x4FC, unicodeslot=0x4FD, }, @@ -13398,6 +13471,7 @@ characters.data={ lccode=0x4FF, linebreak="al", shcode=0x425, + specials={ "with", 0x425, 0x2F }, unicodeslot=0x4FE, }, [0x4FF]={ @@ -13406,6 +13480,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x445, + specials={ "with", 0x445, 0x2F }, uccode=0x4FE, unicodeslot=0x4FF, }, @@ -13560,6 +13635,7 @@ characters.data={ lccode=0x513, linebreak="al", shcode=0x41B, + specials={ "with", 0x41B, 0x1FA9D }, unicodeslot=0x512, }, [0x513]={ @@ -13568,6 +13644,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x43B, + specials={ "with", 0x43B, 0x1FA9D }, uccode=0x512, unicodeslot=0x513, }, @@ -45902,48 +45979,48 @@ characters.data={ category="po", description="MONGOLIAN BIRGA", direction="on", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x1800, }, [0x1801]={ category="po", description="MONGOLIAN ELLIPSIS", direction="on", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x1801, }, [0x1802]={ category="po", description="MONGOLIAN COMMA", direction="on", - mongolian="nj", linebreak="ex", + mongolian="nj", unicodeslot=0x1802, }, [0x1803]={ category="po", description="MONGOLIAN FULL STOP", direction="on", - mongolian="nj", linebreak="ex", + mongolian="nj", unicodeslot=0x1803, }, [0x1804]={ category="po", description="MONGOLIAN COLON", direction="on", - mongolian="nj", linebreak="ba", + mongolian="nj", unicodeslot=0x1804, }, [0x1805]={ category="po", description="MONGOLIAN FOUR DOTS", direction="on", - mongolian="nj", linebreak="ba", + mongolian="nj", unicodeslot=0x1805, }, [0x1806]={ @@ -45951,8 +46028,8 @@ characters.data={ category="pd", description="MONGOLIAN TODO SOFT HYPHEN", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x1806, }, [0x1807]={ @@ -45960,24 +46037,24 @@ characters.data={ category="po", description="MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER", direction="on", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1807, }, [0x1808]={ category="po", description="MONGOLIAN MANCHU COMMA", direction="on", - mongolian="nj", linebreak="ex", + mongolian="nj", unicodeslot=0x1808, }, [0x1809]={ category="po", description="MONGOLIAN MANCHU FULL STOP", direction="on", - mongolian="nj", linebreak="ex", + mongolian="nj", unicodeslot=0x1809, }, [0x180A]={ @@ -45985,16 +46062,16 @@ characters.data={ category="po", description="MONGOLIAN NIRUGU", direction="on", - mongolian="jc", linebreak="al", + mongolian="jc", unicodeslot=0x180A, }, [0x180B]={ category="mn", description="MONGOLIAN FREE VARIATION SELECTOR ONE", direction="nsm", - mongolian="t", linebreak="cm", + mongolian="t", synonyms={ "fvs1" }, unicodeslot=0x180B, }, @@ -46002,16 +46079,16 @@ characters.data={ category="mn", description="MONGOLIAN FREE VARIATION SELECTOR TWO", direction="nsm", - mongolian="t", linebreak="cm", + mongolian="t", unicodeslot=0x180C, }, [0x180D]={ category="mn", description="MONGOLIAN FREE VARIATION SELECTOR THREE", direction="nsm", - mongolian="t", linebreak="cm", + mongolian="t", unicodeslot=0x180D, }, [0x180E]={ @@ -46019,88 +46096,88 @@ characters.data={ category="zs", description="MONGOLIAN VOWEL SEPARATOR", direction="bn", - mongolian="nj", linebreak="gl", + mongolian="nj", unicodeslot=0x180E, }, [0x1810]={ category="nd", description="MONGOLIAN DIGIT ZERO", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1810, }, [0x1811]={ category="nd", description="MONGOLIAN DIGIT ONE", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1811, }, [0x1812]={ category="nd", description="MONGOLIAN DIGIT TWO", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1812, }, [0x1813]={ category="nd", description="MONGOLIAN DIGIT THREE", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1813, }, [0x1814]={ category="nd", description="MONGOLIAN DIGIT FOUR", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1814, }, [0x1815]={ category="nd", description="MONGOLIAN DIGIT FIVE", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1815, }, [0x1816]={ category="nd", description="MONGOLIAN DIGIT SIX", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1816, }, [0x1817]={ category="nd", description="MONGOLIAN DIGIT SEVEN", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1817, }, [0x1818]={ category="nd", description="MONGOLIAN DIGIT EIGHT", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1818, }, [0x1819]={ category="nd", description="MONGOLIAN DIGIT NINE", direction="l", - mongolian="nj", linebreak="nu", + mongolian="nj", unicodeslot=0x1819, }, [0x1820]={ @@ -46108,8 +46185,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER A", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1820, variants={ [0x180B]="second form", @@ -46121,8 +46198,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER E", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1821, variants={ [0x180B]="second form", @@ -46133,8 +46210,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER I", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1822, variants={ [0x180B]="second form", @@ -46145,8 +46222,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER O", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1823, variants={ [0x180B]="second form", @@ -46157,8 +46234,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER U", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1824, variants={ [0x180B]="second form", @@ -46169,8 +46246,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER OE", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1825, variants={ [0x180B]="second form", @@ -46182,8 +46259,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER UE", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1826, variants={ [0x180B]="second form", @@ -46194,9 +46271,9 @@ characters.data={ arabic="d", category="lo", description="MONGOLIAN LETTER EE", - mongolian="d", direction="l", linebreak="al", + mongolian="d", unicodeslot=0x1827, }, [0x1828]={ @@ -46204,8 +46281,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER NA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1828, variants={ [0x180B]="second form", @@ -46218,8 +46295,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ANG", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1829, }, [0x182A]={ @@ -46227,8 +46304,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER BA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x182A, variants={ [0x180B]="alternative form", @@ -46239,8 +46316,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER PA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x182B, }, [0x182C]={ @@ -46248,8 +46325,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER QA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x182C, variants={ [0x180B]="second form", @@ -46262,8 +46339,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER GA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x182D, variants={ [0x180B]="second form", @@ -46276,8 +46353,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x182E, }, [0x182F]={ @@ -46285,8 +46362,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER LA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x182F, }, [0x1830]={ @@ -46294,8 +46371,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1830, variants={ [0x180B]="second form", @@ -46307,8 +46384,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1831, }, [0x1832]={ @@ -46316,8 +46393,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1832, variants={ [0x180B]="second form", @@ -46328,8 +46405,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER DA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1833, variants={ [0x180B]="second form", @@ -46340,8 +46417,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER CHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1834, }, [0x1835]={ @@ -46349,8 +46426,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER JA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1835, variants={ [0x180B]="second form", @@ -46361,8 +46438,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER YA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1836, variants={ [0x180B]="second form", @@ -46374,8 +46451,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER RA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1837, }, [0x1838]={ @@ -46383,8 +46460,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER WA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1838, variants={ [0x180B]="second form", @@ -46395,8 +46472,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER FA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1839, }, [0x183A]={ @@ -46404,8 +46481,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER KA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x183A, }, [0x183B]={ @@ -46413,8 +46490,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER KHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x183B, }, [0x183C]={ @@ -46422,8 +46499,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TSA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x183C, }, [0x183D]={ @@ -46431,8 +46508,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ZA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x183D, }, [0x183E]={ @@ -46440,8 +46517,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER HAA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x183E, }, [0x183F]={ @@ -46449,8 +46526,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ZRA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x183F, }, [0x1840]={ @@ -46458,8 +46535,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER LHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1840, }, [0x1841]={ @@ -46467,8 +46544,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ZHI", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1841, }, [0x1842]={ @@ -46476,8 +46553,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER CHI", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1842, }, [0x1843]={ @@ -46485,8 +46562,8 @@ characters.data={ category="lm", description="MONGOLIAN LETTER TODO LONG VOWEL SIGN", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1843, }, [0x1844]={ @@ -46494,8 +46571,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO E", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1844, variants={ [0x180B]="second form", @@ -46506,8 +46583,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO I", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1845, variants={ [0x180B]="second form", @@ -46518,8 +46595,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO O", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1846, variants={ [0x180B]="second form", @@ -46530,8 +46607,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO U", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1847, variants={ [0x180B]="second form", @@ -46543,8 +46620,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO OE", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1848, variants={ [0x180B]="second form", @@ -46555,8 +46632,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO UE", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1849, variants={ [0x180B]="second form", @@ -46567,8 +46644,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO ANG", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x184A, }, [0x184B]={ @@ -46576,8 +46653,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO BA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x184B, }, [0x184C]={ @@ -46585,8 +46662,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO PA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x184C, }, [0x184D]={ @@ -46594,8 +46671,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO QA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x184D, variants={ [0x180B]="feminine form", @@ -46606,8 +46683,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO GA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x184E, variants={ [0x180B]="second form", @@ -46618,8 +46695,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO MA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x184F, }, [0x1850]={ @@ -46627,8 +46704,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO TA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1850, }, [0x1851]={ @@ -46636,8 +46713,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO DA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1851, }, [0x1852]={ @@ -46645,8 +46722,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO CHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1852, }, [0x1853]={ @@ -46654,8 +46731,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO JA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1853, }, [0x1854]={ @@ -46663,8 +46740,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO TSA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1854, }, [0x1855]={ @@ -46672,8 +46749,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO YA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1855, }, [0x1856]={ @@ -46681,8 +46758,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO WA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1856, }, [0x1857]={ @@ -46690,8 +46767,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO KA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1857, }, [0x1858]={ @@ -46699,8 +46776,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO GAA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1858, }, [0x1859]={ @@ -46708,8 +46785,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO HAA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1859, }, [0x185A]={ @@ -46717,8 +46794,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO JIA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x185A, }, [0x185B]={ @@ -46726,8 +46803,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO NIA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x185B, }, [0x185C]={ @@ -46735,8 +46812,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO DZA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x185C, }, [0x185D]={ @@ -46744,8 +46821,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE E", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x185D, variants={ [0x180B]="second form", @@ -46756,8 +46833,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE I", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x185E, variants={ [0x180B]="second form", @@ -46769,8 +46846,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE IY", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x185F, }, [0x1860]={ @@ -46778,8 +46855,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE UE", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1860, variants={ [0x180B]="second form", @@ -46790,8 +46867,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE U", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1861, }, [0x1862]={ @@ -46799,8 +46876,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE ANG", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1862, }, [0x1863]={ @@ -46808,8 +46885,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE KA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1863, variants={ [0x180B]="second form", @@ -46820,8 +46897,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE GA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1864, }, [0x1865]={ @@ -46829,8 +46906,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE HA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1865, }, [0x1866]={ @@ -46838,8 +46915,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE PA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1866, }, [0x1867]={ @@ -46847,8 +46924,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE SHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1867, }, [0x1868]={ @@ -46856,8 +46933,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE TA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1868, variants={ [0x180B]="second form", @@ -46869,8 +46946,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE DA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1869, variants={ [0x180B]="second form", @@ -46881,8 +46958,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE JA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x186A, }, [0x186B]={ @@ -46890,8 +46967,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE FA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x186B, }, [0x186C]={ @@ -46899,8 +46976,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE GAA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x186C, }, [0x186D]={ @@ -46908,8 +46985,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE HAA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x186D, }, [0x186E]={ @@ -46917,8 +46994,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE TSA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x186E, }, [0x186F]={ @@ -46926,8 +47003,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE ZA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x186F, variants={ [0x180B]="second form", @@ -46938,8 +47015,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE RAA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1870, }, [0x1871]={ @@ -46947,8 +47024,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE CHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1871, }, [0x1872]={ @@ -46956,8 +47033,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER SIBE ZHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1872, }, [0x1873]={ @@ -46965,8 +47042,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU I", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1873, variants={ [0x180B]="second form", @@ -46979,8 +47056,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU KA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1874, variants={ [0x180B]="second form", @@ -46993,8 +47070,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU RA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1875, }, [0x1876]={ @@ -47002,8 +47079,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU FA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1876, variants={ [0x180B]="second form", @@ -47014,8 +47091,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ZHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1877, }, [0x1878]={ @@ -47023,8 +47100,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER CHA WITH TWO DOTS", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1878, }, [0x1880]={ @@ -47032,8 +47109,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI ANUSVARA ONE", direction="l", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x1880, variants={ [0x180B]="second form", @@ -47044,8 +47121,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI VISARGA ONE", direction="l", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x1881, variants={ [0x180B]="second form", @@ -47056,8 +47133,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI DAMARU", direction="l", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x1882, }, [0x1883]={ @@ -47065,8 +47142,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI UBADAMA", direction="l", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x1883, }, [0x1884]={ @@ -47074,8 +47151,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI INVERTED UBADAMA", direction="l", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x1884, }, [0x1885]={ @@ -47083,8 +47160,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI BALUDA", direction="nsm", - mongolian="t", linebreak="cm", + mongolian="t", unicodeslot=0x1885, }, [0x1886]={ @@ -47092,8 +47169,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI THREE BALUDA", direction="nsm", - mongolian="t", linebreak="cm", + mongolian="t", unicodeslot=0x1886, }, [0x1887]={ @@ -47101,8 +47178,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI A", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1887, variants={ [0x180B]="second form", @@ -47115,8 +47192,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI I", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1888, variants={ [0x180B]="second form", @@ -47127,8 +47204,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI KA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1889, }, [0x188A]={ @@ -47136,8 +47213,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI NGA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x188A, variants={ [0x180B]="second form", @@ -47148,8 +47225,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI CA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x188B, }, [0x188C]={ @@ -47157,8 +47234,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI TTA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x188C, }, [0x188D]={ @@ -47166,8 +47243,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI TTHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x188D, }, [0x188E]={ @@ -47175,8 +47252,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI DDA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x188E, }, [0x188F]={ @@ -47184,8 +47261,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI NNA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x188F, }, [0x1890]={ @@ -47193,8 +47270,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI TA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1890, }, [0x1891]={ @@ -47202,8 +47279,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI DA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1891, }, [0x1892]={ @@ -47211,8 +47288,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI PA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1892, }, [0x1893]={ @@ -47220,8 +47297,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI PHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1893, }, [0x1894]={ @@ -47229,8 +47306,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI SSA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1894, }, [0x1895]={ @@ -47238,8 +47315,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI ZHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1895, }, [0x1896]={ @@ -47247,8 +47324,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI ZA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1896, }, [0x1897]={ @@ -47256,8 +47333,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI AH", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1897, }, [0x1898]={ @@ -47265,8 +47342,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO ALI GALI TA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1898, }, [0x1899]={ @@ -47274,8 +47351,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER TODO ALI GALI ZHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x1899, }, [0x189A]={ @@ -47283,8 +47360,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI GHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x189A, }, [0x189B]={ @@ -47292,8 +47369,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI NGA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x189B, }, [0x189C]={ @@ -47301,8 +47378,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI CA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x189C, }, [0x189D]={ @@ -47310,8 +47387,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI JHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x189D, }, [0x189E]={ @@ -47319,8 +47396,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI TTA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x189E, }, [0x189F]={ @@ -47328,8 +47405,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI DDHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x189F, }, [0x18A0]={ @@ -47337,8 +47414,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI TA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A0, }, [0x18A1]={ @@ -47346,8 +47423,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI DHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A1, }, [0x18A2]={ @@ -47355,8 +47432,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI SSA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A2, }, [0x18A3]={ @@ -47364,8 +47441,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI CYA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A3, }, [0x18A4]={ @@ -47373,8 +47450,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI ZHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A4, }, [0x18A5]={ @@ -47382,8 +47459,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI ZA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A5, }, [0x18A6]={ @@ -47391,8 +47468,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI HALF U", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A6, }, [0x18A7]={ @@ -47400,8 +47477,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER ALI GALI HALF YA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A7, }, [0x18A8]={ @@ -47409,8 +47486,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI BHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18A8, }, [0x18A9]={ @@ -47418,8 +47495,8 @@ characters.data={ combining=0xE4, description="MONGOLIAN LETTER ALI GALI DAGALGA", direction="nsm", - mongolian="t", linebreak="cm", + mongolian="t", unicodeslot=0x18A9, }, [0x18AA]={ @@ -47427,8 +47504,8 @@ characters.data={ category="lo", description="MONGOLIAN LETTER MANCHU ALI GALI LHA", direction="l", - mongolian="d", linebreak="al", + mongolian="d", unicodeslot=0x18AA, }, [0x18B0]={ @@ -54123,6 +54200,7 @@ characters.data={ description="LATIN LETTER SMALL CAPITAL L WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x29F, 0x2F }, unicodeslot=0x1D0C, }, [0x1D0D]={ @@ -54172,6 +54250,7 @@ characters.data={ description="LATIN SMALL LETTER SIDEWAYS O WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x1D11, 0x2F }, unicodeslot=0x1D13, }, [0x1D14]={ @@ -54980,6 +55059,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x269, + specials={ "with", 0x269, 0x2F }, unicodeslot=0x1D7C, }, [0x1D7D]={ @@ -54988,6 +55068,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x70, + specials={ "with", 0x70, 0x2F }, uccode=0x2C63, unicodeslot=0x1D7D, }, @@ -55004,6 +55085,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x28A, + specials={ "with", 0x28A, 0x2F }, unicodeslot=0x1D7F, }, [0x1D80]={ @@ -61508,8 +61590,8 @@ characters.data={ contextname="zwnj", description="ZERO WIDTH NON-JOINER", direction="bn", - mongolian="nj", linebreak="cm", + mongolian="nj", synonyms={ "zwnj" }, unicodeslot=0x200C, }, @@ -61520,8 +61602,8 @@ characters.data={ contextname="zwj", description="ZERO WIDTH JOINER", direction="bn", - mongolian="nj", linebreak="zwj", + mongolian="nj", synonyms={ "zwj" }, unicodeslot=0x200D, }, @@ -61549,16 +61631,16 @@ characters.data={ cjkwd="a", description="HYPHEN", direction="on", - mongolian="nj", linebreak="ba", + mongolian="nj", unicodeslot=0x2010, }, [0x2011]={ category="pd", description="NON-BREAKING HYPHEN", direction="on", - mongolian="nj", linebreak="gl", + mongolian="nj", specials={ "nobreak", 0x2010 }, unicodeslot=0x2011, }, @@ -61568,8 +61650,8 @@ characters.data={ contextname="textminus", description="FIGURE DASH", direction="on", - mongolian="nj", linebreak="ba", + mongolian="nj", unicodeslot=0x2012, }, [0x2013]={ @@ -61579,8 +61661,8 @@ characters.data={ contextname="endash", description="EN DASH", direction="on", - mongolian="nj", linebreak="ba", + mongolian="nj", unicodeslot=0x2013, }, [0x2014]={ @@ -61590,8 +61672,8 @@ characters.data={ contextname="emdash", description="EM DASH", direction="on", - mongolian="nj", linebreak="b2", + mongolian="nj", unicodeslot=0x2014, }, [0x2015]={ @@ -61903,8 +61985,8 @@ characters.data={ contextname="narrownobreakspace", description="NARROW NO-BREAK SPACE", direction="cs", - mongolian="nj", linebreak="gl", + mongolian="nj", specials={ "nobreak", 0x20 }, synonyms={ "nnbsp" }, unicodeslot=0x202F, @@ -63210,10 +63292,6 @@ characters.data={ direction="nsm", linebreak="cm", mathspec={ --- { --- class="default", --- name="bigcircle", --- }, { class="binary", name="bigcircle", @@ -74507,8 +74585,8 @@ characters.data={ contextname="dottedcircle", description="DOTTED CIRCLE", direction="on", - mongolian="nj", linebreak="al", + mongolian="nj", unicodeslot=0x25CC, }, [0x25CD]={ @@ -81942,7 +82020,7 @@ characters.data={ }, { class="open", - name="rlointerval", + name="llointerval", }, { class="close", @@ -87383,6 +87461,7 @@ characters.data={ lccode=0x1D7D, linebreak="al", shcode=0x50, + specials={ "with", 0x50, 0x2F }, unicodeslot=0x2C63, }, [0x2C64]={ @@ -87400,6 +87479,7 @@ characters.data={ direction="l", linebreak="al", shcode=0x61, + specials={ "with", 0x61, 0x2F }, uccode=0x23A, unicodeslot=0x2C65, }, @@ -87478,6 +87558,7 @@ characters.data={ description="LATIN CAPITAL LETTER M WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x4D, 0x1FA9D }, unicodeslot=0x2C6E, }, [0x2C6F]={ @@ -87506,6 +87587,7 @@ characters.data={ description="LATIN CAPITAL LETTER W WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x57, 0x1FA9D }, unicodeslot=0x2C72, }, [0x2C73]={ @@ -87513,6 +87595,7 @@ characters.data={ description="LATIN SMALL LETTER W WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x77, 0x1FA9D }, unicodeslot=0x2C73, }, [0x2C74]={ @@ -117821,6 +117904,7 @@ characters.data={ description="LATIN CAPITAL LETTER CUATRILLO WITH COMMA", direction="l", linebreak="al", + specials={ "with", 0xA72C, 0x2C }, unicodeslot=0xA72E, }, [0xA72F]={ @@ -117828,6 +117912,7 @@ characters.data={ description="LATIN SMALL LETTER CUATRILLO WITH COMMA", direction="l", linebreak="al", + specials={ "with", 0xA72D, 0x2C }, unicodeslot=0xA72F, }, [0xA730]={ @@ -117905,6 +117990,7 @@ characters.data={ description="LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR", direction="l", linebreak="al", + specials={ "with", 0xA738, 0x2015 }, unicodeslot=0xA73A, }, [0xA73B]={ @@ -117912,6 +117998,7 @@ characters.data={ description="LATIN SMALL LETTER AV WITH HORIZONTAL BAR", direction="l", linebreak="al", + specials={ "with", 0xA739, 0x2015 }, unicodeslot=0xA73B, }, [0xA73C]={ @@ -117947,6 +118034,7 @@ characters.data={ description="LATIN CAPITAL LETTER K WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x4B, 0x2F }, unicodeslot=0xA740, }, [0xA741]={ @@ -117954,6 +118042,7 @@ characters.data={ description="LATIN SMALL LETTER K WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x6B, 0x2F }, unicodeslot=0xA741, }, [0xA742]={ @@ -118199,6 +118288,7 @@ characters.data={ description="LATIN CAPITAL LETTER THORN WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0xDE, 0x2F }, unicodeslot=0xA764, }, [0xA765]={ @@ -118206,6 +118296,7 @@ characters.data={ description="LATIN SMALL LETTER THORN WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0xFE, 0x2F }, unicodeslot=0xA765, }, [0xA766]={ @@ -118564,6 +118655,7 @@ characters.data={ description="LATIN CAPITAL LETTER F WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x46, 0x2F }, unicodeslot=0xA798, }, [0xA799]={ @@ -118571,6 +118663,7 @@ characters.data={ description="LATIN SMALL LETTER F WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x66, 0x2F }, unicodeslot=0xA799, }, [0xA79A]={ @@ -118690,6 +118783,7 @@ characters.data={ description="LATIN CAPITAL LETTER H WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x48, 0x1FA9D }, unicodeslot=0xA7AA, }, [0xA7AB]={ @@ -118788,6 +118882,7 @@ characters.data={ description="LATIN CAPITAL LETTER U WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x55, 0x2F }, unicodeslot=0xA7B8, }, [0xA7B9]={ @@ -118795,6 +118890,7 @@ characters.data={ description="LATIN SMALL LETTER U WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x75, 0x2F }, unicodeslot=0xA7B9, }, [0xA7BA]={ @@ -118865,6 +118961,7 @@ characters.data={ description="LATIN CAPITAL LETTER S WITH HOOK", direction="l", linebreak="al", + specials={ "with", 0x53, 0x1FA9D }, unicodeslot=0xA7C5, }, [0xA7C6]={ @@ -124227,6 +124324,7 @@ characters.data={ description="LATIN SMALL LETTER L WITH INVERTED LAZY S", direction="l", linebreak="al", + specials={ "with", 0x6C, 0x223E }, unicodeslot=0xAB37, }, [0xAB38]={ @@ -124276,6 +124374,7 @@ characters.data={ description="LATIN SMALL LETTER BLACKLETTER O WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0xAB3D, 0x2F }, unicodeslot=0xAB3E, }, [0xAB3F]={ @@ -124283,6 +124382,7 @@ characters.data={ description="LATIN SMALL LETTER OPEN O WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x254, 0x2F }, unicodeslot=0xAB3F, }, [0xAB40]={ @@ -124297,6 +124397,7 @@ characters.data={ description="LATIN SMALL LETTER TURNED OE WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0x1D14, 0x2F }, unicodeslot=0xAB41, }, [0xAB42]={ @@ -124318,6 +124419,7 @@ characters.data={ description="LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE", direction="l", linebreak="al", + specials={ "with", 0xAB43, 0x2F }, unicodeslot=0xAB44, }, [0xAB45]={ @@ -124374,6 +124476,7 @@ characters.data={ description="LATIN SMALL LETTER SCRIPT R WITH RING", direction="l", linebreak="al", + specials={ "with", 0xAB4B, 0x1F48D }, unicodeslot=0xAB4C, }, [0xAB4D]={ @@ -165457,104 +165560,104 @@ characters.data={ category="po", description="MONGOLIAN BIRGA WITH ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11660, }, [0x11661]={ category="po", description="MONGOLIAN ROTATED BIRGA", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11661, }, [0x11662]={ category="po", description="MONGOLIAN DOUBLE BIRGA WITH ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11662, }, [0x11663]={ category="po", description="MONGOLIAN TRIPLE BIRGA WITH ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11663, }, [0x11664]={ category="po", description="MONGOLIAN BIRGA WITH DOUBLE ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11664, }, [0x11665]={ category="po", description="MONGOLIAN ROTATED BIRGA WITH ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11665, }, [0x11666]={ category="po", description="MONGOLIAN ROTATED BIRGA WITH DOUBLE ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11666, }, [0x11667]={ category="po", description="MONGOLIAN INVERTED BIRGA", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11667, }, [0x11668]={ category="po", description="MONGOLIAN INVERTED BIRGA WITH DOUBLE ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11668, }, [0x11669]={ category="po", description="MONGOLIAN SWIRL BIRGA", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x11669, }, [0x1166A]={ category="po", description="MONGOLIAN SWIRL BIRGA WITH ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x1166A, }, [0x1166B]={ category="po", description="MONGOLIAN SWIRL BIRGA WITH DOUBLE ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x1166B, }, [0x1166C]={ category="po", description="MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT", direction="on", - mongolian="nj", linebreak="bb", + mongolian="nj", unicodeslot=0x1166C, }, [0x11680]={ diff --git a/tex/context/base/mkiv/char-utf.lua b/tex/context/base/mkiv/char-utf.lua index fb47b5208..7d8ca219b 100644 --- a/tex/context/base/mkiv/char-utf.lua +++ b/tex/context/base/mkiv/char-utf.lua @@ -86,33 +86,40 @@ characters.decomposed = decomposed local graphemes = characters.graphemes local collapsed = characters.collapsed +local combined = characters.combined local mathlists = characters.mathlists if graphemes then mark(graphemes) mark(collapsed) + mark(combined) mark(mathlists) else graphemes = allocate() collapsed = allocate() + combined = allocate() mathlists = allocate() characters.graphemes = graphemes characters.collapsed = collapsed + characters.combined = combined characters.mathlists = mathlists local function backtrack(v,last,target) local vs = v.specials - if vs and #vs == 3 and vs[1] == "char" then - local one = vs[2] - local two = vs[3] - local first = utfchar(one) - local second = utfchar(two) .. last - collapsed[first..second] = target - backtrack(data[one],second,target) + if vs and #vs == 3 then + local kind = vs[1] + if kind == "char" or kind == "with" then + local one = vs[2] + local two = vs[3] + local first = utfchar(one) + local second = utfchar(two) .. last + collapsed[first..second] = target + backtrack(data[one],second,target) + end end end @@ -141,28 +148,39 @@ else if vs then local kind = vs[1] local size = #vs - if kind == "char" and size == 3 then -- what if more than 3 - -- - local one = vs[2] - local two = vs[3] - local first = utfchar(one) - local second = utfchar(two) - local combination = utfchar(unicode) - -- - collapsed[first..second] = combination - backtrack(data[one],second,combination) - -- sort of obsolete: - local cgf = graphemes[first] - if not cgf then - cgf = { [second] = combination } - graphemes[first] = cgf - else - cgf[second] = combination + if kind == "char" then + if size == 3 then + local one = vs[2] + local two = vs[3] + local first = utfchar(one) + local second = utfchar(two) + local combination = utfchar(unicode) + -- + collapsed[first..second] = combination + backtrack(data[one],second,combination) + -- sort of obsolete: + local cgf = graphemes[first] + if not cgf then + cgf = { [second] = combination } + graphemes[first] = cgf + else + cgf[second] = combination + end + end + if size > 2 and (v.mathclass or v.mathspec) then + setlist(unicode,vs,2,"specials") + end + elseif kind == "with" then + if size == 3 then + combined[utfchar(vs[2])..utfchar(vs[3])] = utfchar(unicode) + end + elseif kind == "compat" then + if size == 3 then + combined[utfchar(vs[2])..utfchar(vs[3])] = utfchar(unicode) + end + if size > 2 and (v.mathclass or v.mathspec) then + setlist(unicode,vs,2,"specials") end - -- - end - if (kind == "char" or kind == "compat") and (size > 2) and (v.mathclass or v.mathspec) then - setlist(unicode,vs,2,"specials") end end local ml = v.mathlist @@ -182,6 +200,7 @@ else if storage then storage.register("characters/graphemes", graphemes, "characters.graphemes") storage.register("characters/collapsed", collapsed, "characters.collapsed") + storage.register("characters/combined", combined, "characters.combined") storage.register("characters/mathlists", mathlists, "characters.mathlists") end @@ -226,6 +245,25 @@ function utffilters.collapse(str,filename) end end +local p_combine = nil -- only for tex + +local function prepare() + local tree = utfchartabletopattern(combined) + p_combine = Cs((tree/combined + p_utf8character)^0) +end + +function utffilters.combine(str) -- not in files + -- we could merge collapse into combine ... maybe + if not p_combine then + prepare() + end + if not str or str == "" or #str == 1 then + return str + else + return lpegmatch(p_combine,str) or str + end +end + local p_decompose = nil local function prepare() diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index cf28adc74..0aac29de3 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2021.02.08 16:58} +\newcontextversion{2021.02.12 18:45} %D This file is loaded at runtime, thereby providing an excellent place for hacks, %D patches, extensions and new features. There can be local overloads in cont-loc diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 70860c06e..9ef91ed8e 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2021.02.08 16:58} +\edef\contextversion{2021.02.12 18:45} %D Kind of special: diff --git a/tex/context/base/mkiv/core-con.lua b/tex/context/base/mkiv/core-con.lua index 276561ad4..4bf1424bc 100644 --- a/tex/context/base/mkiv/core-con.lua +++ b/tex/context/base/mkiv/core-con.lua @@ -1224,7 +1224,7 @@ local words = { [1000000000000] = "trillion", } -local function translate(n) +local function translate(n,connector) local w = words[n] if w then return w @@ -1274,7 +1274,7 @@ local function translate(n) if n > 0 then compose_one(n) end - return #t > 0 and concat(t," ") or tostring(n) + return #t > 0 and concat(t,connector or " ") or tostring(n) end data.english = { @@ -1346,7 +1346,7 @@ local words = { [1000000000000] = "billón", } -local function translate(n) +local function translate(n,connector) local w = words[n] if w then return w @@ -1401,7 +1401,7 @@ local function translate(n) if n > 0 then compose_one(n) end - return #t > 0 and concat(t," ") or tostring(n) + return #t > 0 and concat(t,connector or " ") or tostring(n) end data.spanish = { @@ -1417,20 +1417,20 @@ data.es = data.spanish -- verbose handler: -function converters.verbose.translate(n,language) +function converters.verbose.translate(n,language,connector) local t = language and data[language] - return t and t.translate(n) or n + return t and t.translate(n,connector) or n end -local function verbose(n,language) +local function verbose(n,language,connector) local t = language and data[language] - context(t and t.translate(n) or n) + context(t and t.translate(n,connector) or n) end implement { name = "verbose", actions = verbose, - arguments = { "integer", "string" } + arguments = { "integer", "string", "string" } } -- These are just helpers but not really for the tex end. Do we have to diff --git a/tex/context/base/mkiv/core-con.mkiv b/tex/context/base/mkiv/core-con.mkiv index da2648e87..953a99395 100644 --- a/tex/context/base/mkiv/core-con.mkiv +++ b/tex/context/base/mkiv/core-con.mkiv @@ -664,8 +664,10 @@ \def\ordinalnumber #1{\clf_ordinal\numexpr#1\relax{\currentlanguage}} \def\Ordinalnumber #1{\Words{\clf_ordinal\numexpr#1\relax{\currentlanguage}}} -\def\verbosenumber #1{\clf_verbose\numexpr#1\relax{\currentlanguage}} -\def\VerboseNumber #1{\Words{\clf_verbose\numexpr#1\relax{\currentlanguage}}} +\let\verbosenumberconnector\space + +\def\verbosenumber #1{\clf_verbose\numexpr#1\relax{\currentlanguage}{\verbosenumberconnector}} +\def\VerboseNumber #1{\Words{\clf_verbose\numexpr#1\relax{\currentlanguage}{\verbosenumberconnector}}} %D As longs as symbols are linked to levels or numbers, we can also use the %D conversion mechanism, but in for instance the itemization macros, we prefer diff --git a/tex/context/base/mkiv/core-sys.mkiv b/tex/context/base/mkiv/core-sys.mkiv index 7a04df840..728d37908 100644 --- a/tex/context/base/mkiv/core-sys.mkiv +++ b/tex/context/base/mkiv/core-sys.mkiv @@ -132,10 +132,10 @@ [ \v!small=>\divide\scratchcounter 15, % 900, \v!medium=>\divide\scratchcounter 30, % 1800, \v!big=>\divide\scratchcounter 60, % 3600, - \v!normal=>\getnewrandomseed\scratchcounter, - \s!default=>\getnewrandomseed\scratchcounter, + \v!normal=>\scratchcounter\newrandomseed, + \s!default=>\scratchcounter\newrandomseed, \s!unknown=>\scratchcounter#1]% - \expanded{\setrandomseed{\the\scratchcounter}}% + \setrandomseed\scratchcounter % \writestatus\m!system{randomseed: \the\scratchcounter}% \endgroup}} diff --git a/tex/context/base/mkiv/grph-fig.mkiv b/tex/context/base/mkiv/grph-fig.mkiv index c196d1420..9d34a8417 100644 --- a/tex/context/base/mkiv/grph-fig.mkiv +++ b/tex/context/base/mkiv/grph-fig.mkiv @@ -327,7 +327,7 @@ \thisissomeinternal\s!vwb {#8}% \gotosomeinternal\s!vwa{#8}\realfolio - {\hbox to 1.5em{\the\c_grph_steps_reference\presetgoto\hfill}}% + {\hbox to 1.5em{\the\c_grph_steps_reference\hfill}}% \quad#1 (#2,#3) (#5,#6) [#8]\hfill}% \endgraf} diff --git a/tex/context/base/mkiv/lang-def.mkiv b/tex/context/base/mkiv/lang-def.mkiv index 5698bb4af..f74fb5339 100644 --- a/tex/context/base/mkiv/lang-def.mkiv +++ b/tex/context/base/mkiv/lang-def.mkiv @@ -606,9 +606,6 @@ % Sardian, Catalan, French, Ladino, Portuguese, Proven\c{c}al, % Spanish -\ifdefined\guillemotspace \else \let\guillemotspace\empty \fi -\ifdefined\sentencespace \else \let\sentencespace \empty \fi - \installlanguage [\s!fr] [\c!spacing=\v!packed, diff --git a/tex/context/base/mkiv/lpdf-aux.lua b/tex/context/base/mkiv/lpdf-aux.lua index 0d7cecbb8..71b018c5f 100644 --- a/tex/context/base/mkiv/lpdf-aux.lua +++ b/tex/context/base/mkiv/lpdf-aux.lua @@ -22,7 +22,7 @@ local cache = table.setmetatableindex(function(t,k) -- can be made weak if v < 0x10000 then v = format("%04x",v) else - v = format("%04x%04x",rshift(v,10),v%1024+0xDC00) + v = format("%04x%04x",rshift(v,10)+0xD800,v%1024+0xDC00) end t[k] = v return v diff --git a/tex/context/base/mkiv/lpdf-ini.lua b/tex/context/base/mkiv/lpdf-ini.lua index c27270747..ccb6e6628 100644 --- a/tex/context/base/mkiv/lpdf-ini.lua +++ b/tex/context/base/mkiv/lpdf-ini.lua @@ -298,7 +298,7 @@ do if v < 0x10000 then v = format("%04x",v) else - v = format("%04x%04x",rshift(v,10),v%1024+0xDC00) + v = format("%04x%04x",rshift(v,10)+0xD800,v%1024+0xDC00) end t[k] = v return v diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index a14246a58..c4078692d 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -163,7 +163,7 @@ return { "automaticpenaltyhyphenationmodecode", "explicitpenaltyhyphenationmodecode", "permitgluehyphenationmodecode", "permitallhyphenationmodecode", "permitmathreplacehyphenationmodecode", -- - "normalizelinecode", "parindentskipcode", "swaphangindentcode", "swapparsshapecode", "breakafterdircode", "removemarginkernscode", + "normalizelinecode", "parindentskipcode", "swaphangindentcode", "swapparsshapecode", "breakafterdircode", "removemarginkernscode", "clipwidthcode", -- "noligaturingcode", "nokerningcode", "noleftligaturecode", "noleftkerncode", "norightligaturecode", "norightkerncode", "noexpansioncode", "noprotrusioncode", @@ -251,6 +251,7 @@ return { -- "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", -- + "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", @@ -548,5 +549,7 @@ return { "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", -- "pushoverloadmode", "popoverloadmode", + -- + "suggestedalias", } } diff --git a/tex/context/base/mkiv/page-flt.mkiv b/tex/context/base/mkiv/page-flt.mkiv index cbbae223b..87476adeb 100644 --- a/tex/context/base/mkiv/page-flt.mkiv +++ b/tex/context/base/mkiv/page-flt.mkiv @@ -131,7 +131,7 @@ \unexpanded\def\page_floats_collect#1#2#3% {\clf_collectfloat{#1}\dimexpr#2\relax\dimexpr#3\relax} -\def\nofstackedfloatincategory#1% +\def\nofstackedfloatsincategory#1% {\clf_nofstackedfloats{#1}} \let\page_floats_column_push_saved\page_floats_push_saved % overloaded in page-mul diff --git a/tex/context/base/mkiv/page-txt.mkvi b/tex/context/base/mkiv/page-txt.mkvi index 8b021acca..9bc78ec92 100644 --- a/tex/context/base/mkiv/page-txt.mkvi +++ b/tex/context/base/mkiv/page-txt.mkvi @@ -463,10 +463,19 @@ \unexpanded\def\resettextcontent {\dotripleempty\page_layouts_reset_text_content} +% \def\page_layouts_reset_text_content[#vertical][#horizontal][#tag]% header text middle +% {\edef\currentlayoutelement{#vertical:#horizontal}% +% \ifthirdargument +% \letvalueempty{\layoutelementhash\executeifdefined{\??layouttextcontent\v!text:#tag}\c!middletext}% +% \else\ifsecondargument +% \resetlayoutelementparameter\c!lefttext +% \resetlayoutelementparameter\c!middletext +% \resetlayoutelementparameter\c!righttext +% \fi\fi} + \def\page_layouts_reset_text_content[#vertical][#horizontal][#tag]% header text middle - {\edef\currentlayoutelement{#vertical:#horizontal}% - \ifthirdargument - \letvalueempty{\layoutelementhash\executeifdefined{\??layouttextcontent\v!text:#tag}\c!middletext}% + {\ifthirdargument + \letvalueempty{\namedlayoutelementhash{#vertical:#horizontal}\executeifdefined{\??layouttextcontent\v!text:#tag}\c!middletext}% \else\ifsecondargument \resetlayoutelementparameter\c!lefttext \resetlayoutelementparameter\c!middletext diff --git a/tex/context/base/mkiv/publ-imp-commands.mkvi b/tex/context/base/mkiv/publ-imp-commands.mkvi index 281b8324a..a5e6bd6de 100644 --- a/tex/context/base/mkiv/publ-imp-commands.mkvi +++ b/tex/context/base/mkiv/publ-imp-commands.mkvi @@ -2,6 +2,8 @@ % for tugboat +\mutable\protected\def\acro#1{\dontleavehmode{\smallcaps#1}} % can be redefined + \definebtxcommand\hbox {\hbox} \definebtxcommand\vbox {\vbox} \definebtxcommand\llap {\llap} @@ -9,7 +11,7 @@ \definebtxcommand\url #1{\hyphenatedurl{#1}} \definebtxcommand\acro #1{\dontleavehmode{\smallcaps#1}} -\let\<< -\let\>> +\mutable\let\<< % for now \mutable, maybe \definebtxcommand\<{<} +\mutable\let\>> % for now \mutable, maybe \definebtxcommand\>{>} \protect \endinput diff --git a/tex/context/base/mkiv/scrn-fld.mkvi b/tex/context/base/mkiv/scrn-fld.mkvi index ecd38606d..6c0e97a9a 100644 --- a/tex/context/base/mkiv/scrn-fld.mkvi +++ b/tex/context/base/mkiv/scrn-fld.mkvi @@ -390,6 +390,8 @@ \installparameterhandler \??fieldcontent {fieldcontentframed} \installparameterhandler \??fieldtotal {fieldtotalframed} +\installparametersethandler \??fieldcontent {fieldcontentframed} + \installsetuphandler \??fieldlabel {fieldlabelframed} \installsetuphandler \??fieldcontent {fieldcontentframed} \installsetuphandler \??fieldtotal {fieldtotalframed} diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex 1440a78aa..53148beec 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex c7fe78f1c..8079e1fb2 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/strc-lnt.mkvi b/tex/context/base/mkiv/strc-lnt.mkvi index ad8c80d93..0d35be90c 100644 --- a/tex/context/base/mkiv/strc-lnt.mkvi +++ b/tex/context/base/mkiv/strc-lnt.mkvi @@ -234,17 +234,15 @@ \let\strc_linenotes_traced\gobbleoneargument \def\strc_linenotes_traced_indeed#1% - {\iftracelinenotes - \hpack to \zeropoint - {\forgetall - \hsize\zeropoint - \hss - \vpack to \strutheight{\llap{\red\infofont\setstrut\the\c_strc_linenotes}\vss}% - {\color[blue]{\vl}}% - \vpack to \strutheight{\rlap{\red\infofont\setstrut#1}\vss}% - \hss}% - \prewordbreak - \fi} + {\hpack to \zeropoint + {\forgetall + \hsize\zeropoint + \hss + \vpack to \strutheight{\llap{\red\infofont\setstrut\the\c_strc_linenotes}\vss}% + {\color[blue]{\vl}}% + \vpack to \strutheight{\rlap{\red\infofont\setstrut#1}\vss}% + \hss}% + \prewordbreak} \unexpanded\def\tracelinenotes {\let\strc_linenotes_traced\strc_linenotes_traced_indeed} diff --git a/tex/context/base/mkiv/strc-sec.mkiv b/tex/context/base/mkiv/strc-sec.mkiv index fb21254f2..8d326e300 100644 --- a/tex/context/base/mkiv/strc-sec.mkiv +++ b/tex/context/base/mkiv/strc-sec.mkiv @@ -798,7 +798,7 @@ \glet\currentstructuresynchronize\donothing \to \everyheadsynchronization -\unexpanded\def\theheadsynchonization +\unexpanded\def\theheadsynchronization {% no, interferes: \signalcharacter \the\everyheadsynchronization} @@ -927,7 +927,7 @@ \strc_sectioning_register{#1}{#2}{#3}% after optional \page \strc_sectioning_report \dostarttagged\t!sectioncaption\empty - \let\getheadsyncs\theheadsynchonization + \let\getheadsyncs\theheadsynchronization \let\getheadtitle\fullheadtitle \ifconditional\headshownumber \let\getheadnumber\fullheadnumber @@ -941,7 +941,7 @@ \strc_sectioning_register{#1}{#2}{#3}% after optional \page \strc_sectioning_report \dostarttagged\t!sectioncaption\empty - \let\getheadsyncs\theheadsynchonization + \let\getheadsyncs\theheadsynchronization \ifconditional\c_strc_sectioning_section \strc_rendering_place_head_section \else @@ -953,7 +953,7 @@ \strc_sectioning_register{#1}{#2}{#3}% after optional \page \strc_sectioning_report \dostarttagged\t!sectioncaption\empty - \let\getheadsyncs\theheadsynchonization + \let\getheadsyncs\theheadsynchronization \strc_rendering_place_head_empty % just flush 'm \dostoptagged \strc_sectioning_after_nop @@ -964,7 +964,7 @@ \strc_sectioning_register{#1}{#2}{#3}% after optional \page \strc_sectioning_report \dostarttagged\t!sectioncaption\empty - \let\getheadsyncs\theheadsynchonization + \let\getheadsyncs\theheadsynchronization \let\getheadtitle\fullheadtitle \strc_rendering_place_head_text \dostoptagged @@ -972,7 +972,7 @@ \else\ifconditional\c_strc_sectioning_hidden \strc_sectioning_register{#1}{#2}{#3}% after optional \page \strc_sectioning_report - \let\getheadsyncs\theheadsynchonization + \let\getheadsyncs\theheadsynchronization \dostarttagged\t!sectioncaption\empty \ifconditional\c_strc_sectioning_section \strc_rendering_place_head_section @@ -986,7 +986,7 @@ \strc_sectioning_register{#1}{#2}{#3}% after optional \page \strc_sectioning_report \dostarttagged\t!sectioncaption\empty - \let\getheadsyncs\theheadsynchonization + \let\getheadsyncs\theheadsynchronization \strc_rendering_place_head_empty % just flush 'm \dostoptagged \strc_sectioning_after_nop @@ -1051,7 +1051,7 @@ {\global\setbox\b_sectioning_delayed\hpack\bgroup \setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}% \hpack\headreferenceattributes{}% also does the mark - \theheadsynchonization + \theheadsynchronization \egroup} \unexpanded\def\strc_rendering_place_head_hidden % maybe trialtypesetting check @@ -1061,7 +1061,7 @@ {\noexpand\letgvalue{\??hiddenheadsync\currenthead}\relax \noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}% \hpack\headreferenceattributes{}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference - \theheadsynchonization}} % and it's a node anyway + \theheadsynchronization}} % and it's a node anyway \def\synchronizehead #1{\csname\??hiddenheadsync#1\endcsname} \def\theheadreferenceattributes#1{\csname\??hiddenheadattr#1\endcsname} diff --git a/tex/context/base/mkiv/supp-ran.mkiv b/tex/context/base/mkiv/supp-ran.mkiv index d3cc00a6e..4deb6f689 100644 --- a/tex/context/base/mkiv/supp-ran.mkiv +++ b/tex/context/base/mkiv/supp-ran.mkiv @@ -36,6 +36,7 @@ \protected\def\getrandomfloat #1#2#3{\edef#1{\clf_getrandomfloat\dimexpr#2\relax\dimexpr#3\relax}} \protected\def\setrandomseed #1{\clf_setrandomseed\numexpr#1\relax} \protected\def\getrandomseed #1{\edef#1{\clf_getrandomseed}} +\protected\def\newrandomseed {\clf_getrandomseed} %protected\def\pushrandomseed {\clf_pushrandomseed} %protected\def\poprandomseed {\clf_poprandomseed} %protected\def\reuserandomseed {\clf_reuserandomseed} % within push/pop diff --git a/tex/context/base/mkiv/symb-imp-mis.mkiv b/tex/context/base/mkiv/symb-imp-mis.mkiv index 2320ea59a..b02233baa 100644 --- a/tex/context/base/mkiv/symb-imp-mis.mkiv +++ b/tex/context/base/mkiv/symb-imp-mis.mkiv @@ -72,9 +72,9 @@ \definesymbol [numero] [\textnumero] \definesymbol [euro] [\texteuro] -\let\euro\texteuro +\aliased\let\euro\texteuro -\def\Numero{\symbol[Numero]} % obsolete -\def\numero{\symbol[numero]} % obsolete +\permanent\protected\def\Numero{\symbol[Numero]} % obsolete +\permanent\protected\def\numero{\symbol[numero]} % obsolete \protect \endinput diff --git a/tex/context/base/mkiv/syst-aux.mkiv b/tex/context/base/mkiv/syst-aux.mkiv index cd0c133cd..194f1de2c 100644 --- a/tex/context/base/mkiv/syst-aux.mkiv +++ b/tex/context/base/mkiv/syst-aux.mkiv @@ -7554,9 +7554,9 @@ \def\comparedimension#1#2% {\compresult - \ifdim#1<#2% + \ifdim#1<#2 % space wil be skipped \zerocount - \else\ifdim#1<#2% + \else\ifdim#1<#2 % space wil be skipped \plusone \else \plustwo @@ -7568,7 +7568,7 @@ \zerocount \else\ifdim\dimexpr#2-#1\relax<\roudingeps \zerocount - \else\ifdim#1<#2% + \else\ifdim#1<#2 % space wil be skipped \plusone \else \plustwo |