From 822d6299d6c28fe3780ff40831ec5c00c60133f5 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Sat, 1 Jun 2019 22:12:48 +0200 Subject: 2019-06-01 19:20:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-ro.mkii | 1 + tex/context/base/mkiv/back-pdp.lua | 14 +- tex/context/base/mkiv/char-def.lua | 3969 +++++++++++++++++++++++- tex/context/base/mkiv/char-ini.lua | 30 +- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 3 +- tex/context/base/mkiv/font-ctx.lua | 248 +- tex/context/base/mkiv/font-imp-dimensions.lua | 2 +- tex/context/base/mkiv/lpdf-img.lua | 42 +- tex/context/base/mkiv/lxml-ini.mkiv | 4 + tex/context/base/mkiv/mtx-context-markdown.tex | 92 - tex/context/base/mkiv/node-tra.lua | 4 +- tex/context/base/mkiv/page-mix.lua | 128 +- tex/context/base/mkiv/page-mix.mkiv | 17 + tex/context/base/mkiv/spac-ver.mkiv | 215 +- tex/context/base/mkiv/status-files.pdf | Bin 26639 -> 26505 bytes tex/context/base/mkiv/status-lua.pdf | Bin 266566 -> 265692 bytes tex/context/base/mkiv/strc-con.mkvi | 3 +- tex/context/base/mkiv/strc-sec.mkiv | 69 +- tex/context/base/mkiv/strc-tnt.mkiv | 120 + 22 files changed, 4441 insertions(+), 526 deletions(-) delete mode 100644 tex/context/base/mkiv/mtx-context-markdown.tex create mode 100644 tex/context/base/mkiv/strc-tnt.mkiv (limited to 'tex/context/base') diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 704b2df88..ce041e206 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2019.05.29 19:11} +\newcontextversion{2019.06.01 19:11} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii index 814359e65..eac363a55 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2019.05.29 19:11} +\edef\contextversion{2019.06.01 19:11} %D For those who want to use this: diff --git a/tex/context/base/mkii/mult-ro.mkii b/tex/context/base/mkii/mult-ro.mkii index 0f70d88c0..ba43a7cb2 100644 --- a/tex/context/base/mkii/mult-ro.mkii +++ b/tex/context/base/mkii/mult-ro.mkii @@ -570,6 +570,7 @@ \setinterfacevariable{temporary}{temporar} \setinterfacevariable{test}{test} \setinterfacevariable{text}{text} +\setinterfacevariable{textnote}{textnote} \setinterfacevariable{three}{trei} \setinterfacevariable{thursday}{joi} \setinterfacevariable{tight}{tight} diff --git a/tex/context/base/mkiv/back-pdp.lua b/tex/context/base/mkiv/back-pdp.lua index 6360dea47..6111cf469 100644 --- a/tex/context/base/mkiv/back-pdp.lua +++ b/tex/context/base/mkiv/back-pdp.lua @@ -58,16 +58,20 @@ local function pdfobj() local immediate = true local objnum = scankeyword("useobjnum") and scaninteger() or lpdfreserveobject() local uncompress = scankeyword("uncompressed") or lpdfcompresslevel() == 0 - local streamobject = scankeyword("stream") and true or false - local attributes = scankeyword("attr") and scanstring() + local streamobject = scankeyword("stream") + local attributes = scankeyword("attr") and scanstring() or nil local fileobject = scankeyword("file") local content = scanstring() - local object = { + local object = streamobject and { + type = "stream", + objnum = objnum, immediate = immediate, attr = attributes, - objnum = objnum, - type = streamobject and "stream" or nil, compresslevel = uncompress and 0 or nil, + } or { + type = "raw", + objnum = objnum, + immediate = immediate, } if fileobject then object.filename = content diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua index c17400a79..b51250ce5 100644 --- a/tex/context/base/mkiv/char-def.lua +++ b/tex/context/base/mkiv/char-def.lua @@ -26,6 +26,11 @@ local variants_emoji={ [0xFE0F]="emoji style", } +local variants_forms={ + [0xFE00]="corner-justified form", + [0xFE01]="centered form", +} + characters = characters or { } characters.data={ @@ -26593,6 +26598,13 @@ characters.data={ linebreak="nu", unicodeslot=0xC6F, }, + [0xC77]={ + category="po", + description="TELUGU SIGN SIDDHAM", + direction="l", + linebreak="bb", + unicodeslot=0xC77, + }, [0xC78]={ category="no", description="TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR", @@ -29741,6 +29753,13 @@ characters.data={ linebreak="sa", unicodeslot=0xE84, }, + [0xE86]={ + category="lo", + description="LAO LETTER PALI GHA", + direction="l", + linebreak="sa", + unicodeslot=0xE86, + }, [0xE87]={ category="lo", description="LAO LETTER NGO", @@ -29755,6 +29774,13 @@ characters.data={ linebreak="sa", unicodeslot=0xE88, }, + [0xE89]={ + category="lo", + description="LAO LETTER PALI CHA", + direction="l", + linebreak="sa", + unicodeslot=0xE89, + }, [0xE8A]={ category="lo", description="LAO LETTER SO TAM", @@ -29762,6 +29788,13 @@ characters.data={ linebreak="sa", unicodeslot=0xE8A, }, + [0xE8C]={ + category="lo", + description="LAO LETTER PALI JHA", + direction="l", + linebreak="sa", + unicodeslot=0xE8C, + }, [0xE8D]={ category="lo", description="LAO LETTER NYO", @@ -29769,6 +29802,48 @@ characters.data={ linebreak="sa", unicodeslot=0xE8D, }, + [0xE8E]={ + category="lo", + description="LAO LETTER PALI NYA", + direction="l", + linebreak="sa", + unicodeslot=0xE8E, + }, + [0xE8F]={ + category="lo", + description="LAO LETTER PALI TTA", + direction="l", + linebreak="sa", + unicodeslot=0xE8F, + }, + [0xE90]={ + category="lo", + description="LAO LETTER PALI TTHA", + direction="l", + linebreak="sa", + unicodeslot=0xE90, + }, + [0xE91]={ + category="lo", + description="LAO LETTER PALI DDA", + direction="l", + linebreak="sa", + unicodeslot=0xE91, + }, + [0xE92]={ + category="lo", + description="LAO LETTER PALI DDHA", + direction="l", + linebreak="sa", + unicodeslot=0xE92, + }, + [0xE93]={ + category="lo", + description="LAO LETTER PALI NNA", + direction="l", + linebreak="sa", + unicodeslot=0xE93, + }, [0xE94]={ category="lo", description="LAO LETTER DO", @@ -29797,6 +29872,13 @@ characters.data={ linebreak="sa", unicodeslot=0xE97, }, + [0xE98]={ + category="lo", + description="LAO LETTER PALI DHA", + direction="l", + linebreak="sa", + unicodeslot=0xE98, + }, [0xE99]={ category="lo", description="LAO LETTER NO", @@ -29846,6 +29928,13 @@ characters.data={ linebreak="sa", unicodeslot=0xE9F, }, + [0xEA0]={ + category="lo", + description="LAO LETTER PALI BHA", + direction="l", + linebreak="sa", + unicodeslot=0xEA0, + }, [0xEA1]={ category="lo", description="LAO LETTER MO", @@ -29881,6 +29970,20 @@ characters.data={ linebreak="sa", unicodeslot=0xEA7, }, + [0xEA8]={ + category="lo", + description="LAO LETTER SANSKRIT SHA", + direction="l", + linebreak="sa", + unicodeslot=0xEA8, + }, + [0xEA9]={ + category="lo", + description="LAO LETTER SANSKRIT SSA", + direction="l", + linebreak="sa", + unicodeslot=0xEA9, + }, [0xEAA]={ category="lo", description="LAO LETTER SO SUNG", @@ -29895,6 +29998,13 @@ characters.data={ linebreak="sa", unicodeslot=0xEAB, }, + [0xEAC]={ + category="lo", + description="LAO LETTER PALI LLA", + direction="l", + linebreak="sa", + unicodeslot=0xEAC, + }, [0xEAD]={ category="lo", description="LAO LETTER O", @@ -29989,6 +30099,14 @@ characters.data={ linebreak="sa", unicodeslot=0xEB9, }, + [0xEBA]={ + category="mn", + combining=0x9, + description="LAO SIGN PALI VIRAMA", + direction="nsm", + linebreak="sa", + unicodeslot=0xEBA, + }, [0xEBB]={ category="mn", description="LAO VOWEL SIGN MAI KON", @@ -53570,14 +53688,14 @@ characters.data={ category="mc", description="VEDIC SIGN ARDHAVISARGA", direction="l", - linebreak="cm", + linebreak="al", unicodeslot=0x1CF2, }, [0x1CF3]={ category="mc", description="VEDIC SIGN ROTATED ARDHAVISARGA", direction="l", - linebreak="cm", + linebreak="al", unicodeslot=0x1CF3, }, [0x1CF4]={ @@ -53625,6 +53743,13 @@ characters.data={ linebreak="cm", unicodeslot=0x1CF9, }, + [0x1CFA]={ + category="lo", + description="VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA", + direction="l", + linebreak="al", + unicodeslot=0x1CFA, + }, [0x1D00]={ category="ll", description="LATIN LETTER SMALL CAPITAL A", @@ -85787,6 +85912,13 @@ characters.data={ linebreak="al", unicodeslot=0x2BC8, }, + [0x2BC9]={ + category="so", + description="NEPTUNE FORM TWO", + direction="on", + linebreak="al", + unicodeslot=0x2BC9, + }, [0x2BCA]={ category="so", description="TOP HALF BLACK CIRCLE", @@ -86159,6 +86291,13 @@ characters.data={ mirror=0x221F, unicodeslot=0x2BFE, }, + [0x2BFF]={ + category="so", + description="HELLSCHREIBER PAUSE SYMBOL", + direction="on", + linebreak="al", + unicodeslot=0x2BFF, + }, [0x2C00]={ category="lu", description="GLAGOLITIC CAPITAL LETTER AZU", @@ -90247,6 +90386,13 @@ characters.data={ linebreak="ba", unicodeslot=0x2E4E, }, + [0x2E4F]={ + category="po", + description="CORNISH VERSE DIVIDER", + direction="on", + linebreak="ba", + unicodeslot=0x2E4F, + }, [0x2E80]={ category="so", cjkwd="w", @@ -93210,6 +93356,7 @@ characters.data={ direction="on", linebreak="cl", unicodeslot=0x3001, + variants=variants_forms, }, [0x3002]={ adobename="ideographicperiod", @@ -93219,6 +93366,7 @@ characters.data={ direction="on", linebreak="cl", unicodeslot=0x3002, + variants=variants_forms, }, [0x3003]={ adobename="dittomark", @@ -100600,6 +100748,15 @@ characters.data={ specials={ "circle", 0x30F2 }, unicodeslot=0x32FE, }, + [0x32FF]={ + category="so", + cjkwd="w", + description="SQUARE ERA NAME REIWA", + direction="l", + linebreak="id", + specials={ "square", 0x4EE4, 0x548C }, + unicodeslot=0x32FF, + }, [0x3300]={ adobename="apaatosquare", category="so", @@ -118280,6 +118437,83 @@ characters.data={ linebreak="al", unicodeslot=0xA7B9, }, + [0xA7BA]={ + category="lu", + description="LATIN CAPITAL LETTER GLOTTAL A", + direction="l", + linebreak="al", + unicodeslot=0xA7BA, + }, + [0xA7BB]={ + category="ll", + description="LATIN SMALL LETTER GLOTTAL A", + direction="l", + linebreak="al", + unicodeslot=0xA7BB, + }, + [0xA7BC]={ + category="lu", + description="LATIN CAPITAL LETTER GLOTTAL I", + direction="l", + linebreak="al", + unicodeslot=0xA7BC, + }, + [0xA7BD]={ + category="ll", + description="LATIN SMALL LETTER GLOTTAL I", + direction="l", + linebreak="al", + unicodeslot=0xA7BD, + }, + [0xA7BE]={ + category="lu", + description="LATIN CAPITAL LETTER GLOTTAL U", + direction="l", + linebreak="al", + unicodeslot=0xA7BE, + }, + [0xA7BF]={ + category="ll", + description="LATIN SMALL LETTER GLOTTAL U", + direction="l", + linebreak="al", + unicodeslot=0xA7BF, + }, + [0xA7C2]={ + category="lu", + description="LATIN CAPITAL LETTER ANGLICANA W", + direction="l", + linebreak="al", + unicodeslot=0xA7C2, + }, + [0xA7C3]={ + category="ll", + description="LATIN SMALL LETTER ANGLICANA W", + direction="l", + linebreak="al", + unicodeslot=0xA7C3, + }, + [0xA7C4]={ + category="lu", + description="LATIN CAPITAL LETTER C WITH PALATAL HOOK", + direction="l", + linebreak="al", + unicodeslot=0xA7C4, + }, + [0xA7C5]={ + category="lu", + description="LATIN CAPITAL LETTER S WITH HOOK", + direction="l", + linebreak="al", + unicodeslot=0xA7C5, + }, + [0xA7C6]={ + category="lu", + description="LATIN CAPITAL LETTER Z WITH PALATAL HOOK", + direction="l", + linebreak="al", + unicodeslot=0xA7C6, + }, [0xA7F7]={ category="lo", description="LATIN EPIGRAPHIC LETTER SIDEWAYS I", @@ -121301,7 +121535,7 @@ characters.data={ [0xA9BD]={ category="mc", description="JAVANESE CONSONANT SIGN KERET", - direction="l", + direction="nsm", linebreak="cm", unicodeslot=0xA9BD, }, @@ -123911,6 +124145,20 @@ characters.data={ linebreak="al", unicodeslot=0xAB65, }, + [0xAB66]={ + category="ll", + description="LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK", + direction="l", + linebreak="al", + unicodeslot=0xAB66, + }, + [0xAB67]={ + category="ll", + description="LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK", + direction="l", + linebreak="al", + unicodeslot=0xAB67, + }, [0xAB70]={ category="ll", description="CHEROKEE SMALL LETTER A", @@ -137206,6 +137454,7 @@ characters.data={ linebreak="ex", specials={ "wide", 0x21 }, unicodeslot=0xFF01, + variants=variants_forms, }, [0xFF02]={ adobename="quotedblmonospace", @@ -137320,6 +137569,7 @@ characters.data={ linebreak="cl", specials={ "wide", 0x2C }, unicodeslot=0xFF0C, + variants=variants_forms, }, [0xFF0D]={ adobename="hyphenmonospace", @@ -137340,6 +137590,7 @@ characters.data={ linebreak="cl", specials={ "wide", 0x2E }, unicodeslot=0xFF0E, + variants=variants_forms, }, [0xFF0F]={ adobename="slashmonospace", @@ -137463,6 +137714,7 @@ characters.data={ linebreak="ns", specials={ "wide", 0x3A }, unicodeslot=0xFF1A, + variants=variants_forms, }, [0xFF1B]={ adobename="semicolonmonospace", @@ -137473,6 +137725,7 @@ characters.data={ linebreak="ns", specials={ "wide", 0x3B }, unicodeslot=0xFF1B, + variants=variants_forms, }, [0xFF1C]={ adobename="lessmonospace", @@ -137517,6 +137770,7 @@ characters.data={ linebreak="ex", specials={ "wide", 0x3F }, unicodeslot=0xFF1F, + variants=variants_forms, }, [0xFF20]={ adobename="atmonospace", @@ -156690,6 +156944,167 @@ characters.data={ linebreak="al", unicodeslot=0x10F59, }, + [0x10FE0]={ + category="lo", + description="ELYMAIC LETTER ALEPH", + direction="r", + linebreak="al", + unicodeslot=0x10FE0, + }, + [0x10FE1]={ + category="lo", + description="ELYMAIC LETTER BETH", + direction="r", + linebreak="al", + unicodeslot=0x10FE1, + }, + [0x10FE2]={ + category="lo", + description="ELYMAIC LETTER GIMEL", + direction="r", + linebreak="al", + unicodeslot=0x10FE2, + }, + [0x10FE3]={ + category="lo", + description="ELYMAIC LETTER DALETH", + direction="r", + linebreak="al", + unicodeslot=0x10FE3, + }, + [0x10FE4]={ + category="lo", + description="ELYMAIC LETTER HE", + direction="r", + linebreak="al", + unicodeslot=0x10FE4, + }, + [0x10FE5]={ + category="lo", + description="ELYMAIC LETTER WAW", + direction="r", + linebreak="al", + unicodeslot=0x10FE5, + }, + [0x10FE6]={ + category="lo", + description="ELYMAIC LETTER ZAYIN", + direction="r", + linebreak="al", + unicodeslot=0x10FE6, + }, + [0x10FE7]={ + category="lo", + description="ELYMAIC LETTER HETH", + direction="r", + linebreak="al", + unicodeslot=0x10FE7, + }, + [0x10FE8]={ + category="lo", + description="ELYMAIC LETTER TETH", + direction="r", + linebreak="al", + unicodeslot=0x10FE8, + }, + [0x10FE9]={ + category="lo", + description="ELYMAIC LETTER YODH", + direction="r", + linebreak="al", + unicodeslot=0x10FE9, + }, + [0x10FEA]={ + category="lo", + description="ELYMAIC LETTER KAPH", + direction="r", + linebreak="al", + unicodeslot=0x10FEA, + }, + [0x10FEB]={ + category="lo", + description="ELYMAIC LETTER LAMEDH", + direction="r", + linebreak="al", + unicodeslot=0x10FEB, + }, + [0x10FEC]={ + category="lo", + description="ELYMAIC LETTER MEM", + direction="r", + linebreak="al", + unicodeslot=0x10FEC, + }, + [0x10FED]={ + category="lo", + description="ELYMAIC LETTER NUN", + direction="r", + linebreak="al", + unicodeslot=0x10FED, + }, + [0x10FEE]={ + category="lo", + description="ELYMAIC LETTER SAMEKH", + direction="r", + linebreak="al", + unicodeslot=0x10FEE, + }, + [0x10FEF]={ + category="lo", + description="ELYMAIC LETTER AYIN", + direction="r", + linebreak="al", + unicodeslot=0x10FEF, + }, + [0x10FF0]={ + category="lo", + description="ELYMAIC LETTER PE", + direction="r", + linebreak="al", + unicodeslot=0x10FF0, + }, + [0x10FF1]={ + category="lo", + description="ELYMAIC LETTER SADHE", + direction="r", + linebreak="al", + unicodeslot=0x10FF1, + }, + [0x10FF2]={ + category="lo", + description="ELYMAIC LETTER QOPH", + direction="r", + linebreak="al", + unicodeslot=0x10FF2, + }, + [0x10FF3]={ + category="lo", + description="ELYMAIC LETTER RESH", + direction="r", + linebreak="al", + unicodeslot=0x10FF3, + }, + [0x10FF4]={ + category="lo", + description="ELYMAIC LETTER SHIN", + direction="r", + linebreak="al", + unicodeslot=0x10FF4, + }, + [0x10FF5]={ + category="lo", + description="ELYMAIC LETTER TAW", + direction="r", + linebreak="al", + unicodeslot=0x10FF5, + }, + [0x10FF6]={ + category="lo", + description="ELYMAIC LIGATURE ZAYIN-YODH", + direction="r", + linebreak="al", + unicodeslot=0x10FF6, + }, [0x11000]={ category="mc", description="BRAHMI SIGN CANDRABINDU", @@ -162207,6 +162622,13 @@ characters.data={ linebreak="cm", unicodeslot=0x1145E, }, + [0x1145F]={ + category="lo", + description="NEWA LETTER VEDIC ANUSVARA", + direction="l", + linebreak="al", + unicodeslot=0x1145F, + }, [0x11480]={ category="lo", description="TIRHUTA ANJI", @@ -164473,6 +164895,13 @@ characters.data={ linebreak="cm", unicodeslot=0x116B7, }, + [0x116B8]={ + category="lo", + description="TAKRI LETTER ARCHAIC KHA", + direction="l", + linebreak="al", + unicodeslot=0x116B8, + }, [0x116C0]={ category="nd", description="TAKRI DIGIT ZERO", @@ -165960,6 +166389,462 @@ characters.data={ linebreak="al", unicodeslot=0x118FF, }, + [0x119A0]={ + category="lo", + description="NANDINAGARI LETTER A", + direction="l", + linebreak="al", + unicodeslot=0x119A0, + }, + [0x119A1]={ + category="lo", + description="NANDINAGARI LETTER AA", + direction="l", + linebreak="al", + unicodeslot=0x119A1, + }, + [0x119A2]={ + category="lo", + description="NANDINAGARI LETTER I", + direction="l", + linebreak="al", + unicodeslot=0x119A2, + }, + [0x119A3]={ + category="lo", + description="NANDINAGARI LETTER II", + direction="l", + linebreak="al", + unicodeslot=0x119A3, + }, + [0x119A4]={ + category="lo", + description="NANDINAGARI LETTER U", + direction="l", + linebreak="al", + unicodeslot=0x119A4, + }, + [0x119A5]={ + category="lo", + description="NANDINAGARI LETTER UU", + direction="l", + linebreak="al", + unicodeslot=0x119A5, + }, + [0x119A6]={ + category="lo", + description="NANDINAGARI LETTER VOCALIC R", + direction="l", + linebreak="al", + unicodeslot=0x119A6, + }, + [0x119A7]={ + category="lo", + description="NANDINAGARI LETTER VOCALIC RR", + direction="l", + linebreak="al", + unicodeslot=0x119A7, + }, + [0x119AA]={ + category="lo", + description="NANDINAGARI LETTER E", + direction="l", + linebreak="al", + unicodeslot=0x119AA, + }, + [0x119AB]={ + category="lo", + description="NANDINAGARI LETTER AI", + direction="l", + linebreak="al", + unicodeslot=0x119AB, + }, + [0x119AC]={ + category="lo", + description="NANDINAGARI LETTER O", + direction="l", + linebreak="al", + unicodeslot=0x119AC, + }, + [0x119AD]={ + category="lo", + description="NANDINAGARI LETTER AU", + direction="l", + linebreak="al", + unicodeslot=0x119AD, + }, + [0x119AE]={ + category="lo", + description="NANDINAGARI LETTER KA", + direction="l", + linebreak="al", + unicodeslot=0x119AE, + }, + [0x119AF]={ + category="lo", + description="NANDINAGARI LETTER KHA", + direction="l", + linebreak="al", + unicodeslot=0x119AF, + }, + [0x119B0]={ + category="lo", + description="NANDINAGARI LETTER GA", + direction="l", + linebreak="al", + unicodeslot=0x119B0, + }, + [0x119B1]={ + category="lo", + description="NANDINAGARI LETTER GHA", + direction="l", + linebreak="al", + unicodeslot=0x119B1, + }, + [0x119B2]={ + category="lo", + description="NANDINAGARI LETTER NGA", + direction="l", + linebreak="al", + unicodeslot=0x119B2, + }, + [0x119B3]={ + category="lo", + description="NANDINAGARI LETTER CA", + direction="l", + linebreak="al", + unicodeslot=0x119B3, + }, + [0x119B4]={ + category="lo", + description="NANDINAGARI LETTER CHA", + direction="l", + linebreak="al", + unicodeslot=0x119B4, + }, + [0x119B5]={ + category="lo", + description="NANDINAGARI LETTER JA", + direction="l", + linebreak="al", + unicodeslot=0x119B5, + }, + [0x119B6]={ + category="lo", + description="NANDINAGARI LETTER JHA", + direction="l", + linebreak="al", + unicodeslot=0x119B6, + }, + [0x119B7]={ + category="lo", + description="NANDINAGARI LETTER NYA", + direction="l", + linebreak="al", + unicodeslot=0x119B7, + }, + [0x119B8]={ + category="lo", + description="NANDINAGARI LETTER TTA", + direction="l", + linebreak="al", + unicodeslot=0x119B8, + }, + [0x119B9]={ + category="lo", + description="NANDINAGARI LETTER TTHA", + direction="l", + linebreak="al", + unicodeslot=0x119B9, + }, + [0x119BA]={ + category="lo", + description="NANDINAGARI LETTER DDA", + direction="l", + linebreak="al", + unicodeslot=0x119BA, + }, + [0x119BB]={ + category="lo", + description="NANDINAGARI LETTER DDHA", + direction="l", + linebreak="al", + unicodeslot=0x119BB, + }, + [0x119BC]={ + category="lo", + description="NANDINAGARI LETTER NNA", + direction="l", + linebreak="al", + unicodeslot=0x119BC, + }, + [0x119BD]={ + category="lo", + description="NANDINAGARI LETTER TA", + direction="l", + linebreak="al", + unicodeslot=0x119BD, + }, + [0x119BE]={ + category="lo", + description="NANDINAGARI LETTER THA", + direction="l", + linebreak="al", + unicodeslot=0x119BE, + }, + [0x119BF]={ + category="lo", + description="NANDINAGARI LETTER DA", + direction="l", + linebreak="al", + unicodeslot=0x119BF, + }, + [0x119C0]={ + category="lo", + description="NANDINAGARI LETTER DHA", + direction="l", + linebreak="al", + unicodeslot=0x119C0, + }, + [0x119C1]={ + category="lo", + description="NANDINAGARI LETTER NA", + direction="l", + linebreak="al", + unicodeslot=0x119C1, + }, + [0x119C2]={ + category="lo", + description="NANDINAGARI LETTER PA", + direction="l", + linebreak="al", + unicodeslot=0x119C2, + }, + [0x119C3]={ + category="lo", + description="NANDINAGARI LETTER PHA", + direction="l", + linebreak="al", + unicodeslot=0x119C3, + }, + [0x119C4]={ + category="lo", + description="NANDINAGARI LETTER BA", + direction="l", + linebreak="al", + unicodeslot=0x119C4, + }, + [0x119C5]={ + category="lo", + description="NANDINAGARI LETTER BHA", + direction="l", + linebreak="al", + unicodeslot=0x119C5, + }, + [0x119C6]={ + category="lo", + description="NANDINAGARI LETTER MA", + direction="l", + linebreak="al", + unicodeslot=0x119C6, + }, + [0x119C7]={ + category="lo", + description="NANDINAGARI LETTER YA", + direction="l", + linebreak="al", + unicodeslot=0x119C7, + }, + [0x119C8]={ + category="lo", + description="NANDINAGARI LETTER RA", + direction="l", + linebreak="al", + unicodeslot=0x119C8, + }, + [0x119C9]={ + category="lo", + description="NANDINAGARI LETTER LA", + direction="l", + linebreak="al", + unicodeslot=0x119C9, + }, + [0x119CA]={ + category="lo", + description="NANDINAGARI LETTER VA", + direction="l", + linebreak="al", + unicodeslot=0x119CA, + }, + [0x119CB]={ + category="lo", + description="NANDINAGARI LETTER SHA", + direction="l", + linebreak="al", + unicodeslot=0x119CB, + }, + [0x119CC]={ + category="lo", + description="NANDINAGARI LETTER SSA", + direction="l", + linebreak="al", + unicodeslot=0x119CC, + }, + [0x119CD]={ + category="lo", + description="NANDINAGARI LETTER SA", + direction="l", + linebreak="al", + unicodeslot=0x119CD, + }, + [0x119CE]={ + category="lo", + description="NANDINAGARI LETTER HA", + direction="l", + linebreak="al", + unicodeslot=0x119CE, + }, + [0x119CF]={ + category="lo", + description="NANDINAGARI LETTER LLA", + direction="l", + linebreak="al", + unicodeslot=0x119CF, + }, + [0x119D0]={ + category="lo", + description="NANDINAGARI LETTER RRA", + direction="l", + linebreak="al", + unicodeslot=0x119D0, + }, + [0x119D1]={ + category="mc", + description="NANDINAGARI VOWEL SIGN AA", + direction="l", + linebreak="cm", + unicodeslot=0x119D1, + }, + [0x119D2]={ + category="mc", + description="NANDINAGARI VOWEL SIGN I", + direction="l", + linebreak="cm", + unicodeslot=0x119D2, + }, + [0x119D3]={ + category="mc", + description="NANDINAGARI VOWEL SIGN II", + direction="l", + linebreak="cm", + unicodeslot=0x119D3, + }, + [0x119D4]={ + category="mn", + description="NANDINAGARI VOWEL SIGN U", + direction="nsm", + linebreak="cm", + unicodeslot=0x119D4, + }, + [0x119D5]={ + category="mn", + description="NANDINAGARI VOWEL SIGN UU", + direction="nsm", + linebreak="cm", + unicodeslot=0x119D5, + }, + [0x119D6]={ + category="mn", + description="NANDINAGARI VOWEL SIGN VOCALIC R", + direction="nsm", + linebreak="cm", + unicodeslot=0x119D6, + }, + [0x119D7]={ + category="mn", + description="NANDINAGARI VOWEL SIGN VOCALIC RR", + direction="nsm", + linebreak="cm", + unicodeslot=0x119D7, + }, + [0x119DA]={ + category="mn", + description="NANDINAGARI VOWEL SIGN E", + direction="nsm", + linebreak="cm", + unicodeslot=0x119DA, + }, + [0x119DB]={ + category="mn", + description="NANDINAGARI VOWEL SIGN AI", + direction="nsm", + linebreak="cm", + unicodeslot=0x119DB, + }, + [0x119DC]={ + category="mc", + description="NANDINAGARI VOWEL SIGN O", + direction="l", + linebreak="cm", + unicodeslot=0x119DC, + }, + [0x119DD]={ + category="mc", + description="NANDINAGARI VOWEL SIGN AU", + direction="l", + linebreak="cm", + unicodeslot=0x119DD, + }, + [0x119DE]={ + category="mc", + description="NANDINAGARI SIGN ANUSVARA", + direction="l", + linebreak="cm", + unicodeslot=0x119DE, + }, + [0x119DF]={ + category="mc", + description="NANDINAGARI SIGN VISARGA", + direction="l", + linebreak="cm", + unicodeslot=0x119DF, + }, + [0x119E0]={ + category="mn", + combining=0x9, + description="NANDINAGARI SIGN VIRAMA", + direction="nsm", + linebreak="cm", + unicodeslot=0x119E0, + }, + [0x119E1]={ + category="lo", + description="NANDINAGARI SIGN AVAGRAHA", + direction="l", + linebreak="al", + unicodeslot=0x119E1, + }, + [0x119E2]={ + category="po", + description="NANDINAGARI SIGN SIDDHAM", + direction="l", + linebreak="bb", + unicodeslot=0x119E2, + }, + [0x119E3]={ + category="lo", + description="NANDINAGARI HEADSTROKE", + direction="l", + linebreak="al", + unicodeslot=0x119E3, + }, + [0x119E4]={ + category="mc", + description="NANDINAGARI VOWEL SIGN PRISHTHAMATRA E", + direction="l", + linebreak="cm", + unicodeslot=0x119E4, + }, [0x11A00]={ category="lo", description="ZANABAZAR SQUARE LETTER A", @@ -166830,6 +167715,20 @@ characters.data={ linebreak="al", unicodeslot=0x11A83, }, + [0x11A84]={ + category="lo", + description="SOYOMBO SIGN JIHVAMULIYA", + direction="l", + linebreak="al", + unicodeslot=0x11A84, + }, + [0x11A85]={ + category="lo", + description="SOYOMBO SIGN UPADHMANIYA", + direction="l", + linebreak="al", + unicodeslot=0x11A85, + }, [0x11A86]={ category="lo", description="SOYOMBO CLUSTER-INITIAL LETTER RA", @@ -169734,6 +170633,363 @@ characters.data={ linebreak="al", unicodeslot=0x11EF8, }, + [0x11FC0]={ + category="no", + description="TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH", + direction="l", + linebreak="al", + unicodeslot=0x11FC0, + }, + [0x11FC1]={ + category="no", + description="TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH", + direction="l", + linebreak="al", + unicodeslot=0x11FC1, + }, + [0x11FC2]={ + category="no", + description="TAMIL FRACTION ONE EIGHTIETH", + direction="l", + linebreak="al", + unicodeslot=0x11FC2, + }, + [0x11FC3]={ + category="no", + description="TAMIL FRACTION ONE SIXTY-FOURTH", + direction="l", + linebreak="al", + unicodeslot=0x11FC3, + }, + [0x11FC4]={ + category="no", + description="TAMIL FRACTION ONE FORTIETH", + direction="l", + linebreak="al", + unicodeslot=0x11FC4, + }, + [0x11FC5]={ + category="no", + description="TAMIL FRACTION ONE THIRTY-SECOND", + direction="l", + linebreak="al", + unicodeslot=0x11FC5, + }, + [0x11FC6]={ + category="no", + description="TAMIL FRACTION THREE EIGHTIETHS", + direction="l", + linebreak="al", + unicodeslot=0x11FC6, + }, + [0x11FC7]={ + category="no", + description="TAMIL FRACTION THREE SIXTY-FOURTHS", + direction="l", + linebreak="al", + unicodeslot=0x11FC7, + }, + [0x11FC8]={ + category="no", + description="TAMIL FRACTION ONE TWENTIETH", + direction="l", + linebreak="al", + unicodeslot=0x11FC8, + }, + [0x11FC9]={ + category="no", + description="TAMIL FRACTION ONE SIXTEENTH-1", + direction="l", + linebreak="al", + unicodeslot=0x11FC9, + }, + [0x11FCA]={ + category="no", + description="TAMIL FRACTION ONE SIXTEENTH-2", + direction="l", + linebreak="al", + unicodeslot=0x11FCA, + }, + [0x11FCB]={ + category="no", + description="TAMIL FRACTION ONE TENTH", + direction="l", + linebreak="al", + unicodeslot=0x11FCB, + }, + [0x11FCC]={ + category="no", + description="TAMIL FRACTION ONE EIGHTH", + direction="l", + linebreak="al", + unicodeslot=0x11FCC, + }, + [0x11FCD]={ + category="no", + description="TAMIL FRACTION THREE TWENTIETHS", + direction="l", + linebreak="al", + unicodeslot=0x11FCD, + }, + [0x11FCE]={ + category="no", + description="TAMIL FRACTION THREE SIXTEENTHS", + direction="l", + linebreak="al", + unicodeslot=0x11FCE, + }, + [0x11FCF]={ + category="no", + description="TAMIL FRACTION ONE FIFTH", + direction="l", + linebreak="al", + unicodeslot=0x11FCF, + }, + [0x11FD0]={ + category="no", + description="TAMIL FRACTION ONE QUARTER", + direction="l", + linebreak="al", + unicodeslot=0x11FD0, + }, + [0x11FD1]={ + category="no", + description="TAMIL FRACTION ONE HALF-1", + direction="l", + linebreak="al", + unicodeslot=0x11FD1, + }, + [0x11FD2]={ + category="no", + description="TAMIL FRACTION ONE HALF-2", + direction="l", + linebreak="al", + unicodeslot=0x11FD2, + }, + [0x11FD3]={ + category="no", + description="TAMIL FRACTION THREE QUARTERS", + direction="l", + linebreak="al", + unicodeslot=0x11FD3, + }, + [0x11FD4]={ + category="no", + description="TAMIL FRACTION DOWNSCALING FACTOR KIIZH", + direction="l", + linebreak="al", + unicodeslot=0x11FD4, + }, + [0x11FD5]={ + category="so", + description="TAMIL SIGN NEL", + direction="on", + linebreak="al", + unicodeslot=0x11FD5, + }, + [0x11FD6]={ + category="so", + description="TAMIL SIGN CEVITU", + direction="on", + linebreak="al", + unicodeslot=0x11FD6, + }, + [0x11FD7]={ + category="so", + description="TAMIL SIGN AAZHAAKKU", + direction="on", + linebreak="al", + unicodeslot=0x11FD7, + }, + [0x11FD8]={ + category="so", + description="TAMIL SIGN UZHAKKU", + direction="on", + linebreak="al", + unicodeslot=0x11FD8, + }, + [0x11FD9]={ + category="so", + description="TAMIL SIGN MUUVUZHAKKU", + direction="on", + linebreak="al", + unicodeslot=0x11FD9, + }, + [0x11FDA]={ + category="so", + description="TAMIL SIGN KURUNI", + direction="on", + linebreak="al", + unicodeslot=0x11FDA, + }, + [0x11FDB]={ + category="so", + description="TAMIL SIGN PATHAKKU", + direction="on", + linebreak="al", + unicodeslot=0x11FDB, + }, + [0x11FDC]={ + category="so", + description="TAMIL SIGN MUKKURUNI", + direction="on", + linebreak="al", + unicodeslot=0x11FDC, + }, + [0x11FDD]={ + category="sc", + description="TAMIL SIGN KAACU", + direction="et", + linebreak="po", + unicodeslot=0x11FDD, + }, + [0x11FDE]={ + category="sc", + description="TAMIL SIGN PANAM", + direction="et", + linebreak="po", + unicodeslot=0x11FDE, + }, + [0x11FDF]={ + category="sc", + description="TAMIL SIGN PON", + direction="et", + linebreak="po", + unicodeslot=0x11FDF, + }, + [0x11FE0]={ + category="sc", + description="TAMIL SIGN VARAAKAN", + direction="et", + linebreak="po", + unicodeslot=0x11FE0, + }, + [0x11FE1]={ + category="so", + description="TAMIL SIGN PAARAM", + direction="on", + linebreak="al", + unicodeslot=0x11FE1, + }, + [0x11FE2]={ + category="so", + description="TAMIL SIGN KUZHI", + direction="on", + linebreak="al", + unicodeslot=0x11FE2, + }, + [0x11FE3]={ + category="so", + description="TAMIL SIGN VELI", + direction="on", + linebreak="al", + unicodeslot=0x11FE3, + }, + [0x11FE4]={ + category="so", + description="TAMIL WET CULTIVATION SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FE4, + }, + [0x11FE5]={ + category="so", + description="TAMIL DRY CULTIVATION SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FE5, + }, + [0x11FE6]={ + category="so", + description="TAMIL LAND SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FE6, + }, + [0x11FE7]={ + category="so", + description="TAMIL SALT PAN SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FE7, + }, + [0x11FE8]={ + category="so", + description="TAMIL TRADITIONAL CREDIT SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FE8, + }, + [0x11FE9]={ + category="so", + description="TAMIL TRADITIONAL NUMBER SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FE9, + }, + [0x11FEA]={ + category="so", + description="TAMIL CURRENT SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FEA, + }, + [0x11FEB]={ + category="so", + description="TAMIL AND ODD SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FEB, + }, + [0x11FEC]={ + category="so", + description="TAMIL SPENT SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FEC, + }, + [0x11FED]={ + category="so", + description="TAMIL TOTAL SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FED, + }, + [0x11FEE]={ + category="so", + description="TAMIL IN POSSESSION SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FEE, + }, + [0x11FEF]={ + category="so", + description="TAMIL STARTING FROM SIGN", + direction="on", + linebreak="al", + unicodeslot=0x11FEF, + }, + [0x11FF0]={ + category="so", + description="TAMIL SIGN MUTHALIYA", + direction="on", + linebreak="al", + unicodeslot=0x11FF0, + }, + [0x11FF1]={ + category="so", + description="TAMIL SIGN VAKAIYARAA", + direction="on", + linebreak="al", + unicodeslot=0x11FF1, + }, + [0x11FFF]={ + category="po", + description="TAMIL PUNCTUATION END OF TEXT", + direction="l", + linebreak="ba", + unicodeslot=0x11FFF, + }, [0x12000]={ category="lo", description="CUNEIFORM SIGN A", @@ -185871,6 +187127,69 @@ characters.data={ linebreak="al", unicodeslot=0x1342E, }, + [0x13430]={ + category="cf", + description="EGYPTIAN HIEROGLYPH VERTICAL JOINER", + direction="l", + linebreak="gl", + unicodeslot=0x13430, + }, + [0x13431]={ + category="cf", + description="EGYPTIAN HIEROGLYPH HORIZONTAL JOINER", + direction="l", + linebreak="gl", + unicodeslot=0x13431, + }, + [0x13432]={ + category="cf", + description="EGYPTIAN HIEROGLYPH INSERT AT TOP START", + direction="l", + linebreak="gl", + unicodeslot=0x13432, + }, + [0x13433]={ + category="cf", + description="EGYPTIAN HIEROGLYPH INSERT AT BOTTOM START", + direction="l", + linebreak="gl", + unicodeslot=0x13433, + }, + [0x13434]={ + category="cf", + description="EGYPTIAN HIEROGLYPH INSERT AT TOP END", + direction="l", + linebreak="gl", + unicodeslot=0x13434, + }, + [0x13435]={ + category="cf", + description="EGYPTIAN HIEROGLYPH INSERT AT BOTTOM END", + direction="l", + linebreak="gl", + unicodeslot=0x13435, + }, + [0x13436]={ + category="cf", + description="EGYPTIAN HIEROGLYPH OVERLAY MIDDLE", + direction="l", + linebreak="gl", + unicodeslot=0x13436, + }, + [0x13437]={ + category="cf", + description="EGYPTIAN HIEROGLYPH BEGIN SEGMENT", + direction="l", + linebreak="op", + unicodeslot=0x13437, + }, + [0x13438]={ + category="cf", + description="EGYPTIAN HIEROGLYPH END SEGMENT", + direction="l", + linebreak="cl", + unicodeslot=0x13438, + }, [0x14400]={ category="lo", description="ANATOLIAN HIEROGLYPH A001", @@ -196509,6 +197828,55 @@ characters.data={ linebreak="al", unicodeslot=0x16F44, }, + [0x16F45]={ + category="lo", + description="MIAO LETTER BRI", + direction="l", + linebreak="al", + unicodeslot=0x16F45, + }, + [0x16F46]={ + category="lo", + description="MIAO LETTER SYI", + direction="l", + linebreak="al", + unicodeslot=0x16F46, + }, + [0x16F47]={ + category="lo", + description="MIAO LETTER DZYI", + direction="l", + linebreak="al", + unicodeslot=0x16F47, + }, + [0x16F48]={ + category="lo", + description="MIAO LETTER TE", + direction="l", + linebreak="al", + unicodeslot=0x16F48, + }, + [0x16F49]={ + category="lo", + description="MIAO LETTER TSE", + direction="l", + linebreak="al", + unicodeslot=0x16F49, + }, + [0x16F4A]={ + category="lo", + description="MIAO LETTER RTE", + direction="l", + linebreak="al", + unicodeslot=0x16F4A, + }, + [0x16F4F]={ + category="mn", + description="MIAO SIGN CONSONANT MODIFIER BAR", + direction="nsm", + linebreak="cm", + unicodeslot=0x16F4F, + }, [0x16F50]={ category="lo", description="MIAO LETTER NASALIZATION", @@ -196838,6 +198206,69 @@ characters.data={ linebreak="cm", unicodeslot=0x16F7E, }, + [0x16F7F]={ + category="mc", + description="MIAO VOWEL SIGN UOG", + direction="l", + linebreak="cm", + unicodeslot=0x16F7F, + }, + [0x16F80]={ + category="mc", + description="MIAO VOWEL SIGN YUI", + direction="l", + linebreak="cm", + unicodeslot=0x16F80, + }, + [0x16F81]={ + category="mc", + description="MIAO VOWEL SIGN OG", + direction="l", + linebreak="cm", + unicodeslot=0x16F81, + }, + [0x16F82]={ + category="mc", + description="MIAO VOWEL SIGN OER", + direction="l", + linebreak="cm", + unicodeslot=0x16F82, + }, + [0x16F83]={ + category="mc", + description="MIAO VOWEL SIGN VW", + direction="l", + linebreak="cm", + unicodeslot=0x16F83, + }, + [0x16F84]={ + category="mc", + description="MIAO VOWEL SIGN IG", + direction="l", + linebreak="cm", + unicodeslot=0x16F84, + }, + [0x16F85]={ + category="mc", + description="MIAO VOWEL SIGN EA", + direction="l", + linebreak="cm", + unicodeslot=0x16F85, + }, + [0x16F86]={ + category="mc", + description="MIAO VOWEL SIGN IONG", + direction="l", + linebreak="cm", + unicodeslot=0x16F86, + }, + [0x16F87]={ + category="mc", + description="MIAO VOWEL SIGN UI", + direction="l", + linebreak="cm", + unicodeslot=0x16F87, + }, [0x16F8F]={ category="mn", description="MIAO TONE RIGHT", @@ -196973,6 +198404,22 @@ characters.data={ linebreak="ns", unicodeslot=0x16FE1, }, + [0x16FE2]={ + category="po", + cjkwd="w", + description="OLD CHINESE HOOK MARK", + direction="on", + linebreak="ns", + unicodeslot=0x16FE2, + }, + [0x16FE3]={ + category="lm", + cjkwd="w", + description="OLD CHINESE ITERATION MARK", + direction="l", + linebreak="ns", + unicodeslot=0x16FE3, + }, [0x18800]={ category="lo", cjkwd="w", @@ -205309,6 +206756,62 @@ characters.data={ linebreak="id", unicodeslot=0x1B11E, }, + [0x1B150]={ + category="lo", + cjkwd="w", + description="HIRAGANA LETTER SMALL WI", + direction="l", + linebreak="cj", + unicodeslot=0x1B150, + }, + [0x1B151]={ + category="lo", + cjkwd="w", + description="HIRAGANA LETTER SMALL WE", + direction="l", + linebreak="cj", + unicodeslot=0x1B151, + }, + [0x1B152]={ + category="lo", + cjkwd="w", + description="HIRAGANA LETTER SMALL WO", + direction="l", + linebreak="cj", + unicodeslot=0x1B152, + }, + [0x1B164]={ + category="lo", + cjkwd="w", + description="KATAKANA LETTER SMALL WI", + direction="l", + linebreak="cj", + unicodeslot=0x1B164, + }, + [0x1B165]={ + category="lo", + cjkwd="w", + description="KATAKANA LETTER SMALL WE", + direction="l", + linebreak="cj", + unicodeslot=0x1B165, + }, + [0x1B166]={ + category="lo", + cjkwd="w", + description="KATAKANA LETTER SMALL WO", + direction="l", + linebreak="cj", + unicodeslot=0x1B166, + }, + [0x1B167]={ + category="lo", + cjkwd="w", + description="KATAKANA LETTER SMALL N", + direction="l", + linebreak="cj", + unicodeslot=0x1B167, + }, [0x1B170]={ category="lo", cjkwd="w", @@ -228068,6 +229571,927 @@ characters.data={ linebreak="cm", unicodeslot=0x1E02A, }, + [0x1E100]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER MA", + direction="l", + linebreak="al", + unicodeslot=0x1E100, + }, + [0x1E101]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER TSA", + direction="l", + linebreak="al", + unicodeslot=0x1E101, + }, + [0x1E102]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NTA", + direction="l", + linebreak="al", + unicodeslot=0x1E102, + }, + [0x1E103]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER TA", + direction="l", + linebreak="al", + unicodeslot=0x1E103, + }, + [0x1E104]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER HA", + direction="l", + linebreak="al", + unicodeslot=0x1E104, + }, + [0x1E105]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NA", + direction="l", + linebreak="al", + unicodeslot=0x1E105, + }, + [0x1E106]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER XA", + direction="l", + linebreak="al", + unicodeslot=0x1E106, + }, + [0x1E107]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NKA", + direction="l", + linebreak="al", + unicodeslot=0x1E107, + }, + [0x1E108]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER CA", + direction="l", + linebreak="al", + unicodeslot=0x1E108, + }, + [0x1E109]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER LA", + direction="l", + linebreak="al", + unicodeslot=0x1E109, + }, + [0x1E10A]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER SA", + direction="l", + linebreak="al", + unicodeslot=0x1E10A, + }, + [0x1E10B]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER ZA", + direction="l", + linebreak="al", + unicodeslot=0x1E10B, + }, + [0x1E10C]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NCA", + direction="l", + linebreak="al", + unicodeslot=0x1E10C, + }, + [0x1E10D]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NTSA", + direction="l", + linebreak="al", + unicodeslot=0x1E10D, + }, + [0x1E10E]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER KA", + direction="l", + linebreak="al", + unicodeslot=0x1E10E, + }, + [0x1E10F]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER DA", + direction="l", + linebreak="al", + unicodeslot=0x1E10F, + }, + [0x1E110]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NYA", + direction="l", + linebreak="al", + unicodeslot=0x1E110, + }, + [0x1E111]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NRA", + direction="l", + linebreak="al", + unicodeslot=0x1E111, + }, + [0x1E112]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER VA", + direction="l", + linebreak="al", + unicodeslot=0x1E112, + }, + [0x1E113]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NTXA", + direction="l", + linebreak="al", + unicodeslot=0x1E113, + }, + [0x1E114]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER TXA", + direction="l", + linebreak="al", + unicodeslot=0x1E114, + }, + [0x1E115]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER FA", + direction="l", + linebreak="al", + unicodeslot=0x1E115, + }, + [0x1E116]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER RA", + direction="l", + linebreak="al", + unicodeslot=0x1E116, + }, + [0x1E117]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER QA", + direction="l", + linebreak="al", + unicodeslot=0x1E117, + }, + [0x1E118]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER YA", + direction="l", + linebreak="al", + unicodeslot=0x1E118, + }, + [0x1E119]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NQA", + direction="l", + linebreak="al", + unicodeslot=0x1E119, + }, + [0x1E11A]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER PA", + direction="l", + linebreak="al", + unicodeslot=0x1E11A, + }, + [0x1E11B]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER XYA", + direction="l", + linebreak="al", + unicodeslot=0x1E11B, + }, + [0x1E11C]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NPA", + direction="l", + linebreak="al", + unicodeslot=0x1E11C, + }, + [0x1E11D]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER DLA", + direction="l", + linebreak="al", + unicodeslot=0x1E11D, + }, + [0x1E11E]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER NPLA", + direction="l", + linebreak="al", + unicodeslot=0x1E11E, + }, + [0x1E11F]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER HAH", + direction="l", + linebreak="al", + unicodeslot=0x1E11F, + }, + [0x1E120]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER MLA", + direction="l", + linebreak="al", + unicodeslot=0x1E120, + }, + [0x1E121]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER PLA", + direction="l", + linebreak="al", + unicodeslot=0x1E121, + }, + [0x1E122]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER GA", + direction="l", + linebreak="al", + unicodeslot=0x1E122, + }, + [0x1E123]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER RRA", + direction="l", + linebreak="al", + unicodeslot=0x1E123, + }, + [0x1E124]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER A", + direction="l", + linebreak="al", + unicodeslot=0x1E124, + }, + [0x1E125]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER AA", + direction="l", + linebreak="al", + unicodeslot=0x1E125, + }, + [0x1E126]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER I", + direction="l", + linebreak="al", + unicodeslot=0x1E126, + }, + [0x1E127]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER U", + direction="l", + linebreak="al", + unicodeslot=0x1E127, + }, + [0x1E128]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER O", + direction="l", + linebreak="al", + unicodeslot=0x1E128, + }, + [0x1E129]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER OO", + direction="l", + linebreak="al", + unicodeslot=0x1E129, + }, + [0x1E12A]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER E", + direction="l", + linebreak="al", + unicodeslot=0x1E12A, + }, + [0x1E12B]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER EE", + direction="l", + linebreak="al", + unicodeslot=0x1E12B, + }, + [0x1E12C]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LETTER W", + direction="l", + linebreak="al", + unicodeslot=0x1E12C, + }, + [0x1E130]={ + category="mn", + combining=0xE6, + description="NYIAKENG PUACHUE HMONG TONE-B", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E130, + }, + [0x1E131]={ + category="mn", + combining=0xE6, + description="NYIAKENG PUACHUE HMONG TONE-M", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E131, + }, + [0x1E132]={ + category="mn", + combining=0xE6, + description="NYIAKENG PUACHUE HMONG TONE-J", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E132, + }, + [0x1E133]={ + category="mn", + combining=0xE6, + description="NYIAKENG PUACHUE HMONG TONE-V", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E133, + }, + [0x1E134]={ + category="mn", + combining=0xE6, + description="NYIAKENG PUACHUE HMONG TONE-S", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E134, + }, + [0x1E135]={ + category="mn", + combining=0xE6, + description="NYIAKENG PUACHUE HMONG TONE-G", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E135, + }, + [0x1E136]={ + category="mn", + combining=0xE6, + description="NYIAKENG PUACHUE HMONG TONE-D", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E136, + }, + [0x1E137]={ + category="lm", + description="NYIAKENG PUACHUE HMONG SIGN FOR PERSON", + direction="l", + linebreak="al", + unicodeslot=0x1E137, + }, + [0x1E138]={ + category="lm", + description="NYIAKENG PUACHUE HMONG SIGN FOR THING", + direction="l", + linebreak="al", + unicodeslot=0x1E138, + }, + [0x1E139]={ + category="lm", + description="NYIAKENG PUACHUE HMONG SIGN FOR LOCATION", + direction="l", + linebreak="al", + unicodeslot=0x1E139, + }, + [0x1E13A]={ + category="lm", + description="NYIAKENG PUACHUE HMONG SIGN FOR ANIMAL", + direction="l", + linebreak="al", + unicodeslot=0x1E13A, + }, + [0x1E13B]={ + category="lm", + description="NYIAKENG PUACHUE HMONG SIGN FOR INVERTEBRATE", + direction="l", + linebreak="al", + unicodeslot=0x1E13B, + }, + [0x1E13C]={ + category="lm", + description="NYIAKENG PUACHUE HMONG SIGN XW XW", + direction="l", + linebreak="al", + unicodeslot=0x1E13C, + }, + [0x1E13D]={ + category="lm", + description="NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER", + direction="l", + linebreak="al", + unicodeslot=0x1E13D, + }, + [0x1E140]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT ZERO", + direction="l", + linebreak="nu", + unicodeslot=0x1E140, + }, + [0x1E141]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT ONE", + direction="l", + linebreak="nu", + unicodeslot=0x1E141, + }, + [0x1E142]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT TWO", + direction="l", + linebreak="nu", + unicodeslot=0x1E142, + }, + [0x1E143]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT THREE", + direction="l", + linebreak="nu", + unicodeslot=0x1E143, + }, + [0x1E144]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT FOUR", + direction="l", + linebreak="nu", + unicodeslot=0x1E144, + }, + [0x1E145]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT FIVE", + direction="l", + linebreak="nu", + unicodeslot=0x1E145, + }, + [0x1E146]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT SIX", + direction="l", + linebreak="nu", + unicodeslot=0x1E146, + }, + [0x1E147]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT SEVEN", + direction="l", + linebreak="nu", + unicodeslot=0x1E147, + }, + [0x1E148]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT EIGHT", + direction="l", + linebreak="nu", + unicodeslot=0x1E148, + }, + [0x1E149]={ + category="nd", + description="NYIAKENG PUACHUE HMONG DIGIT NINE", + direction="l", + linebreak="nu", + unicodeslot=0x1E149, + }, + [0x1E14E]={ + category="lo", + description="NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ", + direction="l", + linebreak="al", + unicodeslot=0x1E14E, + }, + [0x1E14F]={ + category="so", + description="NYIAKENG PUACHUE HMONG CIRCLED CA", + direction="l", + linebreak="al", + unicodeslot=0x1E14F, + }, + [0x1E2C0]={ + category="lo", + description="WANCHO LETTER AA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C0, + }, + [0x1E2C1]={ + category="lo", + description="WANCHO LETTER A", + direction="l", + linebreak="al", + unicodeslot=0x1E2C1, + }, + [0x1E2C2]={ + category="lo", + description="WANCHO LETTER BA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C2, + }, + [0x1E2C3]={ + category="lo", + description="WANCHO LETTER CA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C3, + }, + [0x1E2C4]={ + category="lo", + description="WANCHO LETTER DA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C4, + }, + [0x1E2C5]={ + category="lo", + description="WANCHO LETTER GA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C5, + }, + [0x1E2C6]={ + category="lo", + description="WANCHO LETTER YA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C6, + }, + [0x1E2C7]={ + category="lo", + description="WANCHO LETTER PHA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C7, + }, + [0x1E2C8]={ + category="lo", + description="WANCHO LETTER LA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C8, + }, + [0x1E2C9]={ + category="lo", + description="WANCHO LETTER NA", + direction="l", + linebreak="al", + unicodeslot=0x1E2C9, + }, + [0x1E2CA]={ + category="lo", + description="WANCHO LETTER PA", + direction="l", + linebreak="al", + unicodeslot=0x1E2CA, + }, + [0x1E2CB]={ + category="lo", + description="WANCHO LETTER TA", + direction="l", + linebreak="al", + unicodeslot=0x1E2CB, + }, + [0x1E2CC]={ + category="lo", + description="WANCHO LETTER THA", + direction="l", + linebreak="al", + unicodeslot=0x1E2CC, + }, + [0x1E2CD]={ + category="lo", + description="WANCHO LETTER FA", + direction="l", + linebreak="al", + unicodeslot=0x1E2CD, + }, + [0x1E2CE]={ + category="lo", + description="WANCHO LETTER SA", + direction="l", + linebreak="al", + unicodeslot=0x1E2CE, + }, + [0x1E2CF]={ + category="lo", + description="WANCHO LETTER SHA", + direction="l", + linebreak="al", + unicodeslot=0x1E2CF, + }, + [0x1E2D0]={ + category="lo", + description="WANCHO LETTER JA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D0, + }, + [0x1E2D1]={ + category="lo", + description="WANCHO LETTER ZA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D1, + }, + [0x1E2D2]={ + category="lo", + description="WANCHO LETTER WA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D2, + }, + [0x1E2D3]={ + category="lo", + description="WANCHO LETTER VA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D3, + }, + [0x1E2D4]={ + category="lo", + description="WANCHO LETTER KA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D4, + }, + [0x1E2D5]={ + category="lo", + description="WANCHO LETTER O", + direction="l", + linebreak="al", + unicodeslot=0x1E2D5, + }, + [0x1E2D6]={ + category="lo", + description="WANCHO LETTER AU", + direction="l", + linebreak="al", + unicodeslot=0x1E2D6, + }, + [0x1E2D7]={ + category="lo", + description="WANCHO LETTER RA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D7, + }, + [0x1E2D8]={ + category="lo", + description="WANCHO LETTER MA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D8, + }, + [0x1E2D9]={ + category="lo", + description="WANCHO LETTER KHA", + direction="l", + linebreak="al", + unicodeslot=0x1E2D9, + }, + [0x1E2DA]={ + category="lo", + description="WANCHO LETTER HA", + direction="l", + linebreak="al", + unicodeslot=0x1E2DA, + }, + [0x1E2DB]={ + category="lo", + description="WANCHO LETTER E", + direction="l", + linebreak="al", + unicodeslot=0x1E2DB, + }, + [0x1E2DC]={ + category="lo", + description="WANCHO LETTER I", + direction="l", + linebreak="al", + unicodeslot=0x1E2DC, + }, + [0x1E2DD]={ + category="lo", + description="WANCHO LETTER NGA", + direction="l", + linebreak="al", + unicodeslot=0x1E2DD, + }, + [0x1E2DE]={ + category="lo", + description="WANCHO LETTER U", + direction="l", + linebreak="al", + unicodeslot=0x1E2DE, + }, + [0x1E2DF]={ + category="lo", + description="WANCHO LETTER LLHA", + direction="l", + linebreak="al", + unicodeslot=0x1E2DF, + }, + [0x1E2E0]={ + category="lo", + description="WANCHO LETTER TSA", + direction="l", + linebreak="al", + unicodeslot=0x1E2E0, + }, + [0x1E2E1]={ + category="lo", + description="WANCHO LETTER TRA", + direction="l", + linebreak="al", + unicodeslot=0x1E2E1, + }, + [0x1E2E2]={ + category="lo", + description="WANCHO LETTER ONG", + direction="l", + linebreak="al", + unicodeslot=0x1E2E2, + }, + [0x1E2E3]={ + category="lo", + description="WANCHO LETTER AANG", + direction="l", + linebreak="al", + unicodeslot=0x1E2E3, + }, + [0x1E2E4]={ + category="lo", + description="WANCHO LETTER ANG", + direction="l", + linebreak="al", + unicodeslot=0x1E2E4, + }, + [0x1E2E5]={ + category="lo", + description="WANCHO LETTER ING", + direction="l", + linebreak="al", + unicodeslot=0x1E2E5, + }, + [0x1E2E6]={ + category="lo", + description="WANCHO LETTER ON", + direction="l", + linebreak="al", + unicodeslot=0x1E2E6, + }, + [0x1E2E7]={ + category="lo", + description="WANCHO LETTER EN", + direction="l", + linebreak="al", + unicodeslot=0x1E2E7, + }, + [0x1E2E8]={ + category="lo", + description="WANCHO LETTER AAN", + direction="l", + linebreak="al", + unicodeslot=0x1E2E8, + }, + [0x1E2E9]={ + category="lo", + description="WANCHO LETTER NYA", + direction="l", + linebreak="al", + unicodeslot=0x1E2E9, + }, + [0x1E2EA]={ + category="lo", + description="WANCHO LETTER UEN", + direction="l", + linebreak="al", + unicodeslot=0x1E2EA, + }, + [0x1E2EB]={ + category="lo", + description="WANCHO LETTER YIH", + direction="l", + linebreak="al", + unicodeslot=0x1E2EB, + }, + [0x1E2EC]={ + category="mn", + combining=0xE6, + description="WANCHO TONE TUP", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E2EC, + }, + [0x1E2ED]={ + category="mn", + combining=0xE6, + description="WANCHO TONE TUPNI", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E2ED, + }, + [0x1E2EE]={ + category="mn", + combining=0xE6, + description="WANCHO TONE KOI", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E2EE, + }, + [0x1E2EF]={ + category="mn", + combining=0xE6, + description="WANCHO TONE KOINI", + direction="nsm", + linebreak="cm", + unicodeslot=0x1E2EF, + }, + [0x1E2F0]={ + category="nd", + description="WANCHO DIGIT ZERO", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F0, + }, + [0x1E2F1]={ + category="nd", + description="WANCHO DIGIT ONE", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F1, + }, + [0x1E2F2]={ + category="nd", + description="WANCHO DIGIT TWO", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F2, + }, + [0x1E2F3]={ + category="nd", + description="WANCHO DIGIT THREE", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F3, + }, + [0x1E2F4]={ + category="nd", + description="WANCHO DIGIT FOUR", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F4, + }, + [0x1E2F5]={ + category="nd", + description="WANCHO DIGIT FIVE", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F5, + }, + [0x1E2F6]={ + category="nd", + description="WANCHO DIGIT SIX", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F6, + }, + [0x1E2F7]={ + category="nd", + description="WANCHO DIGIT SEVEN", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F7, + }, + [0x1E2F8]={ + category="nd", + description="WANCHO DIGIT EIGHT", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F8, + }, + [0x1E2F9]={ + category="nd", + description="WANCHO DIGIT NINE", + direction="l", + linebreak="nu", + unicodeslot=0x1E2F9, + }, + [0x1E2FF]={ + category="sc", + description="WANCHO NGUN SIGN", + direction="et", + linebreak="pr", + unicodeslot=0x1E2FF, + }, [0x1E800]={ category="lo", description="MENDE KIKAKUI SYLLABLE M001 KI", @@ -230166,6 +232590,14 @@ characters.data={ linebreak="cm", unicodeslot=0x1E94A, }, + [0x1E94B]={ + arabic="t", + category="lm", + description="ADLAM NASALIZATION MARK", + direction="r", + linebreak="al", + unicodeslot=0x1E94B, + }, [0x1E950]={ category="nd", description="ADLAM DIGIT ZERO", @@ -230726,6 +233158,433 @@ characters.data={ linebreak="al", unicodeslot=0x1ECB4, }, + [0x1ED01]={ + category="no", + description="OTTOMAN SIYAQ NUMBER ONE", + direction="al", + linebreak="al", + unicodeslot=0x1ED01, + }, + [0x1ED02]={ + category="no", + description="OTTOMAN SIYAQ NUMBER TWO", + direction="al", + linebreak="al", + unicodeslot=0x1ED02, + }, + [0x1ED03]={ + category="no", + description="OTTOMAN SIYAQ NUMBER THREE", + direction="al", + linebreak="al", + unicodeslot=0x1ED03, + }, + [0x1ED04]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FOUR", + direction="al", + linebreak="al", + unicodeslot=0x1ED04, + }, + [0x1ED05]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FIVE", + direction="al", + linebreak="al", + unicodeslot=0x1ED05, + }, + [0x1ED06]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SIX", + direction="al", + linebreak="al", + unicodeslot=0x1ED06, + }, + [0x1ED07]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SEVEN", + direction="al", + linebreak="al", + unicodeslot=0x1ED07, + }, + [0x1ED08]={ + category="no", + description="OTTOMAN SIYAQ NUMBER EIGHT", + direction="al", + linebreak="al", + unicodeslot=0x1ED08, + }, + [0x1ED09]={ + category="no", + description="OTTOMAN SIYAQ NUMBER NINE", + direction="al", + linebreak="al", + unicodeslot=0x1ED09, + }, + [0x1ED0A]={ + category="no", + description="OTTOMAN SIYAQ NUMBER TEN", + direction="al", + linebreak="al", + unicodeslot=0x1ED0A, + }, + [0x1ED0B]={ + category="no", + description="OTTOMAN SIYAQ NUMBER TWENTY", + direction="al", + linebreak="al", + unicodeslot=0x1ED0B, + }, + [0x1ED0C]={ + category="no", + description="OTTOMAN SIYAQ NUMBER THIRTY", + direction="al", + linebreak="al", + unicodeslot=0x1ED0C, + }, + [0x1ED0D]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FORTY", + direction="al", + linebreak="al", + unicodeslot=0x1ED0D, + }, + [0x1ED0E]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FIFTY", + direction="al", + linebreak="al", + unicodeslot=0x1ED0E, + }, + [0x1ED0F]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SIXTY", + direction="al", + linebreak="al", + unicodeslot=0x1ED0F, + }, + [0x1ED10]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SEVENTY", + direction="al", + linebreak="al", + unicodeslot=0x1ED10, + }, + [0x1ED11]={ + category="no", + description="OTTOMAN SIYAQ NUMBER EIGHTY", + direction="al", + linebreak="al", + unicodeslot=0x1ED11, + }, + [0x1ED12]={ + category="no", + description="OTTOMAN SIYAQ NUMBER NINETY", + direction="al", + linebreak="al", + unicodeslot=0x1ED12, + }, + [0x1ED13]={ + category="no", + description="OTTOMAN SIYAQ NUMBER ONE HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED13, + }, + [0x1ED14]={ + category="no", + description="OTTOMAN SIYAQ NUMBER TWO HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED14, + }, + [0x1ED15]={ + category="no", + description="OTTOMAN SIYAQ NUMBER THREE HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED15, + }, + [0x1ED16]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FOUR HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED16, + }, + [0x1ED17]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FIVE HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED17, + }, + [0x1ED18]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SIX HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED18, + }, + [0x1ED19]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SEVEN HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED19, + }, + [0x1ED1A]={ + category="no", + description="OTTOMAN SIYAQ NUMBER EIGHT HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED1A, + }, + [0x1ED1B]={ + category="no", + description="OTTOMAN SIYAQ NUMBER NINE HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED1B, + }, + [0x1ED1C]={ + category="no", + description="OTTOMAN SIYAQ NUMBER ONE THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED1C, + }, + [0x1ED1D]={ + category="no", + description="OTTOMAN SIYAQ NUMBER TWO THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED1D, + }, + [0x1ED1E]={ + category="no", + description="OTTOMAN SIYAQ NUMBER THREE THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED1E, + }, + [0x1ED1F]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FOUR THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED1F, + }, + [0x1ED20]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FIVE THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED20, + }, + [0x1ED21]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SIX THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED21, + }, + [0x1ED22]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SEVEN THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED22, + }, + [0x1ED23]={ + category="no", + description="OTTOMAN SIYAQ NUMBER EIGHT THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED23, + }, + [0x1ED24]={ + category="no", + description="OTTOMAN SIYAQ NUMBER NINE THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED24, + }, + [0x1ED25]={ + category="no", + description="OTTOMAN SIYAQ NUMBER TEN THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED25, + }, + [0x1ED26]={ + category="no", + description="OTTOMAN SIYAQ NUMBER TWENTY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED26, + }, + [0x1ED27]={ + category="no", + description="OTTOMAN SIYAQ NUMBER THIRTY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED27, + }, + [0x1ED28]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FORTY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED28, + }, + [0x1ED29]={ + category="no", + description="OTTOMAN SIYAQ NUMBER FIFTY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED29, + }, + [0x1ED2A]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SIXTY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED2A, + }, + [0x1ED2B]={ + category="no", + description="OTTOMAN SIYAQ NUMBER SEVENTY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED2B, + }, + [0x1ED2C]={ + category="no", + description="OTTOMAN SIYAQ NUMBER EIGHTY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED2C, + }, + [0x1ED2D]={ + category="no", + description="OTTOMAN SIYAQ NUMBER NINETY THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED2D, + }, + [0x1ED2E]={ + category="so", + description="OTTOMAN SIYAQ MARRATAN", + direction="al", + linebreak="al", + unicodeslot=0x1ED2E, + }, + [0x1ED2F]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER TWO", + direction="al", + linebreak="al", + unicodeslot=0x1ED2F, + }, + [0x1ED30]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER THREE", + direction="al", + linebreak="al", + unicodeslot=0x1ED30, + }, + [0x1ED31]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER FOUR", + direction="al", + linebreak="al", + unicodeslot=0x1ED31, + }, + [0x1ED32]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER FIVE", + direction="al", + linebreak="al", + unicodeslot=0x1ED32, + }, + [0x1ED33]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER SIX", + direction="al", + linebreak="al", + unicodeslot=0x1ED33, + }, + [0x1ED34]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER SEVEN", + direction="al", + linebreak="al", + unicodeslot=0x1ED34, + }, + [0x1ED35]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER EIGHT", + direction="al", + linebreak="al", + unicodeslot=0x1ED35, + }, + [0x1ED36]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER NINE", + direction="al", + linebreak="al", + unicodeslot=0x1ED36, + }, + [0x1ED37]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER TEN", + direction="al", + linebreak="al", + unicodeslot=0x1ED37, + }, + [0x1ED38]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER FOUR HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED38, + }, + [0x1ED39]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER SIX HUNDRED", + direction="al", + linebreak="al", + unicodeslot=0x1ED39, + }, + [0x1ED3A]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER TWO THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED3A, + }, + [0x1ED3B]={ + category="no", + description="OTTOMAN SIYAQ ALTERNATE NUMBER TEN THOUSAND", + direction="al", + linebreak="al", + unicodeslot=0x1ED3B, + }, + [0x1ED3C]={ + category="no", + description="OTTOMAN SIYAQ FRACTION ONE HALF", + direction="al", + linebreak="al", + unicodeslot=0x1ED3C, + }, + [0x1ED3D]={ + category="no", + description="OTTOMAN SIYAQ FRACTION ONE SIXTH", + direction="al", + linebreak="al", + unicodeslot=0x1ED3D, + }, [0x1EE00]={ category="lo", comment="check math properties", @@ -234508,6 +237367,14 @@ characters.data={ synonyms={ "marque deposee" }, unicodeslot=0x1F16B, }, + [0x1F16C]={ + category="so", + description="RAISED MR SIGN", + direction="on", + linebreak="al", + specials={ "super", 0x4D, 0x52 }, + unicodeslot=0x1F16C, + }, [0x1F170]={ category="so", cjkwd="a", @@ -238661,7 +241528,7 @@ characters.data={ cjkwd="w", description="FAMILY", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F46A, }, [0x1F46B]={ @@ -238669,7 +241536,7 @@ characters.data={ cjkwd="w", description="MAN AND WOMAN HOLDING HANDS", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F46B, }, [0x1F46C]={ @@ -238677,7 +241544,7 @@ characters.data={ cjkwd="w", description="TWO MEN HOLDING HANDS", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F46C, }, [0x1F46D]={ @@ -238685,7 +241552,7 @@ characters.data={ cjkwd="w", description="TWO WOMEN HOLDING HANDS", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F46D, }, [0x1F46E]={ @@ -238701,7 +241568,7 @@ characters.data={ cjkwd="w", description="WOMAN WITH BUNNY EARS", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F46F, }, [0x1F470]={ @@ -238958,7 +241825,7 @@ characters.data={ cjkwd="w", description="KISS", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F48F, }, [0x1F490]={ @@ -238974,7 +241841,7 @@ characters.data={ cjkwd="w", description="COUPLE WITH HEART", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F491, }, [0x1F492]={ @@ -243446,6 +246313,14 @@ characters.data={ linebreak="id", unicodeslot=0x1F6D4, }, + [0x1F6D5]={ + category="so", + cjkwd="w", + description="HINDU TEMPLE", + direction="on", + linebreak="id", + unicodeslot=0x1F6D5, + }, [0x1F6E0]={ category="so", description="HAMMER AND WRENCH", @@ -243624,6 +246499,14 @@ characters.data={ linebreak="id", unicodeslot=0x1F6F9, }, + [0x1F6FA]={ + category="so", + cjkwd="w", + description="AUTO RICKSHAW", + direction="on", + linebreak="id", + unicodeslot=0x1F6FA, + }, [0x1F700]={ category="so", description="ALCHEMICAL SYMBOL FOR QUINTESSENCE", @@ -245060,6 +247943,102 @@ characters.data={ linebreak="id", unicodeslot=0x1F7D8, }, + [0x1F7E0]={ + category="so", + cjkwd="w", + description="LARGE ORANGE CIRCLE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E0, + }, + [0x1F7E1]={ + category="so", + cjkwd="w", + description="LARGE YELLOW CIRCLE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E1, + }, + [0x1F7E2]={ + category="so", + cjkwd="w", + description="LARGE GREEN CIRCLE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E2, + }, + [0x1F7E3]={ + category="so", + cjkwd="w", + description="LARGE PURPLE CIRCLE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E3, + }, + [0x1F7E4]={ + category="so", + cjkwd="w", + description="LARGE BROWN CIRCLE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E4, + }, + [0x1F7E5]={ + category="so", + cjkwd="w", + description="LARGE RED SQUARE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E5, + }, + [0x1F7E6]={ + category="so", + cjkwd="w", + description="LARGE BLUE SQUARE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E6, + }, + [0x1F7E7]={ + category="so", + cjkwd="w", + description="LARGE ORANGE SQUARE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E7, + }, + [0x1F7E8]={ + category="so", + cjkwd="w", + description="LARGE YELLOW SQUARE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E8, + }, + [0x1F7E9]={ + category="so", + cjkwd="w", + description="LARGE GREEN SQUARE", + direction="on", + linebreak="id", + unicodeslot=0x1F7E9, + }, + [0x1F7EA]={ + category="so", + cjkwd="w", + description="LARGE PURPLE SQUARE", + direction="on", + linebreak="id", + unicodeslot=0x1F7EA, + }, + [0x1F7EB]={ + category="so", + cjkwd="w", + description="LARGE BROWN SQUARE", + direction="on", + linebreak="id", + unicodeslot=0x1F7EB, + }, [0x1F800]={ category="so", description="LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD", @@ -246180,6 +249159,30 @@ characters.data={ linebreak="al", unicodeslot=0x1F90B, }, + [0x1F90D]={ + category="so", + cjkwd="w", + description="WHITE HEART", + direction="on", + linebreak="id", + unicodeslot=0x1F90D, + }, + [0x1F90E]={ + category="so", + cjkwd="w", + description="BROWN HEART", + direction="on", + linebreak="id", + unicodeslot=0x1F90E, + }, + [0x1F90F]={ + category="so", + cjkwd="w", + description="PINCHING HAND", + direction="on", + linebreak="eb", + unicodeslot=0x1F90F, + }, [0x1F910]={ category="so", cjkwd="w", @@ -246289,7 +249292,7 @@ characters.data={ cjkwd="w", description="HANDSHAKE", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F91D, }, [0x1F91E]={ @@ -246540,7 +249543,7 @@ characters.data={ cjkwd="w", description="WRESTLERS", direction="on", - linebreak="id", + linebreak="eb", unicodeslot=0x1F93C, }, [0x1F93D]={ @@ -246559,6 +249562,14 @@ characters.data={ linebreak="eb", unicodeslot=0x1F93E, }, + [0x1F93F]={ + category="so", + cjkwd="w", + description="DIVING MASK", + direction="on", + linebreak="id", + unicodeslot=0x1F93F, + }, [0x1F940]={ category="so", cjkwd="w", @@ -246955,6 +249966,14 @@ characters.data={ linebreak="id", unicodeslot=0x1F970, }, + [0x1F971]={ + category="so", + cjkwd="w", + description="YAWNING FACE", + direction="on", + linebreak="id", + unicodeslot=0x1F971, + }, [0x1F973]={ category="so", cjkwd="w", @@ -246995,6 +250014,14 @@ characters.data={ linebreak="id", unicodeslot=0x1F97A, }, + [0x1F97B]={ + category="so", + cjkwd="w", + description="SARI", + direction="on", + linebreak="id", + unicodeslot=0x1F97B, + }, [0x1F97C]={ category="so", cjkwd="w", @@ -247308,6 +250335,70 @@ characters.data={ linebreak="id", unicodeslot=0x1F9A2, }, + [0x1F9A5]={ + category="so", + cjkwd="w", + description="SLOTH", + direction="on", + linebreak="id", + unicodeslot=0x1F9A5, + }, + [0x1F9A6]={ + category="so", + cjkwd="w", + description="OTTER", + direction="on", + linebreak="id", + unicodeslot=0x1F9A6, + }, + [0x1F9A7]={ + category="so", + cjkwd="w", + description="ORANGUTAN", + direction="on", + linebreak="id", + unicodeslot=0x1F9A7, + }, + [0x1F9A8]={ + category="so", + cjkwd="w", + description="SKUNK", + direction="on", + linebreak="id", + unicodeslot=0x1F9A8, + }, + [0x1F9A9]={ + category="so", + cjkwd="w", + description="FLAMINGO", + direction="on", + linebreak="id", + unicodeslot=0x1F9A9, + }, + [0x1F9AA]={ + category="so", + cjkwd="w", + description="OYSTER", + direction="on", + linebreak="id", + unicodeslot=0x1F9AA, + }, + [0x1F9AE]={ + category="so", + cjkwd="w", + description="GUIDE DOG", + direction="on", + linebreak="id", + unicodeslot=0x1F9AE, + }, + [0x1F9AF]={ + category="so", + cjkwd="w", + description="PROBING CANE", + direction="on", + linebreak="id", + unicodeslot=0x1F9AF, + }, [0x1F9B0]={ category="so", cjkwd="w", @@ -247388,6 +250479,54 @@ characters.data={ linebreak="eb", unicodeslot=0x1F9B9, }, + [0x1F9BA]={ + category="so", + cjkwd="w", + description="SAFETY VEST", + direction="on", + linebreak="id", + unicodeslot=0x1F9BA, + }, + [0x1F9BB]={ + category="so", + cjkwd="w", + description="EAR WITH HEARING AID", + direction="on", + linebreak="eb", + unicodeslot=0x1F9BB, + }, + [0x1F9BC]={ + category="so", + cjkwd="w", + description="MOTORIZED WHEELCHAIR", + direction="on", + linebreak="id", + unicodeslot=0x1F9BC, + }, + [0x1F9BD]={ + category="so", + cjkwd="w", + description="MANUAL WHEELCHAIR", + direction="on", + linebreak="id", + unicodeslot=0x1F9BD, + }, + [0x1F9BE]={ + category="so", + cjkwd="w", + description="MECHANICAL ARM", + direction="on", + linebreak="id", + unicodeslot=0x1F9BE, + }, + [0x1F9BF]={ + category="so", + cjkwd="w", + description="MECHANICAL LEG", + direction="on", + linebreak="id", + unicodeslot=0x1F9BF, + }, [0x1F9C0]={ category="so", cjkwd="w", @@ -247412,6 +250551,94 @@ characters.data={ linebreak="id", unicodeslot=0x1F9C2, }, + [0x1F9C3]={ + category="so", + cjkwd="w", + description="BEVERAGE BOX", + direction="on", + linebreak="id", + unicodeslot=0x1F9C3, + }, + [0x1F9C4]={ + category="so", + cjkwd="w", + description="GARLIC", + direction="on", + linebreak="id", + unicodeslot=0x1F9C4, + }, + [0x1F9C5]={ + category="so", + cjkwd="w", + description="ONION", + direction="on", + linebreak="id", + unicodeslot=0x1F9C5, + }, + [0x1F9C6]={ + category="so", + cjkwd="w", + description="FALAFEL", + direction="on", + linebreak="id", + unicodeslot=0x1F9C6, + }, + [0x1F9C7]={ + category="so", + cjkwd="w", + description="WAFFLE", + direction="on", + linebreak="id", + unicodeslot=0x1F9C7, + }, + [0x1F9C8]={ + category="so", + cjkwd="w", + description="BUTTER", + direction="on", + linebreak="id", + unicodeslot=0x1F9C8, + }, + [0x1F9C9]={ + category="so", + cjkwd="w", + description="MATE DRINK", + direction="on", + linebreak="id", + unicodeslot=0x1F9C9, + }, + [0x1F9CA]={ + category="so", + cjkwd="w", + description="ICE CUBE", + direction="on", + linebreak="id", + unicodeslot=0x1F9CA, + }, + [0x1F9CD]={ + category="so", + cjkwd="w", + description="STANDING PERSON", + direction="on", + linebreak="eb", + unicodeslot=0x1F9CD, + }, + [0x1F9CE]={ + category="so", + cjkwd="w", + description="KNEELING PERSON", + direction="on", + linebreak="eb", + unicodeslot=0x1F9CE, + }, + [0x1F9CF]={ + category="so", + cjkwd="w", + description="DEAF PERSON", + direction="on", + linebreak="eb", + unicodeslot=0x1F9CF, + }, [0x1F9D0]={ category="so", cjkwd="w", @@ -247796,6 +251023,594 @@ characters.data={ linebreak="id", unicodeslot=0x1F9FF, }, + [0x1FA00]={ + category="so", + description="NEUTRAL CHESS KING", + direction="on", + linebreak="al", + unicodeslot=0x1FA00, + }, + [0x1FA01]={ + category="so", + description="NEUTRAL CHESS QUEEN", + direction="on", + linebreak="al", + unicodeslot=0x1FA01, + }, + [0x1FA02]={ + category="so", + description="NEUTRAL CHESS ROOK", + direction="on", + linebreak="al", + unicodeslot=0x1FA02, + }, + [0x1FA03]={ + category="so", + description="NEUTRAL CHESS BISHOP", + direction="on", + linebreak="al", + unicodeslot=0x1FA03, + }, + [0x1FA04]={ + category="so", + description="NEUTRAL CHESS KNIGHT", + direction="on", + linebreak="al", + unicodeslot=0x1FA04, + }, + [0x1FA05]={ + category="so", + description="NEUTRAL CHESS PAWN", + direction="on", + linebreak="al", + unicodeslot=0x1FA05, + }, + [0x1FA06]={ + category="so", + description="WHITE CHESS KNIGHT ROTATED FORTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA06, + }, + [0x1FA07]={ + category="so", + description="BLACK CHESS KNIGHT ROTATED FORTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA07, + }, + [0x1FA08]={ + category="so", + description="NEUTRAL CHESS KNIGHT ROTATED FORTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA08, + }, + [0x1FA09]={ + category="so", + description="WHITE CHESS KING ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA09, + }, + [0x1FA0A]={ + category="so", + description="WHITE CHESS QUEEN ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA0A, + }, + [0x1FA0B]={ + category="so", + description="WHITE CHESS ROOK ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA0B, + }, + [0x1FA0C]={ + category="so", + description="WHITE CHESS BISHOP ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA0C, + }, + [0x1FA0D]={ + category="so", + description="WHITE CHESS KNIGHT ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA0D, + }, + [0x1FA0E]={ + category="so", + description="WHITE CHESS PAWN ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA0E, + }, + [0x1FA0F]={ + category="so", + description="BLACK CHESS KING ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA0F, + }, + [0x1FA10]={ + category="so", + description="BLACK CHESS QUEEN ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA10, + }, + [0x1FA11]={ + category="so", + description="BLACK CHESS ROOK ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA11, + }, + [0x1FA12]={ + category="so", + description="BLACK CHESS BISHOP ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA12, + }, + [0x1FA13]={ + category="so", + description="BLACK CHESS KNIGHT ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA13, + }, + [0x1FA14]={ + category="so", + description="BLACK CHESS PAWN ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA14, + }, + [0x1FA15]={ + category="so", + description="NEUTRAL CHESS KING ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA15, + }, + [0x1FA16]={ + category="so", + description="NEUTRAL CHESS QUEEN ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA16, + }, + [0x1FA17]={ + category="so", + description="NEUTRAL CHESS ROOK ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA17, + }, + [0x1FA18]={ + category="so", + description="NEUTRAL CHESS BISHOP ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA18, + }, + [0x1FA19]={ + category="so", + description="NEUTRAL CHESS KNIGHT ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA19, + }, + [0x1FA1A]={ + category="so", + description="NEUTRAL CHESS PAWN ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA1A, + }, + [0x1FA1B]={ + category="so", + description="WHITE CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA1B, + }, + [0x1FA1C]={ + category="so", + description="BLACK CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA1C, + }, + [0x1FA1D]={ + category="so", + description="NEUTRAL CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA1D, + }, + [0x1FA1E]={ + category="so", + description="WHITE CHESS TURNED KING", + direction="on", + linebreak="al", + unicodeslot=0x1FA1E, + }, + [0x1FA1F]={ + category="so", + description="WHITE CHESS TURNED QUEEN", + direction="on", + linebreak="al", + unicodeslot=0x1FA1F, + }, + [0x1FA20]={ + category="so", + description="WHITE CHESS TURNED ROOK", + direction="on", + linebreak="al", + unicodeslot=0x1FA20, + }, + [0x1FA21]={ + category="so", + description="WHITE CHESS TURNED BISHOP", + direction="on", + linebreak="al", + unicodeslot=0x1FA21, + }, + [0x1FA22]={ + category="so", + description="WHITE CHESS TURNED KNIGHT", + direction="on", + linebreak="al", + unicodeslot=0x1FA22, + }, + [0x1FA23]={ + category="so", + description="WHITE CHESS TURNED PAWN", + direction="on", + linebreak="al", + unicodeslot=0x1FA23, + }, + [0x1FA24]={ + category="so", + description="BLACK CHESS TURNED KING", + direction="on", + linebreak="al", + unicodeslot=0x1FA24, + }, + [0x1FA25]={ + category="so", + description="BLACK CHESS TURNED QUEEN", + direction="on", + linebreak="al", + unicodeslot=0x1FA25, + }, + [0x1FA26]={ + category="so", + description="BLACK CHESS TURNED ROOK", + direction="on", + linebreak="al", + unicodeslot=0x1FA26, + }, + [0x1FA27]={ + category="so", + description="BLACK CHESS TURNED BISHOP", + direction="on", + linebreak="al", + unicodeslot=0x1FA27, + }, + [0x1FA28]={ + category="so", + description="BLACK CHESS TURNED KNIGHT", + direction="on", + linebreak="al", + unicodeslot=0x1FA28, + }, + [0x1FA29]={ + category="so", + description="BLACK CHESS TURNED PAWN", + direction="on", + linebreak="al", + unicodeslot=0x1FA29, + }, + [0x1FA2A]={ + category="so", + description="NEUTRAL CHESS TURNED KING", + direction="on", + linebreak="al", + unicodeslot=0x1FA2A, + }, + [0x1FA2B]={ + category="so", + description="NEUTRAL CHESS TURNED QUEEN", + direction="on", + linebreak="al", + unicodeslot=0x1FA2B, + }, + [0x1FA2C]={ + category="so", + description="NEUTRAL CHESS TURNED ROOK", + direction="on", + linebreak="al", + unicodeslot=0x1FA2C, + }, + [0x1FA2D]={ + category="so", + description="NEUTRAL CHESS TURNED BISHOP", + direction="on", + linebreak="al", + unicodeslot=0x1FA2D, + }, + [0x1FA2E]={ + category="so", + description="NEUTRAL CHESS TURNED KNIGHT", + direction="on", + linebreak="al", + unicodeslot=0x1FA2E, + }, + [0x1FA2F]={ + category="so", + description="NEUTRAL CHESS TURNED PAWN", + direction="on", + linebreak="al", + unicodeslot=0x1FA2F, + }, + [0x1FA30]={ + category="so", + description="WHITE CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA30, + }, + [0x1FA31]={ + category="so", + description="BLACK CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA31, + }, + [0x1FA32]={ + category="so", + description="NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA32, + }, + [0x1FA33]={ + category="so", + description="WHITE CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA33, + }, + [0x1FA34]={ + category="so", + description="WHITE CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA34, + }, + [0x1FA35]={ + category="so", + description="WHITE CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA35, + }, + [0x1FA36]={ + category="so", + description="WHITE CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA36, + }, + [0x1FA37]={ + category="so", + description="WHITE CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA37, + }, + [0x1FA38]={ + category="so", + description="WHITE CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA38, + }, + [0x1FA39]={ + category="so", + description="BLACK CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA39, + }, + [0x1FA3A]={ + category="so", + description="BLACK CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA3A, + }, + [0x1FA3B]={ + category="so", + description="BLACK CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA3B, + }, + [0x1FA3C]={ + category="so", + description="BLACK CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA3C, + }, + [0x1FA3D]={ + category="so", + description="BLACK CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA3D, + }, + [0x1FA3E]={ + category="so", + description="BLACK CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA3E, + }, + [0x1FA3F]={ + category="so", + description="NEUTRAL CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA3F, + }, + [0x1FA40]={ + category="so", + description="NEUTRAL CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA40, + }, + [0x1FA41]={ + category="so", + description="NEUTRAL CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA41, + }, + [0x1FA42]={ + category="so", + description="NEUTRAL CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA42, + }, + [0x1FA43]={ + category="so", + description="NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA43, + }, + [0x1FA44]={ + category="so", + description="NEUTRAL CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA44, + }, + [0x1FA45]={ + category="so", + description="WHITE CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA45, + }, + [0x1FA46]={ + category="so", + description="BLACK CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA46, + }, + [0x1FA47]={ + category="so", + description="NEUTRAL CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA47, + }, + [0x1FA48]={ + category="so", + description="WHITE CHESS EQUIHOPPER", + direction="on", + linebreak="al", + unicodeslot=0x1FA48, + }, + [0x1FA49]={ + category="so", + description="BLACK CHESS EQUIHOPPER", + direction="on", + linebreak="al", + unicodeslot=0x1FA49, + }, + [0x1FA4A]={ + category="so", + description="NEUTRAL CHESS EQUIHOPPER", + direction="on", + linebreak="al", + unicodeslot=0x1FA4A, + }, + [0x1FA4B]={ + category="so", + description="WHITE CHESS EQUIHOPPER ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA4B, + }, + [0x1FA4C]={ + category="so", + description="BLACK CHESS EQUIHOPPER ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA4C, + }, + [0x1FA4D]={ + category="so", + description="NEUTRAL CHESS EQUIHOPPER ROTATED NINETY DEGREES", + direction="on", + linebreak="al", + unicodeslot=0x1FA4D, + }, + [0x1FA4E]={ + category="so", + description="WHITE CHESS KNIGHT-QUEEN", + direction="on", + linebreak="al", + unicodeslot=0x1FA4E, + }, + [0x1FA4F]={ + category="so", + description="WHITE CHESS KNIGHT-ROOK", + direction="on", + linebreak="al", + unicodeslot=0x1FA4F, + }, + [0x1FA50]={ + category="so", + description="WHITE CHESS KNIGHT-BISHOP", + direction="on", + linebreak="al", + unicodeslot=0x1FA50, + }, + [0x1FA51]={ + category="so", + description="BLACK CHESS KNIGHT-QUEEN", + direction="on", + linebreak="al", + unicodeslot=0x1FA51, + }, + [0x1FA52]={ + category="so", + description="BLACK CHESS KNIGHT-ROOK", + direction="on", + linebreak="al", + unicodeslot=0x1FA52, + }, + [0x1FA53]={ + category="so", + description="BLACK CHESS KNIGHT-BISHOP", + direction="on", + linebreak="al", + unicodeslot=0x1FA53, + }, [0x1FA60]={ category="so", description="XIANGQI RED GENERAL", @@ -247894,6 +251709,134 @@ characters.data={ linebreak="id", unicodeslot=0x1FA6D, }, + [0x1FA70]={ + category="so", + cjkwd="w", + description="BALLET SHOES", + direction="on", + linebreak="id", + unicodeslot=0x1FA70, + }, + [0x1FA71]={ + category="so", + cjkwd="w", + description="ONE-PIECE SWIMSUIT", + direction="on", + linebreak="id", + unicodeslot=0x1FA71, + }, + [0x1FA72]={ + category="so", + cjkwd="w", + description="BRIEFS", + direction="on", + linebreak="id", + unicodeslot=0x1FA72, + }, + [0x1FA73]={ + category="so", + cjkwd="w", + description="SHORTS", + direction="on", + linebreak="id", + unicodeslot=0x1FA73, + }, + [0x1FA78]={ + category="so", + cjkwd="w", + description="DROP OF BLOOD", + direction="on", + linebreak="id", + unicodeslot=0x1FA78, + }, + [0x1FA79]={ + category="so", + cjkwd="w", + description="ADHESIVE BANDAGE", + direction="on", + linebreak="id", + unicodeslot=0x1FA79, + }, + [0x1FA7A]={ + category="so", + cjkwd="w", + description="STETHOSCOPE", + direction="on", + linebreak="id", + unicodeslot=0x1FA7A, + }, + [0x1FA80]={ + category="so", + cjkwd="w", + description="YO-YO", + direction="on", + linebreak="id", + unicodeslot=0x1FA80, + }, + [0x1FA81]={ + category="so", + cjkwd="w", + description="KITE", + direction="on", + linebreak="id", + unicodeslot=0x1FA81, + }, + [0x1FA82]={ + category="so", + cjkwd="w", + description="PARACHUTE", + direction="on", + linebreak="id", + unicodeslot=0x1FA82, + }, + [0x1FA90]={ + category="so", + cjkwd="w", + description="RINGED PLANET", + direction="on", + linebreak="id", + unicodeslot=0x1FA90, + }, + [0x1FA91]={ + category="so", + cjkwd="w", + description="CHAIR", + direction="on", + linebreak="id", + unicodeslot=0x1FA91, + }, + [0x1FA92]={ + category="so", + cjkwd="w", + description="RAZOR", + direction="on", + linebreak="id", + unicodeslot=0x1FA92, + }, + [0x1FA93]={ + category="so", + cjkwd="w", + description="AXE", + direction="on", + linebreak="id", + unicodeslot=0x1FA93, + }, + [0x1FA94]={ + category="so", + cjkwd="w", + description="DIYA LAMP", + direction="on", + linebreak="id", + unicodeslot=0x1FA94, + }, + [0x1FA95]={ + category="so", + cjkwd="w", + description="BANJO", + direction="on", + linebreak="id", + unicodeslot=0x1FA95, + }, [0x2F800]={ category="lo", cjkwd="w", @@ -253456,4 +257399,4 @@ characters.data={ synonyms={ "vs17" }, unicodeslot=0xE0100, }, -} +} \ No newline at end of file diff --git a/tex/context/base/mkiv/char-ini.lua b/tex/context/base/mkiv/char-ini.lua index fb9d9f126..e0cbf6bdd 100644 --- a/tex/context/base/mkiv/char-ini.lua +++ b/tex/context/base/mkiv/char-ini.lua @@ -192,6 +192,7 @@ insert(characters.ranges,{ end, }) + local blocks = allocate { ["adlam"] = { first = 0x1E900, last = 0x1E95F, description = "Adlam" }, ["aegeannumbers"] = { first = 0x10100, last = 0x1013F, description = "Aegean Numbers" }, @@ -297,12 +298,14 @@ local blocks = allocate { -- ["digitsthai"] = { first = 0x00E50, last = 0x00E59, math = true }, -- ["digitstibetan"] = { first = 0x00F20, last = 0x00F29, math = true }, ["dingbats"] = { first = 0x02700, last = 0x027BF, description = "Dingbats" }, - ["dogra"] = { first = 0x11800, last = 0x1184F, description = "Dogra" }, + ["dogra"] = { first = 0x11800, last = 0x1184F, description = "Dogra" }, ["dominotiles"] = { first = 0x1F030, last = 0x1F09F, description = "Domino Tiles" }, ["duployan"] = { first = 0x1BC00, last = 0x1BC9F, description = "Duployan" }, ["earlydynasticcuneiform"] = { first = 0x12480, last = 0x1254F, description = "Early Dynastic Cuneiform" }, + ["egyptianhieroglyphformatcontrols"] = { first = 0x13430, last = 0x1343F, description = "Egyptian Hieroglyph Format Controls" }, ["egyptianhieroglyphs"] = { first = 0x13000, last = 0x1342F, description = "Egyptian Hieroglyphs" }, ["elbasan"] = { first = 0x10500, last = 0x1052F, description = "Elbasan" }, + ["elymaic"] = { first = 0x10FE0, last = 0x10FFF, description = "Elymaic" }, ["emoticons"] = { first = 0x1F600, last = 0x1F64F, description = "Emoticons" }, ["enclosedalphanumerics"] = { first = 0x02460, last = 0x024FF, description = "Enclosed Alphanumerics" }, ["enclosedalphanumericsupplement"] = { first = 0x1F100, last = 0x1F1FF, description = "Enclosed Alphanumeric Supplement" }, @@ -316,7 +319,7 @@ local blocks = allocate { ["geometricshapes"] = { first = 0x025A0, last = 0x025FF, math = true, description = "Geometric Shapes" }, ["geometricshapesextended"] = { first = 0x1F780, last = 0x1F7FF, description = "Geometric Shapes Extended" }, ["georgian"] = { first = 0x010A0, last = 0x010FF, otf="geor", description = "Georgian" }, - ["georgianextended"] = { first = 0x01C90, last = 0x01CBF, description = "Georgian Extended" }, + ["georgianextended"] = { first = 0x01C90, last = 0x01CBF, description = "Georgian Extended" }, ["georgiansupplement"] = { first = 0x02D00, last = 0x02D2F, otf="geor", description = "Georgian Supplement" }, ["glagolitic"] = { first = 0x02C00, last = 0x02C5F, otf="glag", description = "Glagolitic" }, ["glagoliticsupplement"] = { first = 0x1E000, last = 0x1E02F, description = "Glagolitic Supplement" }, @@ -325,7 +328,7 @@ local blocks = allocate { ["greekandcoptic"] = { first = 0x00370, last = 0x003FF, otf="grek", description = "Greek and Coptic" }, ["greekextended"] = { first = 0x01F00, last = 0x01FFF, otf="grek", description = "Greek Extended" }, ["gujarati"] = { first = 0x00A80, last = 0x00AFF, otf="gujr", description = "Gujarati" }, - ["gunjalagondi"] = { first = 0x11D60, last = 0x11DAF, description = "Gunjala Gondi" }, + ["gunjalagondi"] = { first = 0x11D60, last = 0x11DAF, description = "Gunjala Gondi" }, ["gurmukhi"] = { first = 0x00A00, last = 0x00A7F, otf="guru", description = "Gurmukhi" }, ["halfwidthandfullwidthforms"] = { first = 0x0FF00, last = 0x0FFEF, description = "Halfwidth and Fullwidth Forms" }, ["hangulcompatibilityjamo"] = { first = 0x03130, last = 0x0318F, otf="jamo", description = "Hangul Compatibility Jamo" }, @@ -333,7 +336,7 @@ local blocks = allocate { ["hanguljamoextendeda"] = { first = 0x0A960, last = 0x0A97F, description = "Hangul Jamo Extended-A" }, ["hanguljamoextendedb"] = { first = 0x0D7B0, last = 0x0D7FF, description = "Hangul Jamo Extended-B" }, ["hangulsyllables"] = { first = 0x0AC00, last = 0x0D7AF, otf="hang", description = "Hangul Syllables" }, - ["hanifirohingya"] = { first = 0x10D00, last = 0x10D3F, description = "Hanifi Rohingya" }, + ["hanifirohingya"] = { first = 0x10D00, last = 0x10D3F, description = "Hanifi Rohingya" }, ["hanunoo"] = { first = 0x01720, last = 0x0173F, otf="hano", description = "Hanunoo" }, ["hatran"] = { first = 0x108E0, last = 0x108FF, description = "Hatran" }, ["hebrew"] = { first = 0x00590, last = 0x005FF, otf="hebr", description = "Hebrew" }, @@ -343,7 +346,7 @@ local blocks = allocate { ["ideographicdescriptioncharacters"] = { first = 0x02FF0, last = 0x02FFF, description = "Ideographic Description Characters" }, ["ideographicsymbolsandpunctuation"] = { first = 0x16FE0, last = 0x16FFF, description = "Ideographic Symbols and Punctuation" }, ["imperialaramaic"] = { first = 0x10840, last = 0x1085F, description = "Imperial Aramaic" }, - ["indicsiyaqnumbers"] = { first = 0x1EC70, last = 0x1ECBF, description = "Indic Siyaq Numbers" }, + ["indicsiyaqnumbers"] = { first = 0x1EC70, last = 0x1ECBF, description = "Indic Siyaq Numbers" }, ["inscriptionalpahlavi"] = { first = 0x10B60, last = 0x10B7F, description = "Inscriptional Pahlavi" }, ["inscriptionalparthian"] = { first = 0x10B40, last = 0x10B5F, description = "Inscriptional Parthian" }, ["ipaextensions"] = { first = 0x00250, last = 0x002AF, description = "IPA Extensions" }, @@ -402,7 +405,7 @@ local blocks = allocate { ["lydian"] = { first = 0x10920, last = 0x1093F, description = "Lydian" }, ["mahajani"] = { first = 0x11150, last = 0x1117F, description = "Mahajani" }, ["mahjongtiles"] = { first = 0x1F000, last = 0x1F02F, description = "Mahjong Tiles" }, - ["makasar"] = { first = 0x11EE0, last = 0x11EFF, description = "Makasar" }, + ["makasar"] = { first = 0x11EE0, last = 0x11EFF, description = "Makasar" }, ["malayalam"] = { first = 0x00D00, last = 0x00D7F, otf="mlym", description = "Malayalam" }, ["mandaic"] = { first = 0x00840, last = 0x0085F, otf="mand", description = "Mandaic" }, ["manichaean"] = { first = 0x10AC0, last = 0x10AFF, description = "Manichaean" }, @@ -410,8 +413,8 @@ local blocks = allocate { ["masaramgondi"] = { first = 0x11D00, last = 0x11D5F, description = "Masaram Gondi" }, ["mathematicalalphanumericsymbols"] = { first = 0x1D400, last = 0x1D7FF, math = true, description = "Mathematical Alphanumeric Symbols" }, ["mathematicaloperators"] = { first = 0x02200, last = 0x022FF, math = true, description = "Mathematical Operators" }, - ["mayannumerals"] = { first = 0x1D2E0, last = 0x1D2FF, description = "Mayan Numerals" }, - ["medefaidrin"] = { first = 0x16E40, last = 0x16E9F, description = "Medefaidrin" }, + ["mayannumerals"] = { first = 0x1D2E0, last = 0x1D2FF, description = "Mayan Numerals" }, + ["medefaidrin"] = { first = 0x16E40, last = 0x16E9F, description = "Medefaidrin" }, ["meeteimayek"] = { first = 0x0ABC0, last = 0x0ABFF, description = "Meetei Mayek" }, ["meeteimayekextensions"] = { first = 0x0AAE0, last = 0x0AAFF, description = "Meetei Mayek Extensions" }, ["mendekikakui"] = { first = 0x1E800, last = 0x1E8DF, description = "Mende Kikakui" }, @@ -435,11 +438,13 @@ local blocks = allocate { ["myanmarextendeda"] = { first = 0x0AA60, last = 0x0AA7F, description = "Myanmar Extended-A" }, ["myanmarextendedb"] = { first = 0x0A9E0, last = 0x0A9FF, description = "Myanmar Extended-B" }, ["nabataean"] = { first = 0x10880, last = 0x108AF, description = "Nabataean" }, + ["nandinagari"] = { first = 0x119A0, last = 0x119FF, description = "Nandinagari" }, ["newa"] = { first = 0x11400, last = 0x1147F, description = "Newa" }, ["newtailue"] = { first = 0x01980, last = 0x019DF, description = "New Tai Lue" }, ["nko"] = { first = 0x007C0, last = 0x007FF, otf="nko", description = "NKo" }, ["numberforms"] = { first = 0x02150, last = 0x0218F, description = "Number Forms" }, ["nushu"] = { first = 0x1B170, last = 0x1B2FF, description = "Nushu" }, + ["nyiakengpuachuehmong"] = { first = 0x1E100, last = 0x1E14F, description = "Nyiakeng Puachue Hmong" }, ["ogham"] = { first = 0x01680, last = 0x0169F, otf="ogam", description = "Ogham" }, ["olchiki"] = { first = 0x01C50, last = 0x01C7F, description = "Ol Chiki" }, ["oldhungarian"] = { first = 0x10C80, last = 0x10CFF, description = "Old Hungarian" }, @@ -447,7 +452,7 @@ local blocks = allocate { ["oldnortharabian"] = { first = 0x10A80, last = 0x10A9F, description = "Old North Arabian" }, ["oldpermic"] = { first = 0x10350, last = 0x1037F, description = "Old Permic" }, ["oldpersian"] = { first = 0x103A0, last = 0x103DF, otf="xpeo", description = "Old Persian" }, - ["oldsogdian"] = { first = 0x10F00, last = 0x10F2F, description = "Old Sogdian" }, + ["oldsogdian"] = { first = 0x10F00, last = 0x10F2F, description = "Old Sogdian" }, ["oldsoutharabian"] = { first = 0x10A60, last = 0x10A7F, description = "Old South Arabian" }, ["oldturkic"] = { first = 0x10C00, last = 0x10C4F, description = "Old Turkic" }, ["opticalcharacterrecognition"] = { first = 0x02440, last = 0x0245F, description = "Optical Character Recognition" }, @@ -455,6 +460,7 @@ local blocks = allocate { ["ornamentaldingbats"] = { first = 0x1F650, last = 0x1F67F, description = "Ornamental Dingbats" }, ["osage"] = { first = 0x104B0, last = 0x104FF, description = "Osage" }, ["osmanya"] = { first = 0x10480, last = 0x104AF, otf="osma", description = "Osmanya" }, + ["ottomansiyaqnumbers"] = { first = 0x1ED00, last = 0x1ED4F, description = "Ottoman Siyaq Numbers" }, ["pahawhhmong"] = { first = 0x16B00, last = 0x16B8F, description = "Pahawh Hmong" }, ["palmyrene"] = { first = 0x10860, last = 0x1087F, description = "Palmyrene" }, ["paucinhau"] = { first = 0x11AC0, last = 0x11AFF, description = "Pau Cin Hau" }, @@ -478,7 +484,8 @@ local blocks = allocate { ["sinhala"] = { first = 0x00D80, last = 0x00DFF, otf="sinh", description = "Sinhala" }, ["sinhalaarchaicnumbers"] = { first = 0x111E0, last = 0x111FF, description = "Sinhala Archaic Numbers" }, ["smallformvariants"] = { first = 0x0FE50, last = 0x0FE6F, description = "Small Form Variants" }, - ["sogdian"] = { first = 0x10F30, last = 0x10F6F, description = "Sogdian" }, + ["smallkanaextension"] = { first = 0x1B130, last = 0x1B16F, description = "Small Kana Extension" }, + ["sogdian"] = { first = 0x10F30, last = 0x10F6F, description = "Sogdian" }, ["sorasompeng"] = { first = 0x110D0, last = 0x110FF, description = "Sora Sompeng" }, ["soyombo"] = { first = 0x11A50, last = 0x11AAF, description = "Soyombo" }, ["spacingmodifierletters"] = { first = 0x002B0, last = 0x002FF, description = "Spacing Modifier Letters" }, @@ -496,6 +503,7 @@ local blocks = allocate { ["supplementaryprivateuseareab"] = { first = 0x100000,last = 0x10FFFF, description = "Supplementary Private Use Area-B" }, ["suttonsignwriting"] = { first = 0x1D800, last = 0x1DAAF, description = "Sutton SignWriting" }, ["sylotinagri"] = { first = 0x0A800, last = 0x0A82F, otf="sylo", description = "Syloti Nagri" }, + ["symbolsandpictographsextendeda"] = { first = 0x1FA70, last = 0x1FAFF, description = "Symbols and Pictographs Extended-A" }, ["syriac"] = { first = 0x00700, last = 0x0074F, otf="syrc", description = "Syriac" }, ["syriacsupplement"] = { first = 0x00860, last = 0x0086F, description = "Syriac Supplement" }, ["tagalog"] = { first = 0x01700, last = 0x0171F, otf="tglg", description = "Tagalog" }, @@ -507,6 +515,7 @@ local blocks = allocate { ["taixuanjingsymbols"] = { first = 0x1D300, last = 0x1D35F, description = "Tai Xuan Jing Symbols" }, ["takri"] = { first = 0x11680, last = 0x116CF, description = "Takri" }, ["tamil"] = { first = 0x00B80, last = 0x00BFF, otf="taml", description = "Tamil" }, + ["tamilsupplement"] = { first = 0x11FC0, last = 0x11FFF, description = "Tamil Supplement" }, ["tangut"] = { first = 0x17000, last = 0x187FF, description = "Tangut" }, ["tangutcomponents"] = { first = 0x18800, last = 0x18AFF, description = "Tangut Components" }, ["telugu"] = { first = 0x00C00, last = 0x00C7F, otf="telu", description = "Telugu" }, @@ -544,6 +553,7 @@ local blocks = allocate { ["variationselectorssupplement"] = { first = 0xE0100, last = 0xE01EF, description = "Variation Selectors Supplement" }, ["vedicextensions"] = { first = 0x01CD0, last = 0x01CFF, description = "Vedic Extensions" }, ["verticalforms"] = { first = 0x0FE10, last = 0x0FE1F, description = "Vertical Forms" }, + ["wancho"] = { first = 0x1E2C0, last = 0x1E2FF, description = "Wancho" }, ["warangciti"] = { first = 0x118A0, last = 0x118FF, description = "Warang Citi" }, ["yijinghexagramsymbols"] = { first = 0x04DC0, last = 0x04DFF, otf="yi", description = "Yijing Hexagram Symbols" }, ["yiradicals"] = { first = 0x0A490, last = 0x0A4CF, otf="yi", description = "Yi Radicals" }, diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index e3d427c21..590dbdf6b 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{2019.05.29 19:11} +\newcontextversion{2019.06.01 19:11} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index daa21816a..d0cf6ec89 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{2019.05.29 19:11} +\edef\contextversion{2019.06.01 19:11} \edef\contextkind {beta} %D Kind of special: @@ -527,6 +527,7 @@ \loadmkvifile{strc-not} \loadmkvifile{strc-lnt} +\loadmkivfile{strc-tnt} \loadmkivfile{strc-usr} \loadmarkfile{pack-com} diff --git a/tex/context/base/mkiv/font-ctx.lua b/tex/context/base/mkiv/font-ctx.lua index 61c5f3929..2d528728a 100644 --- a/tex/context/base/mkiv/font-ctx.lua +++ b/tex/context/base/mkiv/font-ctx.lua @@ -1127,199 +1127,17 @@ do -- else too many locals end end - local n = 0 - - -- we can also move rscale to here (more consistent) - -- the argument list will become a table - local function nice_cs(cs) return (gsub(cs,".->", "")) end - -- function commands.definefont_two(global,cs,str,size,inheritancemode,classfeatures,fontfeatures,classfallbacks,fontfallbacks, - -- mathsize,textsize,relativeid,classgoodies,goodies,classdesignsize,fontdesignsize,scaledfontmode) - --- scanners.definefont_two = function() - --- local global = scanboolean() -- \ifx\fontclass\empty\s!false\else\s!true\fi --- local cs = scanstring () -- {#csname}% --- local str = scanstring () -- \somefontfile --- local size = scaninteger() -- \d_font_scaled_font_size --- local inheritancemode = scaninteger() -- \c_font_feature_inheritance_mode --- local classfeatures = scanstring () -- \m_font_class_features --- local fontfeatures = scanstring () -- \m_font_features --- local classfallbacks = scanstring () -- \m_font_class_fallbacks --- local fontfallbacks = scanstring () -- \m_font_fallbacks --- local mathsize = scaninteger() -- \fontface --- local textsize = scaninteger() -- \d_font_scaled_text_face --- local relativeid = scaninteger() -- \relativefontid --- local classgoodies = scanstring () -- \m_font_class_goodies --- local goodies = scanstring () -- \m_font_goodies --- local classdesignsize = scanstring () -- \m_font_class_designsize --- local fontdesignsize = scanstring () -- \m_font_designsize --- local scaledfontmode = scaninteger() -- \scaledfontmode - --- if trace_defining then --- report_defining("start stage two: %s, size %s, features %a & %a",str,size,classfeatures,fontfeatures) --- end --- -- name is now resolved and size is scaled cf sa/mo --- local lookup, name, sub, method, detail = getspecification(str or "") --- -- new (todo: inheritancemode) --- local designsize = fontdesignsize ~= "" and fontdesignsize or classdesignsize or "" --- local designname = designsizefilename(name,designsize,size) --- if designname and designname ~= "" then --- if trace_defining or trace_designsize then --- report_defining("remapping name %a, specification %a, size %a, designsize %a",name,designsize,size,designname) --- end --- -- we don't catch detail here --- local o_lookup, o_name, o_sub, o_method, o_detail = getspecification(designname) --- if o_lookup and o_lookup ~= "" then lookup = o_lookup end --- if o_method and o_method ~= "" then method = o_method end --- if o_detail and o_detail ~= "" then detail = o_detail end --- name = o_name --- sub = o_sub --- end --- -- so far --- -- some settings can have been overloaded --- if lookup and lookup ~= "" then --- specification.lookup = lookup --- end --- if relativeid and relativeid ~= "" then -- experimental hook --- local id = tonumber(relativeid) or 0 --- specification.relativeid = id > 0 and id --- end --- -- --- specification.name = name --- specification.size = size --- specification.sub = (sub and sub ~= "" and sub) or specification.sub --- specification.mathsize = mathsize --- specification.textsize = textsize --- specification.goodies = goodies --- specification.cs = cs --- specification.global = global --- specification.scalemode = scaledfontmode -- context specific --- if detail and detail ~= "" then --- specification.method = method or "*" --- specification.detail = detail --- elseif specification.detail and specification.detail ~= "" then --- -- already set --- elseif inheritancemode == 0 then --- -- nothing --- elseif inheritancemode == 1 then --- -- fontonly --- if fontfeatures and fontfeatures ~= "" then --- specification.method = "*" --- specification.detail = fontfeatures --- end --- if fontfallbacks and fontfallbacks ~= "" then --- specification.fallbacks = fontfallbacks --- end --- elseif inheritancemode == 2 then --- -- classonly --- if classfeatures and classfeatures ~= "" then --- specification.method = "*" --- specification.detail = classfeatures --- end --- if classfallbacks and classfallbacks ~= "" then --- specification.fallbacks = classfallbacks --- end --- elseif inheritancemode == 3 then --- -- fontfirst --- if fontfeatures and fontfeatures ~= "" then --- specification.method = "*" --- specification.detail = fontfeatures --- elseif classfeatures and classfeatures ~= "" then --- specification.method = "*" --- specification.detail = classfeatures --- end --- if fontfallbacks and fontfallbacks ~= "" then --- specification.fallbacks = fontfallbacks --- elseif classfallbacks and classfallbacks ~= "" then --- specification.fallbacks = classfallbacks --- end --- elseif inheritancemode == 4 then --- -- classfirst --- if classfeatures and classfeatures ~= "" then --- specification.method = "*" --- specification.detail = classfeatures --- elseif fontfeatures and fontfeatures ~= "" then --- specification.method = "*" --- specification.detail = fontfeatures --- end --- if classfallbacks and classfallbacks ~= "" then --- specification.fallbacks = classfallbacks --- elseif fontfallbacks and fontfallbacks ~= "" then --- specification.fallbacks = fontfallbacks --- end --- end --- local tfmdata = definers.read(specification,size) -- id not yet known (size in spec?) --- -- --- local lastfontid = 0 --- if not tfmdata then --- report_defining("unable to define %a as %a",name,nice_cs(cs)) --- lastfontid = -1 --- texsetcount("scaledfontsize",0) --- -- ctx_letvaluerelax(cs) -- otherwise the current definition takes the previous one --- elseif type(tfmdata) == "number" then --- if trace_defining then --- report_defining("reusing %s, id %a, target %a, features %a / %a, fallbacks %a / %a, goodies %a / %a, designsize %a / %a", --- name,tfmdata,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,classgoodies,goodies,classdesignsize,fontdesignsize) --- end --- csnames[tfmdata] = specification.cs --- texdefinefont(global,cs,tfmdata) --- -- resolved (when designsize is used): --- local size = fontdata[tfmdata].parameters.size or 0 --- -- ctx_setsomefontsize(size .. "sp") --- setmacro("somefontsize",size.."sp") --- texsetcount("scaledfontsize",size) --- lastfontid = tfmdata --- else --- -- setting the extra characters will move elsewhere --- local characters = tfmdata.characters --- local parameters = tfmdata.parameters --- -- we use char0 as signal; cf the spec pdf can handle this (no char in slot) --- characters[0] = nil --- -- characters[0x00A0] = { width = parameters.space } --- -- characters[0x2007] = { width = characters[0x0030] and characters[0x0030].width or parameters.space } -- figure --- -- characters[0x2008] = { width = characters[0x002E] and characters[0x002E].width or parameters.space } -- period --- -- --- local id = definefont(tfmdata) --- csnames[id] = specification.cs --- tfmdata.properties.id = id --- definers.register(tfmdata,id) -- to be sure, normally already done --- texdefinefont(global,cs,id) --- constructors.cleanuptable(tfmdata) --- constructors.finalize(tfmdata) --- if trace_defining then --- report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a", --- name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks) --- end --- -- resolved (when designsize is used): --- local size = tfmdata.parameters.size or 655360 --- setmacro("somefontsize",size.."sp") --- -- ctx_setsomefontsize(size .. "sp") --- texsetcount("scaledfontsize",size) --- lastfontid = id --- end --- if trace_defining then --- report_defining("memory usage after: %s",statistics.memused()) --- report_defining("stop stage two") --- end --- -- --- texsetcount("global","lastfontid",lastfontid) --- specifiers[lastfontid] = { str, size } --- if not mathsize then --- -- forget about it --- elseif mathsize == 0 then --- lastmathids[1] = lastfontid --- else --- lastmathids[mathsize] = lastfontid --- end --- -- --- stoptiming(fonts) --- end + local n = 0 + local busy = false + local combinefeatures = false - local busy = false + directives.register("fonts.features.combine",function(v) + combinefeatures = v + end) scanners.definefont_two = function() local global = scanboolean() -- \ifx\fontclass\empty\s!false\else\s!true\fi @@ -1341,7 +1159,7 @@ do -- else too many locals local scaledfontmode = scaninteger() -- \scaledfontmode if trace_defining then - report_defining("start stage two: %s, size %s, features %a & %a",str,size,classfeatures,fontfeatures) + report_defining("start stage two: %s, size %s, features %a & %a, mode %a",str,size,classfeatures,fontfeatures,inheritancemode) end -- name is now resolved and size is scaled cf sa/mo local lookup, name, sub, method, detail = getspecification(str or "") @@ -1406,12 +1224,26 @@ do -- else too many locals end elseif inheritancemode == 3 then -- fontfirst - if fontfeatures and fontfeatures ~= "" then - specification.method = "*" - specification.detail = fontfeatures - elseif classfeatures and classfeatures ~= "" then - specification.method = "*" - specification.detail = classfeatures + if combinefeatures then + if classfeatures and classfeatures ~= "" then + specification.method = "*" + if fontfeatures and fontfeatures ~= "" and fontfeatures ~= classfeatures then + specification.detail = classfeatures .. "," .. fontfeatures + else + specification.detail = classfeatures + end + elseif fontfeatures and fontfeatures ~= "" then + specification.method = "*" + specification.detail = fontfeatures + end + else + if fontfeatures and fontfeatures ~= "" then + specification.method = "*" + specification.detail = fontfeatures + elseif classfeatures and classfeatures ~= "" then + specification.method = "*" + specification.detail = classfeatures + end end if fontfallbacks and fontfallbacks ~= "" then specification.fallbacks = fontfallbacks @@ -1420,12 +1252,26 @@ do -- else too many locals end elseif inheritancemode == 4 then -- classfirst - if classfeatures and classfeatures ~= "" then - specification.method = "*" - specification.detail = classfeatures - elseif fontfeatures and fontfeatures ~= "" then - specification.method = "*" - specification.detail = fontfeatures + if combinefeatures then + if fontfeatures and fontfeatures ~= "" then + specification.method = "*" + if classfeatures and classfeatures ~= "" and classfeatures ~= fontfeatures then + specification.detail = fontfeatures .. "," .. classfeatures + else + specification.detail = fontfeatures + end + elseif classfeatures and classfeatures ~= "" then + specification.method = "*" + specification.detail = classfeatures + end + else + if classfeatures and classfeatures ~= "" then + specification.method = "*" + specification.detail = classfeatures + elseif fontfeatures and fontfeatures ~= "" then + specification.method = "*" + specification.detail = fontfeatures + end end if classfallbacks and classfallbacks ~= "" then specification.fallbacks = classfallbacks diff --git a/tex/context/base/mkiv/font-imp-dimensions.lua b/tex/context/base/mkiv/font-imp-dimensions.lua index a7125625d..518d56345 100644 --- a/tex/context/base/mkiv/font-imp-dimensions.lua +++ b/tex/context/base/mkiv/font-imp-dimensions.lua @@ -107,7 +107,7 @@ end registerotffeature { name = "realdimensions", - description = "accept negative dimenions", + description = "accept negative dimensions", initializers = { base = initialize, node = initialize, diff --git a/tex/context/base/mkiv/lpdf-img.lua b/tex/context/base/mkiv/lpdf-img.lua index 8f9c87ddd..a299a023d 100644 --- a/tex/context/base/mkiv/lpdf-img.lua +++ b/tex/context/base/mkiv/lpdf-img.lua @@ -855,11 +855,19 @@ do switch(true) end - local alwaysdecode = false + local alwaysdecode = false + local compresslevel = 3 - -- directives.register("graphics.png.decode", function(v) - -- alwaysdecode = v - -- end) + directives.register("graphics.png.recompress", function(v) + alwaysdecode = v + end) + + directives.register("graphics.png.compresslevel", function(v) + v = tonumber(v) + if compresslevel >= 0 or compresslevel <= 9 then + compresslevel = v + end + end) function injectors.png(specification) -- inspect(specification) @@ -946,6 +954,7 @@ do end -- local decode = alwaysdecode + local filter = pdfconstant("FlateDecode") local major = pdfmajorversion() local minor = pdfminorversion() if major > 1 then @@ -994,8 +1003,12 @@ do else content = convert(r) -- can be in deinterlace if needed end - content = zlibcompress(content,3) - decode = true + if compresslevel > 0 then + content = zlibcompress(content,compresslevel) + else + filter = nil + end + decode = true elseif mask then if not (colordepth == 8 or colordepth == 16) then report_png("mask can't be split from the image") @@ -1003,10 +1016,15 @@ do end content = zlibdecompress(content) content, mask = decodemask(content,xsize,ysize,colordepth,colorspace) - content = zlibcompress(content,3) + if compresslevel > 0 then + content = zlibcompress(content,compresslevel) + else + filter = nil + end decode = true -- we don't copy the filter byte elseif transparent then -- in test suite + -- how about decode/recompress here if palette then mask = createmask(content,palette,transparent,xsize,ysize,colordepth,colorspace) else @@ -1017,8 +1035,12 @@ do local bytes = analyze(colordepth,colorspace) if bytes then content = zlibdecompress(content) - content = applyfilter(content,xsize,ysize,bytes) - content = zlibcompress(content,3) + content = decodestrip(openstring(content),xsize,ysize,bytes) + if compresslevel > 0 then + content = zlibcompress(content,compresslevel) + else + filter = nil + end else return end @@ -1041,7 +1063,7 @@ do Width = xsize, Height = ysize, BitsPerComponent = colordepth, - Filter = pdfconstant("FlateDecode"), + Filter = filter, ColorSpace = palette or pdfconstant(colorspace), Length = #content, } + specification.attr diff --git a/tex/context/base/mkiv/lxml-ini.mkiv b/tex/context/base/mkiv/lxml-ini.mkiv index 773772e61..09358e11c 100644 --- a/tex/context/base/mkiv/lxml-ini.mkiv +++ b/tex/context/base/mkiv/lxml-ini.mkiv @@ -322,6 +322,8 @@ \unexpanded\def\startxmldisplayverbatim {\dosingleempty\lxml_start_display_verbatim} +\let\stopxmldisplayverbatim\relax + \def\lxml_start_display_verbatim[#1]% {\startpacked \edef\currenttyping{#1}% @@ -339,6 +341,8 @@ \unexpanded\def\startxmlinlineverbatim {\dosingleempty\lxml_start_inline_verbatim} +\let\stopxmlinlineverbatim\relax + \unexpanded\def\lxml_start_inline_verbatim[#1]% {\begingroup \edef\currenttype{#1}% diff --git a/tex/context/base/mkiv/mtx-context-markdown.tex b/tex/context/base/mkiv/mtx-context-markdown.tex deleted file mode 100644 index 1bd57945f..000000000 --- a/tex/context/base/mkiv/mtx-context-markdown.tex +++ /dev/null @@ -1,92 +0,0 @@ -%D \module -%D [ file=mtx-context-markdown, -%D version=2011.07.24, -%D title=\CONTEXT\ Extra Trickry, -%D subtitle=Rendering Markdown Files, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -% begin help -% -% usage: context --extra=markdown [options] list-of-files -% -% --sort : sort filenames first -% --paperoffset=dimension : left-top-offset -% --duplex : doublesided (singlesided is default) -% --backspace=dimension : extra left offset -% --topspace=dimension : extra top offset -% --bodyfont=specification : additional bodyfont specification -% --contents : add table of contents -% -% end help - -\usemodule[markdown] - -\doifdocumentargument {paperoffset} { - \definepapersize - [offset=\getdocumentargument{paperoffset}] -} - -\doifdocumentargument{duplex} { - \setuppagenumbering - [alternative=doublesided] -} { - \setuppagenumbering - [alternative=singlesided] -} - -\setdocumentargumentdefault {textwidth} {middle} -\setdocumentargumentdefault {backspace} {2cm} -\setdocumentargumentdefault {topspace} {2cm} -\setdocumentargumentdefault {bodyfont} {} - -\setuptolerance - [verytolerant,stretch] - -\setuplayout - [width=middle, - height=middle, - backspace=\getdocumentargument{backspace}, - topspace=\getdocumentargument{topspace}, - footer=0pt] - -\setupbodyfont - [dejavu,10pt,\getdocumentargument{bodyfont}] - -\setupwhitespace - [big] - -% \enabletrackers[context.trace] - -\setuplist - [chapter,section,subsection] - [aligntitle=yes, - width=4em] - -\starttext - -\doifdocumentargument{contents} { - \starttitle[title={Table of contents}] - \placelist[chapter,section,subsection] % todo: levels - \stoptitle -} - - -\startluacode - if #document.files > 0 then - if document.arguments.sort then - table.sort(document.files) - end - for i=1,#document.files do - context.processmarkdownfile(document.files[i]) - context.page() - end - end -\stopluacode - -\stoptext diff --git a/tex/context/base/mkiv/node-tra.lua b/tex/context/base/mkiv/node-tra.lua index e1b6927fb..e2aaf8bbe 100644 --- a/tex/context/base/mkiv/node-tra.lua +++ b/tex/context/base/mkiv/node-tra.lua @@ -355,7 +355,9 @@ local function listtoutf(h,joiner,textonly,last,nodisc) n = n + 1 ; w[n] = " " end elseif id == hlist_code or id == vlist_code then - n = n + 1 ; w[n] = "[]" + n = n + 1 ; w[n] = "[" + n = n + 1 ; w[n] = listtoutf(getlist(h),joiner,textonly,last,nodisc) + n = n + 1 ; w[n] = "]" end else n = n + 1 ; w[n] = "[-]" diff --git a/tex/context/base/mkiv/page-mix.lua b/tex/context/base/mkiv/page-mix.lua index 192b8a30a..701b2e4ca 100644 --- a/tex/context/base/mkiv/page-mix.lua +++ b/tex/context/base/mkiv/page-mix.lua @@ -326,70 +326,73 @@ local function preparesplit(specification) -- a rather large function report_state("setting collector to column %s",column) end - local function unlock(penalty) + local function unlock(case,penalty) if lastlocked then if trace_state then - report_state("penalty %s, unlocking in column %s",penalty or "-",column) + report_state("penalty %s, unlocking in column %s, case %i",penalty or "-",column,case) end lastlocked = nil + else + if trace_state then + report_state("penalty %s, ignoring in column %s, case %i",penalty or "-",column,case) + end end lastcurrent = nil lastcontent = nil end - local function lock(penalty,current) + local function lock(case,penalty,current) if trace_state then - report_state("penalty %s, locking in column %s",penalty,column) + report_state("penalty %s, locking in column %s, case %i",penalty,column,case) end lastlocked = penalty lastcurrent = current or lastcurrent lastcontent = nil end - local function backtrack(start) - local current = start - -- first skip over glue and penalty - while current do - local id = getid(current) - if id == glue_code then - if trace_state then - report_state("backtracking over %s in column %s","glue",column) - end - current = getprev(current) - elseif id == penalty_code then - if trace_state then - report_state("backtracking over %s in column %s","penalty",column) - end - current = getprev(current) - else - break - end - end - -- then skip over content - while current do - local id = getid(current) - if id == glue_code then - if trace_state then - report_state("quitting at %s in column %s","glue",column) - end - break - elseif id == penalty_code then - if trace_state then - report_state("quitting at %s in column %s","penalty",column) - end - break - else - current = getprev(current) - end - end - if not current then - if trace_state then - report_state("no effective backtracking in column %s",column) - end - current = start - end - return current - end + -- local function backtrack(start) + -- local current = start + -- -- first skip over glue and penalty + -- while current do + -- local id = getid(current) + -- if id == glue_code then + -- if trace_state then + -- report_state("backtracking over %s in column %s, value %p","glue",column,getwidth(current)) + -- end + -- current = getprev(current) + -- elseif id == penalty_code then + -- if trace_state then + -- report_state("backtracking over %s in column %s, value %i","penalty",column,getpenalty(current)) + -- end + -- else + -- break + -- end + -- end + -- -- then skip over content + -- while current do + -- local id = getid(current) + -- if id == glue_code then + -- if trace_state then + -- report_state("quitting at %s in column %s, value %p","glue",column,getwidth(current)) + -- end + -- break + -- elseif id == penalty_code then + -- if trace_state then + -- report_state("quitting at %s in column %s, value %i","penalty",column,getpenalty(current)) + -- end + -- break + -- else + -- current = getprev(current) + -- end + -- end + -- if not current then + -- if trace_state then + -- report_state("no effective backtracking in column %s",column) + -- end + -- current = start + -- end + -- return current + -- end local function gotonext() if lastcurrent then @@ -398,7 +401,8 @@ local function preparesplit(specification) -- a rather large function report_state("backtracking to preferred break in column %s",column) end -- todo: also remember height/depth - current = backtrack(lastcurrent) + -- current = backtrack(lastcurrent) -- not ok, we go to far back so why was this needed + current = lastcurrent backtracked = true end lastcurrent = nil @@ -483,6 +487,8 @@ local function preparesplit(specification) -- a rather large function -- -- ok, we could use vsplit but we don't have that one opened up yet .. maybe i should look into the c-code -- .. something that i try to avoid so let's experiment more before we entry dirty trick mode + -- + -- what if we can do a preroll in lua, get head and tail and then slice of a bit and push that ahead head = current @@ -517,7 +523,7 @@ local function preparesplit(specification) -- a rather large function -- what else? ignore? treat as valid as usual? end if lastcontent then - unlock() + unlock(1) end end @@ -578,7 +584,7 @@ local function preparesplit(specification) -- a rather large function local function process_penalty(current,nxt) local penalty = getpenalty(current) if penalty == 0 then - unlock(penalty) + unlock(2,penalty) elseif penalty == forcedbreak then local needed = getattribute(current,a_checkedbreak) local proceed = not needed or needed == 0 @@ -590,7 +596,7 @@ local function preparesplit(specification) -- a rather large function end end if proceed then - unlock(penalty) + unlock(3,penalty) local okay, skipped = gotonext() if okay then if trace_state then @@ -611,15 +617,17 @@ local function preparesplit(specification) -- a rather large function end elseif penalty < 0 then -- we don't care too much - unlock(penalty) + unlock(4,penalty) elseif penalty >= 10000 then if not lastcurrent then - lock(penalty,current) + lock(1,penalty,current) elseif penalty > lastlocked then - lock(penalty) + lock(2,penalty) + elseif trace_state then + report_state("penalty %s, ignoring in column %s, case %i",penalty,column,3) end else - unlock(penalty) + unlock(5,penalty) end end @@ -687,6 +695,10 @@ local function preparesplit(specification) -- a rather large function local id = getid(current) local nxt = getnext(current) + if trace_state then + report_state("%-8s > column %s, height %p, depth %p, id %s","node",column,height,depth,nodecodes[id]) + end + backtracked = false if id == hlist_code or id == vlist_code then @@ -971,8 +983,8 @@ local function getsplit(result,n) setdepth(list[i],0) end local b = vpack(l) -- multiple arguments, todo: fastvpack - -- setbox("global",c,b) - setbox(c,b) +setbox("global",c,b) -- when we wrap in a box + -- setbox(c,b) r.inserts[c] = nil end diff --git a/tex/context/base/mkiv/page-mix.mkiv b/tex/context/base/mkiv/page-mix.mkiv index 436c4a1dc..993edb89a 100644 --- a/tex/context/base/mkiv/page-mix.mkiv +++ b/tex/context/base/mkiv/page-mix.mkiv @@ -773,6 +773,23 @@ \hss \egroup} +% \unexpanded\def\page_mix_command_package_column +% {\page_mix_hbox to \d_page_mix_column_width \bgroup +% % maybe intercept empty +% \ruledhpack\bgroup +% \clf_mixgetsplit\recurselevel\relax +% \egroup +% \hskip-\d_page_mix_column_width +% \ruledhpack \bgroup +% \hsize\d_page_mix_column_width +% \ifconditional\c_page_mix_process_notes +% \placenoteinserts +% \fi +% \egroup +% \hss +% \egroup} + + \unexpanded\def\page_mix_routine_continue {\bgroup \forgetall diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv index 6c21542dc..27f9ffb70 100644 --- a/tex/context/base/mkiv/spac-ver.mkiv +++ b/tex/context/base/mkiv/spac-ver.mkiv @@ -27,8 +27,8 @@ % % There might be more namespace protection. -%D There are two ways to influence the interline spacing. The -%D most general and often most consistent way is using +%D There are two ways to influence the interline spacing. The most general and often +%D most consistent way is using %D %D \showsetup{setupinterlinespace} %D @@ -38,23 +38,21 @@ %D \setupinterlinespace[line=2.8ex] %D \stoptyping %D -%D This setting adapts itself to the bodyfontsize, while for -%D instance saying +%D This setting adapts itself to the bodyfontsize, while for instance saying %D %D \starttyping %D \setupinterlinespace[line=12pt] %D \stoptyping %D -%D sets things fixed for all sizes, which is definitely not -%D what we want. Therefore one can also say: +%D sets things fixed for all sizes, which is definitely not what we want. Therefore +%D one can also say: %D %D \starttyping %D \definebodyfontenvironment[9pt][interlinespace=11pt] %D \stoptyping %D -%D One can still use \type{\setupinterlinespace} (without -%D arguments) to set the interline space according to the -%D current font, e.g. a \type{\bfa}. +%D One can still use \type {\setupinterlinespace} (without arguments) to set the +%D interline space according to the current font, e.g. a \type {\bfa}. % will be cleaned up but it will stay messy because we accept so % many variants @@ -629,46 +627,35 @@ \unexpanded\def\verticalstrut {\vpack{\hsize\zeropoint\forgetall\strut}} \unexpanded\def\horizontalstrut{\hpack {\strut}} -% Hieronder volgen enkele instellingen en macro's ten behoeve -% van de interlinie en \strut. De waarden 2.8, 0.07, 0.72 en -% 0.28 zijn ooit eens ontleend aan INRS-TEX en moeten wellicht -% nog eens instelbaar worden. -% -% \lineheight : de hoogte van een regel -% \spacing{getal} : instellen interlinie -% \normalbaselines : instellen regelafstend -% -% \setstrut : instellen \strut -% \setnostrut : resetten \strut, \endstrut, \begstrut -% \setnonestrut : resetten \strut (fast one) -% -% \setteststrut : instellen zichtbare struts -% \resetteststrut : instellen onzichtbare struts -% -% \setfontparameters : instellen na fontset -% -% De hoogte van een regel (\lineheight) is gelijk aan de -% som van de hoogte (\ht) en diepte (\dp) van \strutbox. -% -% \strut : denkbeeldig blokje met hoogte en diepte -% -% Een \hbox kan als deze aan het begin van een regel staat -% een breedte \hsize krijgen. Dit is soms te voorkomen met het -% commando \leavevmode. Binnen een \vbox geeft dit echter -% niet altijd het gewenste resultaat, vandaar het commando -% -% \dontleavehmode - -% Pas op: niet zomaar \topskip en \baselineskip aanpassen -% en zeker niet \widowpenalty. Dit kan ernstige gevolgen -% hebben voor kolommen. -% -% Enige glue kan op zich geen kwaad, echter als blanko=vast, -% dan moet ook de rek 0 zijn. Binnen kolommen is rek ook -% niet bepaald mooi. Een hele kleine waarde (0.025) voldoet, -% omdat een positieve glue eindeloos rekbaar is. - -% more of the next will become private: +%D Here follow some presets related to interline spacing and therefore also struts. +%D The values 2.8, 0.07, 0.72 and 0.28 originate in \INRSTEX, a package that we used +%D a while after we decided that \LATEX\ was not flexible enough. After that +%D \CONTEXT\ evolved, from some wrapper code around (old) \LATEX\ (on a floppy +%D disk), to using modules from \INRSTEX\ (which also fit on a floppy) and finally +%D all written from scratch. I simply didn't understand all that \TEX\ code at that +%D time, and it was easier to figure it out myself. But \unknown\ some settings +%D stayed, as the height|/|depth ratios, and they never proved to be bad ones! The +%D same is true for the font size relations. + +%D \starttabulate +%D \NC \type {\lineheight} \NC the height of a line \NC \NR +%D \NC \type {\spacing{number}} \NC adapting the interline space \NC \NR +%D \NC \type {\normalbaselines} \NC initialize the interline spacing \NC \NR +%D \NC \type {\setstrut} \NC initialize \type {\strut} \NC \NR +%D \NC \type {\setnostrut} \NC disable the \type {\strut}, \type {\endstrut}, \type {\begstrut} \NC \NR +%D \NC \type {\setteststrut} \NC initialize the visual \type {\strut} \NC \NR +%D \NC \type {\resetteststrut} \NC disable the visual \type {\strut} \NC \NR +%D \NC \type {\setfontparameters} \NC synchronize parameters with foints \NC \NR +%D \stoptabulate +%D +%D \unknown\ and many more (this is a decades old list). +%D +%D The lineheight is the sum of the height and depth of \type {strut}, which is +%D an invisible blob that can be used to enforce the proper dimensions. +%D +%D Such a blob, when placed at the beginning of a paragraph can have side effects +%D that can be prevented with \type {\dontleavehmode}. Never use \type +%D {\leavevmode}! \newdimen\strutdimen \newdimen\lineheight @@ -837,13 +824,19 @@ \noexpand\def\noexpand\normallineheight{\the\dimexpr\normallineheight}% \noexpand\normalbaselines}} -% plain definition: -% -% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} -% -% could be: -% -% \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox} +%D This is the plain definition: +%D +%D \starttyping +%D \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} +%D \stoptyping +%D +%D which could be: +%D +%D \starttyping +%D \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox} +%D \stoptyping +%D +%D But we do things differently. \newbox\strutbox @@ -857,8 +850,7 @@ \let\normalstrut\strut -% The double \hbox construction enables us to \backtrack -% boxes. +%D The double \type {\hbox} construction enables us to backtrack boxes. \let\strutht\undefined \newdimen\strutht \let\strutdp\undefined \newdimen\strutdp @@ -929,10 +921,10 @@ \vrule\s!width\zeropoint\s!depth\strutdp\s!height\zeropoint \endgroup} -% because of all the callbacks in mkiv, we avoid unnecessary boxes ... -% maybe use an attribute so that we can tag boxes that don't need a -% treatment; tests with using an attribute so far have shown that -% it's slower because testing the attribute takes time too +%D Because of all the callbacks in mkiv, we avoid unnecessary boxes ... maybe use an +%D attribute so that we can tag boxes that don't need a treatment; tests with using +%D an attribute so far have shown that it's slower because testing the attribute +%D takes time too. \unexpanded\def\dosetstrut {\let\strut\normalstrut @@ -1005,11 +997,9 @@ \let\spac_struts_vide_hbox\hbox % overloaded in trac-vis.mkiv -%D The dimen \type {\struttotal} holds the exact size of the -%D strut; occasionally a one scaled point difference can show -%D up with the lineheight. - -% This is more efficient (less callbacks): +%D The dimen \type {\struttotal} holds the exact size of the strut; occasionally a +%D one scaled point difference can show up with the lineheight. This is more +%D efficient (less callbacks): \newbox\b_spac_struts_empty \setbox\b_spac_struts_empty\emptyhbox @@ -1085,7 +1075,7 @@ %D \NC A B \unknown \NC a character strut (e.g. A) \NC {\showstruts\setupstrut[A]\strut} \NC \NR %D \NC \NC a normal strut \NC {\showstruts\setupstrut\strut} \NC \NR %D \stoptabulate - +%D %D Beware: using an unknown value results in char struts. \installcorenamespace{struts} @@ -1166,10 +1156,8 @@ \let\begstrut\empty \to \everysetnostrut -% when enabled, sigstruts will remove themselves if nothing -% goes inbetween - -%D For practical reasons we define some boundary characters here. +%D When enabled, sigstruts will remove themselves if nothing goes inbetween. For +%D practical reasons we define some boundary characters here. \unexpanded\def\leftboundary {\protrusionboundary\plusone} \unexpanded\def\rightboundary {\protrusionboundary\plustwo} @@ -1198,11 +1186,6 @@ \hskip-\strutsignal \hskip\strutsignal} -% \def\spac_struts_beg_normal -% {\strut -% \penalty\plustenthousand -% \hskip\zeropoint} - \def\spac_struts_beg_normal {\boundary\plusone \strut @@ -1239,12 +1222,6 @@ \strut \fi} -% \def\spac_struts_end_normal -% {\removeunwantedspaces -% \penalty\plustenthousand -% \hskip\zeropoint -% \strut} - \def\spac_struts_end_normal {\removeunwantedspaces \penalty\plustenthousand @@ -1299,10 +1276,9 @@ \def\baselinedistance{\the\lineheight} -%D We need \type{\normaloffinterlineskip} because the new -%D definition contains an assignment, and |<|don't ask me -%D why|>| this assignment gives troubles in for instance the -%D visual debugger. +%D We need \type {\normaloffinterlineskip} because the new definition contains an +%D assignment, and |<|don't ask me why|>| this assignment gives troubles in for +%D instance the visual debugger. \unexpanded\def\offinterlineskip {\baselineskip-\thousandpoint @@ -1323,8 +1299,8 @@ %D So, here we kick in a checker but it has to happen after the output group and it %D only has to be done once (output can trigger itself!). %D -%D However, prevgraf is somehow bound to hangindent so we can get very -%D nasty side effects. So, in tne end we use our own variable! +%D However, prevgraf is somehow bound to hangindent so we can get very nasty side +%D effects. So, in tne end we use our own variable! \ifdefined\getnofpreviouslines % defined public at the lua end @@ -1446,7 +1422,7 @@ \resetpenalties\interlinepenalties \stopsetups -% we use \directsetup because it's faster and we know there is no csl +%D We use \directsetup because it's faster and we know there is no csl: \startsetups [\systemsetupsprefix\s!default] @@ -1476,7 +1452,7 @@ \stopsetups -% as an illustration: +%D As an illustration: \startsetups [\systemsetupsprefix\v!strict] @@ -2223,7 +2199,7 @@ \directvspacing\m_spac_blank_asked \fi} -% handy (and faster): +%D Handy (and faster): \unexpanded\def\directvpenalty#1% {\begingroup @@ -2241,7 +2217,7 @@ \vskip#1\relax \endgroup} -% these depend on bigskipamount cum suis so we'd better sync them +%D These depend on bigskipamount cum suis so we'd better sync them: \unexpanded\def\setupvspacing {\doifelsenextoptionalcs\setupvspacing_yes\setupvspacing_nop} @@ -2264,9 +2240,7 @@ \let\synchronizevspacing\setupvspacing_nop -% category:4 is default - -% this interface might change (into an \install, but we will then keep this one hidden) +%D The \type {category:4} is default. \definevspacingamount[\v!none] [\zeropoint] [\zeropoint] \definevspacingamount[\v!big] [\bigskipamount] [\bodyfontlineheight] @@ -2293,7 +2267,7 @@ \fi\fi \relax} -% used in itemize ... always test this +%D used in itemize \unknown\ always test this: \newdimen\d_spac_overlay @@ -2342,21 +2316,33 @@ \newcount\c_spac_vspacing_special_base \c_spac_vspacing_special_base = 32250 % 4000 \newcount\c_spac_vspacing_special_step \c_spac_vspacing_special_step = 10 % 250 +\newcount\c_spac_vspacing_special_done + +% 2019-05-31 : upgraded a bit to more distinctive samepage-[level]-[0|1|2] names + +\unexpanded\def\spac_vspacing_define_same_step#1#2% alternatively we could have samepage-n-m + {\begingroup + \scratchcounterone\numexpr\plusthree*#1+#2\relax + \scratchcountertwo\numexpr\c_spac_vspacing_special_base+\c_spac_vspacing_special_step*\scratchcounterone\relax + %\writestatus{defined}{\v!samepage-\number#1-\number#2\space=>\space penalty:\the\scratchcountertwo}% + \normalexpanded{\definevspacing[\v!samepage-\number#1-\number#2][penalty:\the\scratchcountertwo]}% + \endgroup} \unexpanded\def\spac_vspacing_define_same_page#1% - {\normalexpanded{\definevspacing - [\v!samepage-#1]% - [penalty:\the\numexpr\c_spac_vspacing_special_base+\c_spac_vspacing_special_step*#1\relax]}} + {\dostepwiserecurse\c_spac_vspacing_special_done{#1}\plusone + {\spac_vspacing_define_same_step\recurselevel\zerocount % before + \spac_vspacing_define_same_step\recurselevel\plusone % after + \spac_vspacing_define_same_step\recurselevel\plustwo}% % whatever + \global\c_spac_vspacing_special_done#1\relax} -\dorecurse{20}{\spac_vspacing_define_same_page{#1}} +\spac_vspacing_define_same_page{10} % 10 levels should be more than enough as a start -\ifdefined\everydefinesection - \appendtoks - \spac_vspacing_define_same_page\maxstructuredepth - \to \everydefinesection -\else - % the order has changed so this code has to move to strf-def.mkiv then -\fi +\def\spac_vspacing_same_page#1#2% level offset (starts at 0) + {\ifnum#1>\c_spac_vspacing_special_done + \spac_vspacing_define_same_page{#1}% + \fi + %\writestatus{used}{\v!samepage-\number#1-\number#2}% + \vspacing[\v!samepage-\number#1-\number#2]} \definevspacing[\v!default] [\v!big] % todo: needs to adapt to \setupblank \definevspacing[\v!before] [\v!default] % but we need to avoid circular references @@ -2366,9 +2352,8 @@ \setupvspacing [\v!big] % alternatively [\v!standard] -%D Maybe at some point we will differ between \type {\vspacing} and -%D \type {\blank} (we needed the first one while playing with the -%D new code). +%D Maybe at some point we will differ between \type {\vspacing} and \type {\blank} +%D (we needed the first one while playing with the new code). % We keep this one as reference % @@ -2393,9 +2378,8 @@ \let\synchronizeblank \synchronizevspacing \let\defineblankmethod\definevspacingamount -%D The following command is for Wolfgang. It has to be used with -%D care as it does {\em not} work in tandem with the other spacing -%D commands. +%D The following command is for Wolfgang. It has to be used with care as it does +%D {\em not} work in tandem with the other spacing commands. \installcorenamespace{vspace} @@ -2477,8 +2461,7 @@ \relax \fi} -%D Some preliminary code: a simple and fast hanger, for usage in -%D macros (moved from cont-new). +%D Some preliminary code: a simple and fast hanger, for usage in macros. \installcorenamespace {hanging} diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index ee13ad39a..16d4d5c9d 100644 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index e3b70eaa0..41badc3d8 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/base/mkiv/strc-con.mkvi b/tex/context/base/mkiv/strc-con.mkvi index d67307ba7..8c75eb6df 100644 --- a/tex/context/base/mkiv/strc-con.mkvi +++ b/tex/context/base/mkiv/strc-con.mkvi @@ -737,7 +737,7 @@ \stopsetups \startsetups[\??constructionrenderings:\v!top] - \strc_sectioning_prevent_page_break\plusone + % \strc_sectioning_prevent_page_break % commented per 31/5/2019 \let\\=\space \noindent \copy\constructionheadbox % why copy ? @@ -746,6 +746,7 @@ \edef\p_strc_constructions_inbetween{\constructionparameter\c!inbetween}% \ifx\p_strc_constructions_inbetween\empty \else \p_strc_constructions_inbetween + % shouldn't this move to after the fi? \directcheckedvspacing\v!samepage \fi \useconstructionstyleandcolor\c!style\c!color diff --git a/tex/context/base/mkiv/strc-sec.mkiv b/tex/context/base/mkiv/strc-sec.mkiv index f367013fb..21e6adfe3 100644 --- a/tex/context/base/mkiv/strc-sec.mkiv +++ b/tex/context/base/mkiv/strc-sec.mkiv @@ -1153,16 +1153,6 @@ \prevdepth\strutdepth \fi} -\def\strc_sectioning_after_yes - {\ifconditional\headisdisplay - \ifconditional\c_strc_sectioning_auto_break - % \vspacing[\v!samepage-\currentheadlevel]% - \vspacing[\v!samepage]% - \fi - \strc_sectioning_empty_correction - \headparameter\c!after - \fi} - \def\strc_sectioning_after_nop {} @@ -1225,6 +1215,47 @@ \fi \glet\previoushead\currenthead} +% \def\strc_sectioning_handle_page_yes +% {\ifconditional\c_strc_sectioning_ignore_page +% \setfalse\c_strc_sectioning_ignore_page +% \else +% % beware, these numbers are not yet know here +% \strc_sectioning_handle_page_nop +% \edef\p_aligntitle{\headparameter\c!aligntitle}% +% \ifx\p_aligntitle\v!float +% \ifconditional\c_strc_sectioning_auto_break +% \vspacing[\v!samepage-\currentheadlevel]% +% \fi +% \headparameter\c!before\relax +% \indent +% \else +% \page_otr_command_flush_side_floats +% \ifconditional\c_strc_sectioning_auto_break +% \vspacing[\v!samepage-\currentheadlevel]% +% \fi +% \headparameter\c!before\relax +% \fi +% \global\c_strc_sectioning_preceding_level\currentheadlevel +% \fi +% \glet\previoushead\currenthead} +% +% \unexpanded\def\strc_sectioning_prevent_page_break% see strc-con +% {\ifconditional\c_strc_sectioning_auto_break +% \vspacing[\v!samepage-\the\numexpr\currentheadlevel+\plusone\relax]% +% \fi} +% +% \def\strc_sectioning_after_yes +% {\ifconditional\headisdisplay +% \ifconditional\c_strc_sectioning_auto_break +% % \vspacing[\v!samepage-\currentheadlevel]% +% \vspacing[\v!samepage]% +% \fi +% \strc_sectioning_empty_correction +% \headparameter\c!after +% \fi} + +% This works better in columns ... but also elsewhere? + \def\strc_sectioning_handle_page_yes {\ifconditional\c_strc_sectioning_ignore_page \setfalse\c_strc_sectioning_ignore_page @@ -1234,14 +1265,14 @@ \edef\p_aligntitle{\headparameter\c!aligntitle}% \ifx\p_aligntitle\v!float \ifconditional\c_strc_sectioning_auto_break - \vspacing[\v!samepage-\currentheadlevel]% + \spac_vspacing_same_page\currentheadlevel\zerocount \fi \headparameter\c!before\relax \indent \else \page_otr_command_flush_side_floats \ifconditional\c_strc_sectioning_auto_break - \vspacing[\v!samepage-\currentheadlevel]% + \spac_vspacing_same_page\currentheadlevel\zerocount \fi \headparameter\c!before\relax \fi @@ -1249,11 +1280,21 @@ \fi \glet\previoushead\currenthead} -\unexpanded\def\strc_sectioning_prevent_page_break#1% see strc-con +\def\strc_sectioning_after_yes + {\ifconditional\headisdisplay + \ifconditional\c_strc_sectioning_auto_break + \spac_vspacing_same_page\currentheadlevel\plusone + \fi + \strc_sectioning_empty_correction + \headparameter\c!after + \fi} + +\unexpanded\def\strc_sectioning_prevent_page_break % see strc-con {\ifconditional\c_strc_sectioning_auto_break - \vspacing[\v!samepage-\the\numexpr\currentheadlevel+\ifx#1\empty\plusone\else#1\fi\relax]% + \spac_vspacing_same_page\currentheadlevel\plustwo \fi} + % We do support negative numbers but it can have side effects that we won't catch: % % \chapter{some} \setupheadnumber[chapter][3] \chapter{more} diff --git a/tex/context/base/mkiv/strc-tnt.mkiv b/tex/context/base/mkiv/strc-tnt.mkiv new file mode 100644 index 000000000..0b092b35f --- /dev/null +++ b/tex/context/base/mkiv/strc-tnt.mkiv @@ -0,0 +1,120 @@ +%D \module +%D [ file=strc-tnt, +%D version=2019.05.30, % based on older code +%D title=\CONTEXT\ Structure Macros, +%D subtitle=Text Notes, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\unprotect + +%D \macros +%D {definetextnote,setuptextnote} +%D +%D \startbuffer +%D \definetextnote +%D [textnote] +%D +%D \startbuffer +%D Test test test \textnote [n=5] {alpha}. test test test test tets test test +%D \textnote [n=10] {beta}. Test test test test tets test test \textnote [n=12] +%D {gamma}. Test test test test tets test test \textnote [n=24] {delta}. Test test +%D test test test test \textnote {epsilon} test test \textnote [n=*] {zeta}. +%D \stopbuffer +%D +%D \blank {\setuptextnote[empty=yes] \getbuffer\par} \blank +%D \blank {\setuptextnote[empty=number] \getbuffer\par} \blank +%D \blank {\setuptextnote[empty=none] \getbuffer\par} \blank +%D \blank { \getbuffer\par} \blank +%D +%D \blank[2*big] +%D +%D \placenotes[textnote:note][criterium=text] +%D \stopbuffer +%D +%D \typebuffer \getbuffer + +\installcorenamespace{textnote} + +\installcommandhandler \??textnote {textnote} \??textnote + +\definebar + [\v!textnote:\v!underbar] + [\v!underbar] + +\definenote + [\v!textnote:\v!note] + +\setuptextnote + [\c!rule=\v!textnote:\v!underbar, + \c!note=\v!textnote:\v!note, + \c!n=10] % * will use the real space + +\appendtoks + \setuevalue{\currenttextnote}{\educ_textnote{\currenttextnote}}% +\to \everydefinetextnote + +\unexpanded\def\educ_textnote#1% + {\dontleavehmode + \begingroup + \def\currenttextnote{#1}% + \dosingleempty\educ_textnote_indeed} + +\def\educ_textnote_indeed[#1]#2% we could use setups but it's overkill + {\iffirstargument\setupcurrenttextnote[#1]\fi + \edef\p_n{\textnoteparameter\c!n}% + \edef\p_empty{\textnoteparameter\c!empty}% + \edef\currentbar{\textnoteparameter\c!rule}% + \edef\currentnote{\textnoteparameter\c!note}% + \ifx\p_n\wildcardsymbol + \donefalse + \ifx\p_empty\v!yes + \donetrue + \else\ifx\p_empty\v!number + \donetrue + \else\ifx\p_empty\v!none + \donetrue + \fi\fi\fi + \ifdone + \setupbar[\currentbar][\c!empty=\v!yes]% + \fi + \inlinebar[\currentbar]\bgroup + \wordboundary#2% + \ifx\p_empty\v!yes + \setnotetext[\currentnote]{#2}% + \else\ifx\p_empty\v!number + \runninghbox{\resetbar\setnote[\currentnote]{#2}}% + \else\ifx\p_empty\v!none + \setupnote[\currentnote][\c!location=\v!none]% + \runninghbox{\resetbar\setnote[\currentnote]{#2}}% + \fi\fi\fi + \egroup + \else + \inlinebar[\currentbar]\bgroup + \scratchcounter\numexpr\p_n/\plustwo\relax + \ifx\p_empty\v!yes + \interwordspacesbefore\scratchcounter + \setnotetext[\currentnote]{#2}% + \interwordspacesafter\scratchcounter + \else\ifx\p_empty\v!number + \interwordspacesbefore\scratchcounter + \zwnj\runninghbox{\resetbar\setnote[\currentnote]{#2}}\zwnj + \interwordspacesafter\scratchcounter + \else\ifx\p_empty\v!none + \setupnote[\currentnote][\c!location=\v!none]% + \interwordspacesbefore\scratchcounter + \zwnj\runninghbox{\resetbar\setnote[\currentnote]{#2}}\zwnj + \interwordspacesafter\scratchcounter + \else + #2% + \fi\fi\fi + \egroup + \fi + \endgroup} + +\protect \endinput -- cgit v1.2.3